AWS Organizations Richtlinien mithilfe AWS CodePipeline von Amazon Bedrock als Code verwalten - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Organizations Richtlinien mithilfe AWS CodePipeline von Amazon Bedrock als Code verwalten

Erstellt von Andre Cavalcante (AWS) und Mariana Pessoa de Queiroz (AWS)

Übersicht

Sie können Autorisierungsrichtlinien verwenden, AWS Organizations um den Zugriff für Prinzipale und Ressourcen in Ihren Mitgliedskonten zentral zu konfigurieren und zu verwalten. Richtlinien zur Servicesteuerung (SCPs) definieren die maximal verfügbaren Berechtigungen für die AWS Identity and Access Management (IAM-) Rollen und Benutzer in Ihrer Organisation. Richtlinien zur Ressourcenkontrolle (RCPs) definieren die maximal verfügbaren Berechtigungen für Ressourcen in Ihrer Organisation.

Dieses Muster hilft Ihnen bei der Verwaltung SCPs und RCPs als Infrastructure as Code (IaC), die Sie über eine CI/CD-Pipeline (Continuous Integration and Continuous Deployment) bereitstellen. Indem Sie unsere AWS CloudFormation Hashicorp Terraform zur Verwaltung dieser Richtlinien verwenden, können Sie den Aufwand reduzieren, der mit der Erstellung und Verwaltung mehrerer Autorisierungsrichtlinien verbunden ist.

Dieses Muster umfasst die folgenden Funktionen:

  • Sie erstellen, löschen und aktualisieren die Autorisierungsrichtlinien mithilfe von Manifestdateien (scp-management.jsonundrcp-management.json).

  • Sie arbeiten mit Leitplanken statt mit Richtlinien. Sie definieren Ihre Leitplanken und ihre Ziele in den Manifestdateien.

  • Die Pipeline, die AWS CodeBuild und verwendet AWS CodePipeline, führt die Leitplanken in den Manifestdateien zusammen und optimiert sie. Für jede Anweisung in der Manifestdatei fasst die Pipeline die Guardrails zu einem einzigen SCP oder RCP zusammen und wendet sie dann auf die definierten Ziele an.

  • AWS Organizations wendet die Richtlinien auf Ihre Ziele an. Bei einem Ziel kann es sich um eine Organisationseinheit (OU), eine Umgebung (bei der es sich um eine Gruppe von Konten handelt oder OUs die Sie in der environments.json Datei definieren) oder um eine Gruppe von Konten mit einem gemeinsamen AWS Tag handeln. AWS-Konto

  • Amazon Bedrock liest die Pipeline-Protokolle und fasst alle Richtlinienänderungen zusammen.

  • Die Pipeline erfordert eine manuelle Genehmigung. Der Genehmiger kann die von Amazon Bedrock erstellte Zusammenfassung lesen, die ihm hilft, die Änderungen zu verstehen.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

  • Sie können dieses Muster nicht verwenden, um Objekte zu verwalten SCPs RCPs , die außerhalb dieser CI/CD-Pipeline erstellt wurden. Sie können jedoch vorhandene Richtlinien über die Pipeline neu erstellen. Weitere Informationen finden Sie unter Migrieren vorhandener Richtlinien zur Pipeline im Abschnitt Zusätzliche Informationen dieses Musters.

  • Die Anzahl der Konten und die Richtlinien in jedem Konto unterliegen den Kontingenten und Dienstlimits für AWS Organizations. OUs

  • Dieses Muster kann nicht zur Konfiguration von Verwaltungsrichtlinien wie Backup-Richtlinien, Tag-Richtlinien, Chat-Anwendungsrichtlinien oder deklarativen Richtlinien verwendet werden. AWS Organizations

Architektur

Das folgende Diagramm zeigt den Arbeitsablauf der Richtlinienverwaltungspipeline und der zugehörigen Ressourcen.

Veröffentlichung SCPs und Durchführung RCPs einer Richtlinienverwaltungspipeline.

