
Bereinigen Sie Konten über Berechtigungen in der GCP-Infrastruktur im großen Maßstab.
CureIAM ist eine benutzerfreundliche, zuverlässige und leistungsstarke Engine zur Durchsetzung des Least-Privilege-Prinzips auf der GCP-Cloud-Infrastruktur. Sie ermöglicht DevOps- und Sicherheitsteams, schnell Konten in der GCP-Infrastruktur zu bereinigen, die mehr Berechtigungen haben als nötig. CureIAM ruft die Empfehlungen und Erkenntnisse vom GCP IAM Recommender ab, bewertet sie und setzt diese Empfehlungen automatisch auf täglicher Basis durch. Es kümmert sich um die Planung und alle anderen Aspekte der Ausführung dieser Durchsetzungsaufträge in großem Maßstab. Es basiert auf den GCP IAM Recommender APIs und dem Cloudmarker-Framework.
Entdecken Sie, was CureIAM skalierbar und produktionsreif macht.
safe_to_apply_score, risk_score, over_privilege_score. Jede Bewertung dient einem anderen Zweck. Der safe_to_apply_score identifiziert die Fähigkeit, eine Empfehlung automatisiert anzuwenden, basierend auf dem in der CureIAM.yaml-Konfigurationsdatei festgelegten Schwellenwert.Da CureIAM mit Python erstellt wurde, können Sie es lokal mit diesen Befehlen ausführen. Stellen Sie vor dem Ausführen sicher, dass eine Konfigurationsdatei in einem der folgenden Pfade bereit liegt: /etc/CureIAM.yaml, ~/.CureIAM.yaml, ~/CureIAM.yaml oder CureIAM.yaml, und dass sich eine JSON-Datei für das Servicekonto im aktuellen Verzeichnis befindet, vorzugsweise mit dem Namen cureiamSA.json. Dieser private Schlüssel des Servicekontos kann beliebig benannt werden, aber für den Docker-Image-Build wird dieser Name bevorzugt. Stellen Sie sicher, dass Sie diese Datei in der Konfiguration für die GCP-Cloud referenzieren.
# Install necessary dependencies
$ pip install -r requirements.txt
# Run CureIAM now
$ python -m CureIAM -n
# Run CureIAM process as schedular
$ python -m CureIAM
# Check CureIAM help
$ python -m CureIAM --help
CureIAM kann auch in einer Docker-Umgebung ausgeführt werden; dies ist vollkommen optional und kann für CI/CD mit K8s-Cluster-Bereitstellung verwendet werden.
# Build docker image from dockerfile
$ docker build -t cureiam .
# Run the image, as schedular
$ docker run -d cureiam
# Run the image now
$ docker run -f cureiam -m cureiam -n
Die Konfigurationsdatei CureIAM.yaml ist das Herz der CureIAM-Engine. Alles, was die Engine tut, basiert auf der in dieser Konfigurationsdatei konfigurierten Pipeline. Lassen Sie uns dies in verschiedenen Abschnitten aufschlüsseln, um die Konfiguration übersichtlicher zu gestalten.
logger:
version: 1
disable_existing_loggers: false
formatters:
verysimple:
format: >-
[%(process)s]
%(name)s:%(lineno)d - %(message)s
datefmt: "%Y-%m-%d %H:%M:%S"
handlers:
rich_console:
class: rich.logging.RichHandler
formatter: verysimple
file:
class: logging.handlers.TimedRotatingFileHandler
formatter: simple
filename: /tmp/CureIAM.log
when: midnight
encoding: utf8
backupCount: 5
loggers:
adal-python:
level: INFO
root:
level: INFO
handlers:
- rich_console
- file
schedule: "16:00"
Dieser Unterabschnitt der Konfiguration verwendet das Rich-Protokollierungsmodul und plant CureIAM so, dass es täglich um 16:00 Uhr ausgeführt wird.
plugins-Abschnitt in der CureIAM.yaml. Sie können sich diesen Abschnitt als Deklaration für verschiedene Plugins vorstellen. plugins:
gcpCloud:
plugin: CureIAM.plugins.gcp.gcpcloud.GCPCloudIAMRecommendations
params:
key_file_path: cureiamSA.json
filestore:
plugin: CureIAM.plugins.files.filestore.FileStore
gcpIamProcessor:
plugin: CureIAM.plugins.gcp.gcpcloudiam.GCPIAMRecommendationProcessor
params:
mode_scan: true
mode_enforce: true
enforcer:
key_file_path: cureiamSA.json
allowlist_projects:
- alpha
blocklist_projects:
- beta
blocklist_accounts:
- [email protected]
allowlist_account_types:
- user
- group
- serviceAccount
blocklist_account_types:
- None
min_safe_to_apply_score_user: 0
min_safe_to_apply_score_group: 0
min_safe_to_apply_score_SA: 50
esstore:
plugin: CureIAM.plugins.elastic.esstore.EsStore
params:
# Change http to https later if your elastic are using https
scheme: http
host: es-host.com
port: 9200
index: cureiam-stg
username: security
password: securepassword
Jede dieser Plugin-Deklarationen muss folgende Form haben:
plugins:
<plugin-name>:
plugin: <class-name-as-python-path>
params:
param1: val1
param2: val2
Zum Beispiel für das Plugin CureIAM.stores.esstore.EsStore, welches diese Datei und die Klasse EsStore ist. Alle in yaml definierten Parameter müssen mit der Deklaration in der __init__()-Funktion derselben Plugin-Klasse übereinstimmen.