Skip to main content

A tool for auditing Kubernetes clusters for misconfigurations, security issues, and best practices.

Project description

KubeSleuth

Python Kubernetes License Status

KubeSleuth

KubeSleuth is a simple tool for auditing your Kubernetes clusters. It scans your cluster configurations for misconfigurations, best practices, security issues, and resource allocations, providing detailed reports to help you maintain a healthy and secure environment.

It's still in early development, so expect some rough edges.

Table of Contents

How to Use

  1. Clone the repository:

    git clone https://github.com/yourusername/kubesleuth.git
    cd kubesleuth
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Run KubeSleuth:

    python3 kubesleuth.py --output markdown
    
  4. Optional arguments:

    • --kubeconfig: Path to the kubeconfig file (default: $HOME/.kube/config)
    • --context: Kubernetes context to use

    Example:

    python3 kubesleuth.py --output json --kubeconfig /path/to/kubeconfig --context my-context
    

Overview

KubeSleuth is designed to help you maintain a secure and well-configured Kubernetes cluster. It performs a variety of checks on your cluster, including:

  • RBAC (Role-Based Access Control): Ensures role bindings are secure and correctly configured.
  • Authentication: Checks for basic authentication and password policies.
  • Custom Roles: Identifies and reviews custom roles and cluster roles.
  • Network Policies: Ensures network policies are defined and enforced.
  • Namespace Isolation: Checks if resources are properly isolated by namespaces.
  • Privileged Containers: Detects containers running with privileged access.

By running KubeSleuth, you can quickly identify potential issues and areas for improvement in your cluster's configuration.

Installation

To install KubeSleuth, follow these steps:

  1. Clone the repository:

    git clone https://github.com/thevanguardian/kubesleuth.git
    cd kubesleuth
    
  2. Install dependencies:

    pip install -r requirements.txt
    

Features

  • RBAC Audit: Identifies insecure role bindings and missing subjects.
  • Authentication Checks: Verifies if basic authentication is enabled.
  • Custom Roles Review: Lists and reviews custom roles and cluster roles.
  • Network Policies Audit: Ensures network policies are present and enforced.
  • Namespace Isolation Checks: Detects resources placed in the default namespace.
  • Privileged Containers Detection: Finds containers running with privileged access.
  • Flexible Configuration: Supports custom kubeconfig files and contexts.

Configuration

KubeSleuth can be configured using command-line arguments:

  • --kubeconfig: Path to the kubeconfig file (default: $HOME/.kube/config)
  • --context: Kubernetes context to use
  • --output: Output format (json or markdown)

Example:

python3 kubesleuth.py --output markdown --kubeconfig /path/to/kubeconfig --context my-context

Contributing

Contributions are welcome! If you have suggestions for improvements or new features, please create an issue or submit a pull request.

Fork the repository Create your feature branch (git checkout -b feature/your-feature) Commit your changes (git commit -m 'Add your feature') Push to the branch (git push origin feature/your-feature) Open a pull request

License

This project is licensed under the GNU General Public License v3 (GPLv3).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kubesleuth-0.1.1.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kubesleuth-0.1.1-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file kubesleuth-0.1.1.tar.gz.

File metadata

  • Download URL: kubesleuth-0.1.1.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.12

File hashes

Hashes for kubesleuth-0.1.1.tar.gz
Algorithm Hash digest
SHA256 dab7e90c9518142f19e66c5dfc3a24f1cdf4db50904cf5acfdcf096760771a30
MD5 3fe05299b138b9b2e32dace5639875e6
BLAKE2b-256 3f14bb4079c5e91d861aeaff439818153c56d79ffecfdb580f47b54a1829ed3f

See more details on using hashes here.

File details

Details for the file kubesleuth-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: kubesleuth-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.12

File hashes

Hashes for kubesleuth-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a00e76d842adde9d9836fef8119478334eba1c918f1e8bc382636aaf3d7a28fe
MD5 8576eb8dfdd7efccc62ad37ce5e0daa4
BLAKE2b-256 e5953430d1b2446dfe63c2a4e2803e60c7855bcfa68221c581a44e5edd718039

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page