Das Diagramm zeigt den folgenden Workflow:

  1. Ein Benutzer überträgt Änderungen an den Dateien scp-management.json oder den rcp-management.json Manifestdateien im Hauptzweig des Remote-Repositorys.

  2. Durch die Änderung des main Zweigs wird der Pipeline-Eingang initiiert. AWS CodePipeline

  3. CodePipeline startet das Validate-Plan CodeBuild Projekt. Dieses Projekt verwendet ein Python-Skript im Remote-Repository, um Richtlinien und die Richtlinienmanifestdateien zu validieren. Dieses CodeBuild Projekt macht Folgendes:

    1. Überprüft, ob die SCP- und RCP-Manifestdateien eine eindeutige Anweisung IDs () Sid enthalten.

    2. Verwendet die rcp-policy-processor/main.py Python-Skripte scp-policy-processor/main.py und, um Guardrails im Guardrails-Ordner zu einer einzigen RCP- oder SCP-Richtlinie zu verketten. Es kombiniert Leitplanken, die dieselben, und haben. Resource Action Condition

    3. Wird verwendet AWS Identity and Access Management Access Analyzer , um die endgültige, optimierte Richtlinie zu validieren. Falls irgendwelche Ergebnisse vorliegen, wird die Pipeline gestoppt.

    4. Erstellt scps.json rcps.json Dateien, die Terraform verwendet, um Ressourcen zu erstellen.

    5. Führt den terraform plan Befehl aus, der einen Terraform-Ausführungsplan erstellt.

  4. (Optional) Das Validate-Plan CodeBuild Projekt verwendet das bedrock-prompt/prompt.py Skript, um eine Aufforderung an Amazon Bedrock zu senden. Sie definieren die Aufforderung in der bedrock-prompt/prompt.txt Datei. Amazon Bedrock verwendet Anthropic Claude Sonnet 3.5, um durch die Analyse der Terraform- und Python-Protokolle eine Zusammenfassung der vorgeschlagenen Änderungen zu generieren.

  5. CodePipeline verwendet ein Amazon Simple Notification Service (Amazon SNS) -Thema, um Genehmiger darüber zu informieren, dass Änderungen überprüft werden müssen. Wenn Amazon Bedrock eine Änderungszusammenfassung generiert hat, enthält die Benachrichtigung diese Zusammenfassung.

  6. Ein Policy-Genehmiger genehmigt die Maßnahme in. CodePipeline Wenn Amazon Bedrock eine Änderungszusammenfassung generiert hat, kann der Genehmiger die Zusammenfassung CodePipeline vor der Genehmigung überprüfen.

  7. CodePipeline startet das Projekt. Apply CodeBuild Dieses Projekt verwendet Terraform, um die RCP- und SCP-Änderungen in anzuwenden. AWS Organizations

Die mit dieser Architektur verknüpfte IaC-Vorlage stellt außerdem die folgenden Ressourcen bereit, die die Richtlinienverwaltungspipeline unterstützen:

  • Ein Amazon S3 S3-Bucket zum Speichern von CodePipeline Artefakten und Skripten wie scp-policy-processor/main.py und bedrock-prompt/prompt.py

  • Ein AWS Key Management Service (AWS KMS) -Schlüssel, der die von dieser Lösung erstellten Ressourcen verschlüsselt

Tools

AWS-Services

  • Amazon Bedrock ist ein vollständig verwalteter KI-Service, der viele leistungsstarke Basismodelle über eine einheitliche API zur Nutzung verfügbar macht.

  • AWS CodeBuildist ein vollständig verwalteter Build-Service, der Ihnen hilft, Quellcode zu kompilieren, Komponententests durchzuführen und Artefakte zu erstellen, die sofort einsatzbereit sind. 

  • AWS CodePipelinehilft Ihnen dabei, die verschiedenen Phasen einer Softwareversion schnell zu modellieren und zu konfigurieren und die Schritte zu automatisieren, die für die kontinuierliche Veröffentlichung von Softwareänderungen erforderlich sind.

  • AWS Organizationsist ein Kontoverwaltungsservice, mit dem Sie mehrere Konten zu einer Organisation AWS-Konten zusammenfassen können, die Sie erstellen und zentral verwalten.

  • AWS SDK für Python (Boto3)ist ein Softwareentwicklungskit, mit dem Sie Ihre Python-Anwendung, -Bibliothek oder Ihr Skript integrieren können AWS-Services.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

