A tool for auditing Kubernetes clusters for misconfigurations, security issues, and best practices.
Project description
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
-
Clone the repository:
git clone https://github.com/yourusername/kubesleuth.git cd kubesleuth
-
Install dependencies:
pip install -r requirements.txt
-
Run KubeSleuth:
python3 kubesleuth.py --output markdown
-
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:
-
Clone the repository:
git clone https://github.com/thevanguardian/kubesleuth.git cd kubesleuth
-
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 (jsonormarkdown)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dab7e90c9518142f19e66c5dfc3a24f1cdf4db50904cf5acfdcf096760771a30
|
|
| MD5 |
3fe05299b138b9b2e32dace5639875e6
|
|
| BLAKE2b-256 |
3f14bb4079c5e91d861aeaff439818153c56d79ffecfdb580f47b54a1829ed3f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a00e76d842adde9d9836fef8119478334eba1c918f1e8bc382636aaf3d7a28fe
|
|
| MD5 |
8576eb8dfdd7efccc62ad37ce5e0daa4
|
|
| BLAKE2b-256 |
e5953430d1b2446dfe63c2a4e2803e60c7855bcfa68221c581a44e5edd718039
|