In diesem Dokument wird beschrieben, wie Sie Ihre Infrastructure as Code (IaC) anhand der Organisationsrichtlinien und Security Health Analytics-Erkennungsmethoden}$ prüfen, die Sie in Ihrer Google Cloud -Organisation definiert haben. Mit IaC können Sie Ihre Cloud-Ressourcen mit Sprachen wie Terraform erstellen und verwalten, sodass Sie die Ressourcen über einen Entwicklungs-Workflow bereitstellen können. Das Feature zur IaC-Validierung unterstützt nur Organisationsrichtlinien und Security Health Analytics-Detektoren.
Durch die Validierung Ihres IaC können Sie feststellen, ob Ihre neuen oder geänderten Ressourcendefinitionen gegen die vorhandenen Richtlinien verstoßen, die auf IhreGoogle Cloud -Ressourcen (z. B. Cluster, Bucket oder Instanz) angewendet werden. Sie können diese Richtlinien mit Sicherheitskonfigurationen definieren. Die IaC-Validierungsfunktion analysiert jedoch den Code und vergleicht ihn mit allen effektiven Richtlinien, die in Konfigurationen definiert sind, die in Ihrer Google Cloud Organisation bereitgestellt werden. Durch die IaC-Validierung können Ihre Entwickler Sicherheitslücken in der IaC-Konfiguration von Assets oder Ressourcen erkennen und beheben, bevor sie auf IhreGoogle Cloud -Umgebung angewendet werden.
Die IaC-Validierungsfunktion unterstützt Terraform-Plan-Dateien. Sie können Ihren Terraform-Plan mit der Google Cloud CLI validieren oder den Validierungsprozess in Ihren Entwickler-Workflow für Cloud Build, Jenkins oder GitHub Actions einbinden.
Hinweise
Führen Sie diese Aufgaben aus, um mit der IaC-Validierung zu beginnen.
Security Command Center Premium- oder Enterprise-Stufe aktivieren
Prüfen Sie, ob die Security Command Center Premium- oder Enterprise-Stufe auf Organisationsebene aktiviert ist.
Wenn Sie Security Command Center aktivieren, werden die APIs securityposture.googleapis.com
und securitycentermanagement.googleapis.com
aktiviert.
Berechtigungen einrichten
-
Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Zu IAM - Wählen Sie die Organisation aus.
- Klicken Sie auf Zugriff erlauben.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.
- Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
- Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
- Klicken Sie auf Speichern.
Weitere Informationen zu Berechtigungen für die IaC-Validierung finden Sie unter IAM für Aktivierungen auf Organisationsebene.
Google Cloud CLI einrichten
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Führen Sie den folgenden Befehl aus, um die gcloud CLI so einzurichten, dass die Authentifizierung bei Google APIs anstelle Ihrer Nutzeranmeldedaten erfolgt:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Weitere Informationen finden Sie unter Identitätswechsel für Dienstkonten.
Richtlinien definieren
Definieren Sie Ihre Organisationsrichtlinien und Security Health Analytics-Detektoren. Wenn Sie diese Richtlinien mit einem Sicherheitsstatus definieren möchten, führen Sie die Aufgaben unter Status erstellen und bereitstellen aus.
Terraform-Code erstellen
Erstellen Sie mit Ihren Entwickler-Workflows und -Tools eine Terraform-Datei, die die Google Cloud -Assets enthält, die Sie erstellen oder ändern möchten.
Berücksichtige Folgendes:
- Füllen Sie das übergeordnete Attribut (Projekt, Ordner oder Organisation) jeder Ressource oder jedes Assets in der Terraform-Konfiguration aus.
- Ändern Sie Assets und Richtlinien separat. Die API unterstützt keine Validierung von Terraform-Plandateien, mit denen gleichzeitig Assets und Richtlinien geändert werden.
- Verwenden Sie nur unterstützte Asset-Typen und Richtlinien. Eine Liste der unterstützten Assettypen und Richtlinien finden Sie unter Unterstützte Assettypen und Richtlinien für die IaC-Validierung.
- Einschränkungen für die IaC-Validierung
- Die Terraform-Plandatei darf keine vertraulichen Informationen wie Passwörter oder andere personenidentifizierbare Informationen enthalten. Wenn bei der Validierung Felder gefunden werden, die in den Ressourcenänderungen als vertraulich gekennzeichnet sind, werden die Felder entfernt.
Nachdem Sie Ihren Terraform-Code erstellt haben, können Sie den IaC-Validierungsbericht ausführen. Sie können die gcloud CLI, Cloud Build, Jenkins oder GitHub Actions verwenden.
Mit der Google Cloud CLI einen IaC-Validierungsbericht erstellen
So erstellen Sie einen IaC-Validierungsbericht:
Führen Sie in der gcloud CLI
terraform init
aus.Prüfen Sie, ob Sie die Terraform-Anbieterversion 5.5 oder höher verwenden. Führen Sie bei Bedarf ein Upgrade auf die neueste Google-Anbieterversion durch:
terraform init -upgrade
Konvertieren Sie die Terraform-Plan-Datei in das JSON-Format:
terraform plan -out TF_PLAN_FILENAME terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
Ersetzen Sie Folgendes:
TF_PLAN_FILENAME
: Der Name der Terraform-Plandatei.TF_PLAN_JSON_FILENAME
: Der Name der Datei, die den Terraform-Plan im JSON-Format enthält.
IaaS-Validierungsbericht erstellen:
gcloud scc iac-validation-reports create PARENT \ --tf-plan-file=TF_PLAN_JSON_FILENAME.json
Ersetzen Sie Folgendes:
PARENT
: Die Google Cloud Organisation, in der der IaC-Validierungsbericht erstellt werden soll. Das Format istorganizations/ORGANIZATION_ID/locations/LOCATION
.LOCATION
istglobal
.TF_PLAN_JSON_FILENAME
: Der Pfad zur JSON-Datei, die den IaC-Plan enthält, den Sie validieren möchten.
Wenn Sie beispielsweise einen IaC-Validierungsbericht für die Organisation
organizations/3589215982/locations/global
mit einem inplanFile.json
enthaltenen IaC-Plan erstellen möchten, führen Sie den folgenden Befehl aus:gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
Dieser Befehl gibt die Vorgangsdetails zum Erstellen des IAC-Validierungsberichts zurück. Informationen zum Vorgang finden Sie unter Informationen zu einem Vorgang zum Bereitstellen von Einstellungen ansehen.
Nächste Schritte
- Beispielanleitung ansehen
- Binden Sie die IaC-Validierung in Ihren Cloud Build-Workflow ein.
- IaC-Validierung in Ihre GitHub Actions oder Ihr Jenkins-Projekt einbinden
- Sicherheitsstatus verwalten
-