Andere Tools

  • HashiCorp Terraform ist ein IaC-Tool, mit dem Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können.

Code-Repository

Der Code für dieses Muster ist im organizations-policy-pipeline GitHub Repository verfügbar. Im Folgenden sind die wichtigsten Dateien aufgeführt, die in dem sample-repository Ordner enthalten sind:

  • environments.jsonEnthält in dem environments Ordner eine Liste von Umgebungen. Umgebungen sind eine Gruppe von Zielen, und sie können Organisationseinheiten (OUs) enthalten AWS-Konto IDs .

  • Im rcp-management Ordner:

    • Der guardrails Ordner enthält die einzelnen Leitplanken für Ihre RCPs

    • Der policies Ordner enthält die einzelnen RCPs

    • Die rcp-management.json Manifestdatei hilft Ihnen bei der Verwaltung von RCP-Guardrails RCPs, Full und den zugehörigen Zielen.

  • Im Ordner: scp-management

    • Der guardrails Ordner enthält die einzelnen Leitplanken für Ihre SCPs

    • Der policies Ordner enthält die einzelnen SCPs

    • Die scp-management.json Manifestdatei hilft Ihnen bei der Verwaltung von SCP-Guardrails SCPs, Full und den zugehörigen Zielen.

  • Der utils Ordner enthält Skripts, mit denen Sie Ihre aktuellen Dateien migrieren SCPs und RCPs sie über die Pipeline verwalten können. Weitere Informationen finden Sie im Abschnitt Zusätzliche Informationen dieses Musters.

Bewährte Methoden

  • Bevor Sie die Pipeline einrichten, empfehlen wir Ihnen, sich zu vergewissern, dass Sie die Grenzwerte Ihrer AWS Organizations Kontingente nicht erreicht haben.

  • Wir empfehlen, das AWS Organizations Verwaltungskonto nur für Aufgaben zu verwenden, die in diesem Konto ausgeführt werden müssen. Weitere Informationen finden Sie unter Bewährte Methoden für das Verwaltungskonto.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein -Repository.

Erstellen Sie ein Repository, von dem aus Ihr Security Operations Team die Richtlinien verwaltet. Verwenden Sie einen der Drittanbieter für Repositorys, der dies AWS CodeConnections unterstützt.

DevOps Ingenieur

Delegieren Sie die Richtlinienverwaltung.

Delegieren Sie die Verwaltung der AWS Organizations Richtlinien an das Mitgliedskonto, für das Sie die Pipeline bereitstellen. Anweisungen finden Sie unter Erstellen einer ressourcenbasierten Delegierungsrichtlinie mit. AWS Organizations Ein Beispiel für eine Richtlinie finden Sie unter Beispiel für eine ressourcenbasierte Delegierungsrichtlinie im Abschnitt Zusätzliche Informationen dieses Musters.

AWS-Administrator

(Optional) Aktivieren Sie das Foundation-Modell.

Wenn Sie Zusammenfassungen der Richtlinienänderungen erstellen möchten, aktivieren Sie den Zugriff auf das Anthropic Claude 3.5 Sonnet Foundation-Modell in Amazon Bedrock in dem Land, in AWS-Konto dem Sie die Pipeline bereitstellen. Anweisungen finden Sie unter Zugriff auf Amazon Bedrock Foundation-Modelle hinzufügen oder entfernen.

Allgemeines AWS
AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das Repository

Geben Sie den folgenden Befehl ein, um das organizations-policy-pipeline Repository von zu klonen GitHub:

git clone https://github.com/aws-samples/organizations-policy-pipeline.git

DevOps Ingenieur

Definieren Sie Ihre Bereitstellungsmethode.

  1. Öffnen Sie die variables.tf Datei im geklonten Repository.

  2. Geben Sie für project_name das Präfix ein, das Sie auf die Namen der bereitgestellten Ressourcen anwenden möchten.

  3. Geben Sie für provider_type den Anbieter des Remote-Repositorys ein. Gültige Werte sind in der Datei enthalten.

  4. Geben Sie für full_repository_name den Namen des Remote-Repositorys ein.

  5. Geben Sie für branch_name den Namen des Git-Branches ein, den Sie für die Bereitstellung von Richtlinien verwenden werden. Ein Push oder Merge in diesem Branch startet die Pipeline. In der Regel ist dies der Hauptzweig.

  6. Geben Sie für terraform_version die Version von Terraform ein, die Sie verwenden.

  7. Geben Sie für einenable_bedrock, true ob Amazon Bedrock die Änderungen zusammenfassen soll. Geben Sie ein, false wenn Sie keine Zusammenfassung der Änderungen generieren möchten.

  8. Geben Sie für tags die Schlüssel-Wert-Paare ein, die Sie den bereitgestellten Ressourcen als Tags zuweisen möchten.

  9. Speichern und schließen Sie die Datei variables.tf.

DevOps Ingenieur

Stellen Sie die Pipeline bereit.

  1. Geben Sie den folgenden Befehl ein, um einen Plan zu erstellen und die Änderungen zu überprüfen:

    terraform plan
  2. Geben Sie den folgenden Befehl ein, um den Plan anzuwenden und die Pipeline-Infrastruktur zu erstellen:

    terraform apply
DevOps Ingenieur, Terraform

Connect zum Remote-Repository her.

Im vorherigen Schritt hat Terraform eine CodeConnections Verbindung zum Repository eines Drittanbieters hergestellt. Ändern Sie in der AWS Developer Tools-Konsole den Status der Verbindung von PENDING zu. AVAILABLE Anweisungen finden Sie unter Aktualisieren einer ausstehenden Verbindung.

AWS DevOps

Abonnieren Sie das Amazon-SNS-Thema.

Terraform hat ein Amazon SNS SNS-Thema erstellt. Abonnieren Sie einen Endpunkt für das Thema und bestätigen Sie das Abonnement, damit die Genehmiger Benachrichtigungen über ausstehende Genehmigungsaktionen in der Pipeline erhalten. Anweisungen finden Sie unter Erstellen eines Abonnements für ein Amazon SNS SNS-Abonnement.

Allgemeines AWS
AufgabeBeschreibungErforderliche Fähigkeiten

Füllen Sie das Remote-Repository auf.

Kopieren Sie den Inhalt des sample-repository Ordners aus dem geklonten Repository in Ihr Remote-Repository. Dazu gehören die utils Ordner environmentsrcp-management,scp-management, und.

DevOps Ingenieur

Definieren Sie Ihre Umgebungen.

  1. Öffnen environments Sie die environments.json Datei in dem Ordner. Dies ist die Datei, in der Sie das Ziel AWS-Konten und OUs für Ihr RCPs und definieren SCPs.

  2. Löschen Sie die Beispielumgebungen.

  3. Fügen Sie Ihre Zielumgebungen im folgenden Format hinzu:

    [ { "ID": "<environment-name>", "Target": [ "<ou-name>:<ou-id>", "<account-name>:<account-id>" ] } ]

    Wobei gilt:

    • <environment-name>ist der Name, den Sie der Gruppe von OUs AWS-Konten zuweisen. Sie können diesen Namen in der Manifestdatei verwenden, um zu definieren, wo Sie Ihre Richtlinien anwenden möchten.

    • <ou-name>ist der Name der Ziel-OU.

    • <ou-id>ist die ID der Ziel-OU.

    • <account-name>ist der Name des Ziels AWS-Konto.

    • <account-id>ist die ID des Ziels AWS-Konto.

    Beispiele finden Sie im Quellcode-Repository.

  4. Speichern und schließen Sie die Datei environments.json.

DevOps Ingenieur

Definiere deine Leitplanken.

  1. Navigieren Sie zu dem rcp-management/guardrails Ordner in Ihrem Remote-Repository. In diesem Ordner definieren Sie die Leitplanken für Ihre RCP-Manifestdatei. Jede Leitplanke muss sich in einer eigenen Datei befinden. Guardrail-Dateien können eine oder mehrere Anweisungen enthalten.

    Anmerkung

    Sie können dieselbe Guardrail in mehreren Anweisungen in den Manifestdateien für und verwenden. SCPs RCPs Wenn Sie die Leitplanke ändern, sind alle Richtlinien betroffen, die diese Leitplanke enthalten.

  2. Löschen Sie alle Beispiel-Guardrails, die aus dem Quellcode-Repository kopiert wurden.

  3. Erstellen Sie eine neue JSON-Datei und geben Sie ihr einen aussagekräftigen Namen.

  4. Öffnen Sie die von Ihnen erstellte JSON-Datei.

  5. Definieren Sie die Leitplanke im folgenden Format:

    [ { "Sid": "<guardrail-name>", "Effect": "<effect-value>", "Action": [ "<action-name>" ], "Resource": "<resource-arn>", "Condition": { "<condition-operator>": { "<condition-key>": [ "<condition-value>" ] } } } ]

    Wobei gilt:

    • <guardrail-name>ist ein eindeutiger Name für die Leitplanke. Dieser Name kann nicht für andere Leitplanken verwendet werden.

    • <effect-value>muss oder sein. Allow Deny Weitere Informationen finden Sie unter Wirkung.

    • <action-name>muss ein gültiger Name einer Aktion sein, die der Dienst unterstützt. Weitere Informationen finden Sie unter Aktion.

    • <resource-arn>ist der Amazon-Ressourcenname (ARN) der Ressource, für die die Leitplanke gilt. Sie können auch Platzhalterzeichen wie oder verwenden. * ? Weitere Informationen finden Sie unter Ressource.

    • <condition-operator>ist ein gültiger Bedingungsoperator. Weitere Informationen finden Sie unter Bedingungsoperatoren.

    • <condition-key>ist ein gültiger globaler Bedingungskontextschlüssel oder ein dienstspezifischer Kontextschlüssel. Weitere Informationen finden Sie unter Bedingung.

    • <condition-value>ist der spezifische Wert, der in einer Bedingung verwendet wird, um zu bewerten, ob eine Leitplanke zutrifft. Weitere Informationen finden Sie unter Bedingung.

    Ein Beispiel für RCP-Guardrails finden Sie im Quellcode-Repository.

  6. Speichern und schließen Sie die JSON-Datei.

  7. Wiederholen Sie diese Schritte, um so viele RCP-Leitplanken wie nötig zu erstellen.

  8. Wiederholen Sie diese Schritte im scp-management/guardrails Ordner, um so viele Leitplanken zu erstellen, wie Sie für Ihre benötigen. SCPs Ein Beispiel für SCP-Guardrails finden Sie im Quellcode-Repository.

DevOps Ingenieur

Definieren Sie Ihre Richtlinien.

  1. Navigieren Sie zu dem rcp-management/policies Ordner in Ihrem Remote-Repository. In diesem Ordner definieren Sie die vollständigen Richtlinien für Ihre RCP-Manifestdatei. Jede Richtlinie muss eine einzelne Datei sein.

    Anmerkung

    Wenn Sie eine Richtlinie in diesem Ordner ändern, wirken sich die Richtlinienänderungen, wie in der Manifestdatei definiert, auf alle Konten aus oder OUs auf die diese Richtlinie angewendet wird.

  2. Löschen Sie alle Beispielrichtlinien, die aus dem Quellcode-Repository kopiert wurden.

  3. Erstellen Sie eine neue JSON-Datei und geben Sie ihr einen aussagekräftigen Namen.

  4. Öffnen Sie die von Ihnen erstellte JSON-Datei.

  5. Definieren Sie das RCP. Sehen Sie sich RCPs beispielsweise das Quellcode-Repository oder die Beispiele für Richtlinien zur Ressourcensteuerung in der AWS Organizations Dokumentation an.

  6. Speichern und schließen Sie die JSON-Datei.

  7. Wiederholen Sie diese Schritte, um so viele RCPs wie nötig zu erstellen.

  8. Wiederholen Sie diese Schritte im scp-management/policies Ordner, um so viele SCPs wie nötig zu erstellen. Sehen Sie sich SCPs beispielsweise das Quellcode-Repository oder die Beispiele für Richtlinien zur Servicesteuerung in der AWS Organizations Dokumentation an.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Konfigurieren Sie die Manifestdateien.

  1. Öffnen rcp-management Sie die rcp-management.json Datei in dem Ordner. In dieser Datei definieren Sie, welche RCP-Guardrails und welche RCP-Richtlinien für Ihre RCPs Zielumgebungen gelten. Ein Beispiel für diese Datei finden Sie im Quellcode-Repository.

  2. Löschen Sie die Beispielanweisung.

  3. Fügen Sie eine neue Anweisung im folgenden Format hinzu:

    [ { "SID": "<statement-name>", "Target": { "Type": "<target-type>", "ID": "<target-name>" }, "Guardrails": [ "<guardrail-name>" ], "Policy": "<policy-name>", "Comments": "<comment-text>" } ]

    Wobei gilt:

    • <statement-name>ist ein eindeutiger Name für die Anweisung.

    • <target-type>ist der Zieltyp, auf den Sie die Richtlinie anwenden möchten. Gültige Werte sind Account, OU, Environment oder Tag.

    • <target-name>ist der Bezeichner des Ziels, auf das Sie die Richtlinie anwenden möchten. Machen Sie eine der folgenden Eingaben:

      • Geben Sie für eine AWS-Konto den Bezeichner als ein<account-name>:<account-id>.

      • Geben Sie für eine Organisationseinheit den Bezeichner als ein<OU-name>:<ou-id>.

      • Geben Sie für eine Umgebung den eindeutigen Namen ein, den Sie in der environments.json Datei definiert haben.

      • Geben Sie für ein Tag das Schlüssel-Wert-Paar als ein. <tag-key>:<tag-value>

    • <guardrail-name>ist der eindeutige Name der RCP-Leitplanke, die Sie im Ordner definiert haben. rcp-management/guardrails Sie können diesem Element mehrere Leitplanken hinzufügen. Sie können dieses Feld leer lassen, wenn Sie keine Leitplanke anwenden möchten.

    • <policy-name>ist der eindeutige Name des RCP, den Sie im Ordner definiert haben. rcp-management/policies Sie können diesem Element nur eine Richtlinie hinzufügen. Sie können dieses Feld leer lassen, wenn Sie keine Richtlinie anwenden möchten.

    • <comment-text>ist eine Beschreibung, die Sie zu Dokumentationszwecken eingeben können. Dieses Feld wird bei der Pipelineverarbeitung nicht verwendet. Sie können dieses Feld leer lassen, wenn Sie keinen Kommentar hinzufügen möchten.

  4. Wiederholen Sie diese Schritte, um so viele Anweisungen hinzuzufügen, wie für die Konfiguration RCPs für Ihre Organisation erforderlich sind.

  5. Speichern und schließen Sie die Datei rcp-management.json.

  6. Wiederholen Sie diese Schritte im scp-management Ordner in der scp-management.json Datei. In dieser Datei definieren Sie, welche SCP-Guardrails und welche SCP-Richtlinien für Ihre SCPs Zielumgebungen gelten. Ein Beispiel für diese Datei finden Sie im Quellcode-Repository.

DevOps Ingenieur

Starte die Pipeline.

Übernehmen Sie die Änderungen und übertragen Sie sie in den Zweig des Remote-Repositorys, den Sie in der variables.tf Datei definiert haben. In der Regel ist dies der main Branch. Die CI/CD-Pipeline wird automatisch gestartet. Falls Pipeline-Fehler auftreten, finden Sie weitere Informationen im Abschnitt zur Fehlerbehebung in diesem Muster.

DevOps Ingenieur

Genehmigen Sie die Änderungen.

Wenn das Validate-Plan CodeBuild Projekt abgeschlossen ist, erhalten die Richtliniengenehmiger eine Benachrichtigung über das Amazon SNS SNS-Thema, das Sie zuvor konfiguriert haben. Gehen Sie wie folgt vor:

  1. Öffnen Sie die Benachrichtigungsnachricht.

  2. Falls verfügbar, überprüfen Sie die Zusammenfassung der Richtlinienänderungen.

  3. Folgen Sie den Anweisungen unter Genehmigungsaktion genehmigen oder ablehnen unter CodePipeline.

Allgemeines AWS, Richtliniengenehmiger

Validieren Sie die Bereitstellung.

  1. Melden Sie sich bei der AWS Organizations Konsole mit dem Konto an, für AWS Organizations das Sie der delegierte Administrator ist.

  2. Vergewissern Sie sich auf der Seite mit den Richtlinien zur Dienststeuerung, SCPs dass die von Ihnen erstellten Richtlinien aufgeführt sind.

  3. Wählen Sie einen SCP aus, der über die Pipeline verwaltet wird, und vergewissern Sie sich, dass er für die vorgesehenen Ziele gilt.

  4. Vergewissern Sie sich auf der Seite Resource Control Policies, RCPs dass die, die Sie erstellt haben, aufgeführt sind.

  5. Wählen Sie ein RCP aus, das über die Pipeline verwaltet wird, und vergewissern Sie sich, dass es für die vorgesehenen Ziele gilt.

Allgemeines AWS

Fehlerbehebung

ProblemLösung

Manifeste Dateifehler in der Validate-Plan Phase der Pipeline

Wenn die ODER-Dateien Fehler enthalten, wird in der Pipeline-Ausgabe die Meldung „Pipeline-Fehler in der Überprüfungs scp-management.json - und Planungsphase für rcp-management.json Manifestdateien“ angezeigt. Zu den möglichen Fehlern gehören ein falscher Umgebungsname SIDs, doppelte oder ungültige Felder oder Werte. Gehen Sie wie folgt vor:

  1. Folgen Sie den Anweisungen unter Build-Details anzeigen unter AWS CodeBuild.

  2. Suchen Sie im Build-Log nach dem Validierungsfehler. Der Fehler enthält weitere Informationen darüber, was zum Fehlschlagen des Builds geführt hat.

  3. Aktualisieren Sie die entsprechende JSON-Datei.

  4. Übergeben Sie die aktualisierte Datei und übertragen Sie sie in das Remote-Repository. Die Pipeline wird neu gestartet.

  5. Überwachen Sie den Status, um sicherzustellen, dass der Validierungsfehler behoben wurde.

Ergebnisse des IAM Access Analyzer in der Validate-Plan Pipeline-Phase

Die Meldung „Ergebnisse in IAM Access Analyzer während der Überprüfungs- und Planungsphase“ wird in der Pipeline-Ausgabe angezeigt, wenn Fehler in der Guardrail- oder Policy-Definition vorliegen. Dieses Muster verwendet IAM Access Analyzer, um die endgültige Richtlinie zu validieren. Gehen Sie wie folgt vor:

  1. Folgen Sie den Anweisungen unter Build-Details anzeigen unter AWS CodeBuild.

  2. Suchen Sie im Build-Log nach dem IAM Access Analyzer-Validierungsfehler. Der Fehler enthält weitere Informationen darüber, was zum Fehlschlagen des Builds geführt hat. Weitere Informationen zu den Findetypen finden Sie in der Referenz zur Überprüfung der IAM-Richtlinienvalidierung.

  3. Aktualisieren Sie die entsprechende .json-Datei für die Leitplanke oder Richtlinie.

  4. Übergeben Sie die aktualisierte Datei und übertragen Sie sie in das Remote-Repository. Die Pipeline wird neu gestartet.

  5. Überwachen Sie den Status, um sicherzustellen, dass der Validierungsfehler behoben wurde.

Zugehörige Ressourcen

Zusätzliche Informationen

Beispiel für eine ressourcenbasierte Delegierungsrichtlinie

Im Folgenden finden Sie ein Beispiel für eine ressourcenbasierte Delegierungsrichtlinie für. AWS Organizations Sie ermöglicht dem delegierten Administratorkonto die Verwaltung SCPs und RCPs für die Organisation. Ersetzen Sie den Wert in der folgenden Beispielrichtlinie <MEMBER_ACCOUNT_ID> durch die ID des Kontos, für das Sie die Richtlinienverwaltungspipeline bereitstellen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegationToAudit", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<MEMBER_ACCOUNT_ID>:root" }, "Action": [ "organizations:ListTargetsForPolicy", "organizations:CreatePolicy", "organizations:DeletePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DisablePolicyType", "organizations:EnablePolicyType", "organizations:UpdatePolicy", "organizations:DescribeEffectivePolicy", "organizations:DescribePolicy", "organizations:DescribeResourcePolicy" ], "Resource": "*" } ] }

Migrieren vorhandener Richtlinien in die Pipeline

Wenn Sie bereits über diese Pipeline verfügen SCPs oder RCPs die Sie über diese Pipeline migrieren und verwalten möchten, können Sie die Python-Skripte im sample-repository/utils Ordner des Code-Repositorys verwenden. Zu diesen Skripten gehören:

  • check-if-scp-exists-in-env.py— Dieses Skript prüft, ob eine angegebene Richtlinie für Ziele in einer bestimmten Umgebung gilt, die Sie in der environments.json Datei definieren. Geben Sie den folgenden Befehl ein, um dieses Skript auszuführen:

    python3 check-if-scp-exists-in-env.py \ --policy-type <POLICY_TYPE> \ --policy-name <POLICY_NAME> \ --env-id <ENV_ID>

    Ersetzen Sie in diesem Befehl Folgendes:

    • <POLICY_TYPE> ist scp oder rcp

    • <POLICY_NAME>ist der Name des SCP oder RCP

    • <ENV_ID>ist die ID der Umgebung, die Sie in der Datei definiert haben environments.json

  • create-environments.py— Dieses Skript erstellt eine environments.json-Datei, die auf der aktuellen SCPs und RCPs in Ihrer Umgebung basiert. Es schließt Richtlinien aus, die über bereitgestellt werden. AWS Control Tower Geben Sie den folgenden Befehl ein, um dieses Skript auszuführen, wobei <POLICY_TYPE> es sich um scp oder rcp handelt:

    python create-environments.py --policy-type <POLICY_TYPE>
  • verify-policies-capacity.py— Dieses Skript überprüft jede von Ihnen definierte Umgebung, um festzustellen, wie viel Kapazität für jedes AWS Organizations richtlinienbezogene Kontingent noch übrig ist. Sie definieren die Umgebungen, in die die Datei eingecheckt werden soll. environments.json Geben Sie den folgenden Befehl ein, um dieses Skript auszuführen, wobei <POLICY_TYPE> es sich um scp oder handeltrcp:

    python verify-policies-capacity.py --policy-type <POLICY_TYPE>