Dynamisches Verwalten von AWS Berechtigungssätzen mithilfe von Terraform - 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.

Dynamisches Verwalten von AWS Berechtigungssätzen mithilfe von Terraform

Vinicius Elias und Marcos Vinicius Pinto Jordão, Amazon Web Services

Übersicht

AWS IAM Identity Center erweitert AWS Identity and Access Management (IAM) durch die Bereitstellung eines zentralen Hubs für die Verwaltung des Single Sign-On-Zugriffs auf und Cloud-Anwendungen. AWS-Konten Die manuelle Verwaltung von IAM Identity Center-Berechtigungssätzen kann jedoch mit dem Wachstum Ihres Unternehmens immer komplexer und fehleranfälliger werden. Diese Komplexität kann zu potenziellen Sicherheitslücken und administrativem Aufwand führen.

Diese Lösung ermöglicht Ihnen die Verwaltung von Berechtigungssätzen über Infrastructure as Code (IaC) mithilfe einer systemeigenen Pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD). AWS-Services Es ermöglicht eine nahtlose Integration des Mechanismus zur Zuweisung von Berechtigungssätzen mit AWS Control Tower Lebenszyklusereignissen oder einer Account Factory for Terraform (AFT) -Umgebung. Dieser Ansatz bietet dynamische Identitätskonfigurationen sowohl für neue als auch für bestehende. AWS-Konten

Die EventBridge Amazon-Regeln überwachen die AWS-Konto Erstellung und Aktualisierung, sodass Ihre Identitätskonfigurationen mit Ihrer Organisationsstruktur synchronisiert bleiben. Nach dem Erstellen oder Aktualisieren von Konten in AWS Control Tower oder AFT wird die Pipeline ausgelöst. Sie wertet eine Reihe von JSON-Dateien mit Definitionen von Berechtigungssätzen und Zuweisungsregeln aus. Anschließend wendet die Pipeline die Einstellungen an und synchronisiert sie für alle Konten.

Dieser Ansatz bietet die folgenden Vorteile:

  • Konsistenz — Eliminiert manuelle Konfigurationsabweichungen in Ihrem AWS Unternehmen

  • Überprüfbarkeit — Führt einen vollständigen Verlauf aller Änderungen im Identitätsmanagement

  • Skalierbarkeit — Wendet Konfigurationen automatisch an, wenn Ihre AWS Umgebung wächst

  • Sicherheit — Reduziert menschliche Fehler bei der Zuweisung von Berechtigungen

  • Compliance — Erleichtert die Einhaltung gesetzlicher Anforderungen durch dokumentierte Änderungen und Zuweisungsregeln

Voraussetzungen und Einschränkungen

  • Eine Umgebung mit mehreren Konten mit AWS Control Tower und AWS Organizations Einrichtung. Optional können Sie AFT mit AWS Control Tower verwenden.

  • Ein Administrator wurde von IAM Identity Center mit dem Empfang der Lösung AWS-Konto beauftragt. Weitere Informationen finden Sie unter Delegierte Administration in der IAM Identity Center-Dokumentation.

  • Ein Repository für das Versionskontrollsystem (VCS) zur Verwaltung des Hauptcodes. Ein Beispiel finden Sie im GitHub Repository der Lösung.

  • Erforderliche AWS Ressourcen für das Terraform-Backend-Management, z. B. ein Amazon Simple Storage Service (Amazon S3) -Bucket und eine Amazon DynamoDB-Tabelle.

Einschränkungen

  • Die Pipeline verwendet AWS native Ressourcen und Open-Source-Terraform. Die Pipeline ist nicht bereit, Ökosysteme von Drittanbietern aufzurufen.

  • Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS Dienste nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Architektur

Das folgende Diagramm zeigt die Komponenten und den Arbeitsablauf für dieses Muster.

Komponenten und Workflow zur Verwaltung von AWS-Berechtigungssätzen mit Terraform.

AWS Control Tower Ablauf von Ereignissen

Die Lösung beginnt mit der Integration von Ereignissen, die entweder von AFT AWS Control Tower oder von AFT kommen. Die Wahl zwischen dem einen oder dem anderen Dienst wird bei der Implementierung anhand einer Variablendefinition getroffen. Unabhängig von der verwendeten Methode wird die Pipeline immer dann ausgelöst, wenn ein Konto erstellt oder aktualisiert wird. Die Pipeline gleicht die im Repository zur Verwaltung von Berechtigungssätzen gespeicherten Richtlinien ab.

Im Folgenden sind die AWS Control Tower Lebenszyklusereignisse aufgeführt:

  • CreateManagedAccount— Wenn ein neues Konto erstellt wird

  • UpdateManagedAccount— Wenn ein vorhandenes Konto aktualisiert wird

Weiterleitung von Ereignissen

EventBridge dient als zentraler Dienst zur Ereignisverarbeitung und erfasst Ereignisse, die im AWS Control Tower Konto generiert wurden. Wenn Ereignisse auftreten, werden sie EventBridge intelligent an einen zentralen Ereignisbus im Lösungskonto weitergeleitet. AWS Control Tower Lebenszyklusereignisse folgen unterschiedlichen Routingmustern. Wenn AFT als Ereignisquelle definiert ist, verarbeitet das AFT-Verwaltungskonto die Ereignisse und nicht das AWS Control Tower Konto. Diese ereignisgesteuerte Architektur ermöglicht automatisierte Reaktionen auf organisatorische Änderungen ohne manuelles Eingreifen.

AFT-Integrationsprozess

Wenn AWS Control Tower Lebenszyklusereignisse das AFT-Verwaltungskonto erreichen, lösen sie automatisch mehrere nachgelagerte Prozesse aus, die für AFT typisch sind. Nachdem der Workflow zur AFT-Kontoanpassung abgeschlossen ist, wird eine Nachricht zum speziellen Thema aft-notifications Amazon Simple Notification Service (Amazon SNS) veröffentlicht. Dieses Thema löst die aft-new-account-forward-event AWS Lambda Funktion aus, die durch diese Lösung implementiert wird. Die Lambda-Funktion sendet das Ereignis an den Eventbus des Lösungskontos, wo es zum Starten der Pipeline verwendet wird.

Infrastruktur als Code-Pipeline

Die Lösungspipeline funktioniert als vollautomatischer Bereitstellungsmechanismus. Der AWS CodePipeline Service überwacht das Repository kontinuierlich auf Änderungen. Sobald neue Commits erkannt werden, initiiert er automatisch den Bereitstellungs-Workflow und leitet einen sequentiellen Prozess ein, der Validierungs- und Ausführungsphasen umfasst. Das System führt plan Terraform-Operationen aus, um vorgeschlagene Änderungen zu identifizieren, gefolgt von apply Terraform-Befehlen, um diese Änderungen in der Umgebung zu implementieren. AWS Insbesondere läuft die Pipeline ohne manuelle Genehmigungen. Dieser Ansatz ermöglicht eine schnelle Implementierung von Infrastrukturänderungen bei gleichzeitiger Wahrung der Überprüfbarkeit anhand von Pipeline-Protokollen und Terraform-Statusdateien.

Die Pipeline nutzt die Möglichkeit AWS CodeBuild , Terraform-Operationen in einer kontrollierten Umgebung mit entsprechenden Berechtigungen auszuführen. Durch diesen IaC-Ansatz kann die Pipeline umfassende Berechtigungsverwaltungsvorgänge durchführen, darunter:

  • Neue Berechtigungssätze erstellen.

  • Aktualisieren Sie bestehende Berechtigungssätze.

  • Entfernen Sie unnötige Berechtigungssätze.

  • Verwalten Sie die Zuweisung dieser Berechtigungen für Konten und Gruppen innerhalb der AWS Organisationen.

Um die Konsistenz der Infrastruktur aufrechtzuerhalten und widersprüchliche Änderungen zu vermeiden, implementiert die Lösung das Terraform-Backend-Statusverwaltungssystem mithilfe eines Amazon S3 S3-Buckets und einer dedizierten Amazon DynamoDB-Tabelle. Dieser Ansatz bietet einen dauerhaften Speicherort für Terraform-Statusdateien und Zustandssperrmechanismen, um gleichzeitige Änderungen an denselben Ressourcen zu verhindern.

Der Terraform-Hauptcode verwendet das offizielle Terraform-Modul. AWS permission-sets Dieses Modul kann Berechtigungssätze in IAM Identity Center dynamisch verwalten, basierend auf Vorlagen für Berechtigungssätze.

Verwaltung der Quellcodeverwaltung

Die Berechtigungssatz-Vorlagen (JSON-Dateien) befinden sich in einem externen Versionskontrollsystem GitHub, das beispielsweise ein zentrales Repository für Identitätsverwaltungskonfigurationen bereitstellt. Dieser Ansatz schafft eine zentrale Informationsquelle für Definitionen von Berechtigungssätzen und ermöglicht gleichzeitig die gemeinsame Entwicklung durch standardmäßige Verfahren zur Codeüberprüfung. Autorisierte Benutzer können im Anschluss an die organisatorischen Change-Management-Prozesse Änderungen an diesen Vorlagen vornehmen. Diese Commits dienen als primärer Auslöser für die automatisierte Bereitstellungspipeline und leiten den Aktualisierungsprozess der Infrastruktur ein.

Ein Beispiel für die Konfiguration der Berechtigungssätze mithilfe der JSON-Datei im Repository finden Sie unter Zusätzliche Informationen.

Tools

AWS-Services

  • AWS CodeBuildist ein vollständig verwalteter Build-Service, der Sie beim Kompilieren von Quellcode, beim Ausführen von Komponententests und beim Erstellen von Artefakten unterstützt, die sofort einsatzbereit sind.

  • AWS CodeConnectionsermöglicht AWS Ressourcen und Dienste, z. B. CodePipeline das Herstellen einer Verbindung zu externen Code-Repositorys, wie GitHub z.

  • 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 Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie AWS-Services über Befehle in Ihrer Befehlszeilen-Shell interagieren können.

  • AWS Control Towerhilft Ihnen bei der Einrichtung und Verwaltung einer Umgebung AWS mit mehreren Konten und folgt dabei den vorgeschriebenen Best Practices.

  • Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.

  • Amazon EventBridge ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWS IAM Identity Centerhilft Ihnen dabei, den Single Sign-On (SSO) -Zugriff auf all Ihre Anwendungen AWS-Konten und Cloud-Anwendungen zentral zu verwalten.

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

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

  • Amazon Simple Notification Service (Amazon SNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Es ermöglicht Push-Benachrichtigungen für Ereignisse in der Kontoverwaltung und stellt so sicher, dass die relevanten Parteien über wichtige Änderungen oder Aktionen innerhalb des Systems informiert werden.

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

Andere Tools

  • Terraform ist ein IaC-Tool (Infrastructure as Code) HashiCorp , mit dem Sie Cloud- und lokale Ressourcen erstellen und verwalten können.

Code-Repository

Der Code für dieses Muster ist in der AWS Samples-Organisation GitHub im Repository sample-terraform-aws-permission-sets-pipeline verfügbar.

Bewährte Methoden

  • Stecken Sie immer die Versionen der Terraform-Module und -Anbieter fest, die zur Ausführung von Code in der Produktion verwendet werden.

  • Verwenden Sie ein statisches Codeanalyse-Tool wie Checkov, um Ihren Code zu scannen und dann die Sicherheitsprobleme zu lösen.

  • Folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter Gewährung der geringsten Rechte und bewährte Methoden zur Sicherheit.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie Terraform-Backend-Ressourcen.

Wenn Sie Ihre AWS Terraform-Backend-Ressourcen noch nicht erstellt haben, gehen Sie wie folgt vor, um einen Amazon S3 S3-Bucket (s3-tf-backend-{ACCOUNT_ID}) und eine DynamoDB-Tabelle () zu erstellen. ddb-tf-backend

  1. Melden Sie sich bei dem Ort an, AWS-Konto an dem Sie die Lösung bereitstellen werden, und öffnen Sie die Seite zu Hause. AWS CloudShell AWS Control Tower AWS-Region

  2. Führen Sie die folgenden Befehle aus und ersetzen Sie den Platzhalter {ACCOUNT_ID} durch Ihre AWS-Konto ID:

aws s3api create-bucket --bucket s3-tf-backend-{ACCOUNT_ID} aws s3api put-bucket-versioning --bucket s3-tf-backend-{ACCOUNT_ID} --versioning-configuration Status=Enabled aws dynamodb create-table --table-name ddb-tf-backend --attribute-definitions AttributeName=LockID,AttributeType=S --key-schema AttributeName=LockID,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
AWS-Administrator

Erstellen Sie eine kontoübergreifende Rolle.

Sie müssen in der event-source-account AWS Terraform-Anbieterkonfiguration eine kontoübergreifende IAM-Rolle angeben. Wenn Sie diese Rolle noch nicht erstellt haben, gehen Sie wie folgt vor, um sie zu erstellen:

  1. Melden Sie sich bei dem Konto an AWS-Konto , das Ihre Veranstaltungsquelle sein soll (AWS Control Tower Verwaltungskonto oder AFT-Konto), und öffnen Sie AWS CloudShell.

  2. Führen Sie den folgenden Befehl aus und ersetzen Sie den Platzhalter {ACCOUNT_ID} durch die AWS-Konto ID, die Sie für diese Lösung verwenden, nicht durch Ihre aktuelle AWS-Konto ID:

aws iam create-role \ --role-name CrossAccountRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{ACCOUNT_ID}:root" }, "Action": "sts:AssumeRole" } ] }'
  1. Überprüfen Sie die Befehlsausgabe und kopieren Sie die Rolle Amazon Resource Name (ARN) (z. B.arn:aws:iam::111122223333:role/CrossAccountRole).

  2. Führen Sie den folgenden Befehl aus, um der Rolle eine IAM-Richtlinie anzuhängen:

aws iam attach-role-policy \ --role-name CrossAccountRole \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

In diesem Beispiel wird die AWS verwaltete IAM-Richtlinie verwendet. AdministratorAccess Wenn Sie möchten, können Sie eine spezifischere Richtlinie verwenden.

AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein spezielles Repository.

Bei dieser Aufgabe wird davon ausgegangen, dass Sie verwenden GitHub. Erstellen Sie ein spezielles Repository zum Speichern des Terraform-Hauptcodes und der JSON-Vorlagendateien für den Berechtigungssatz.

DevOps Ingenieur

Bereiten Sie den Code für den Berechtigungssatz vor.

Informationen dazu, wie Sie die folgenden Dateien strukturieren können, finden Sie im Beispielcode im Lösungs-Repository:

√─ main.tf

√─ gibt aus.tf

√─ providers.jinja

── Vorlagen

Kopieren Sie den Inhalt, behalten Sie die providers.jinja Werte bei und nehmen Sie die erforderlichen Anpassungen an den anderen Dateien vor. Fügen Sie beispielsweise Vorlagendateien für Berechtigungssätze in die Datei ein templates oder heften Sie die aws-ia/permission-sets/aws Modulversion an die main.tf Datei an.

DevOps Ingenieur

Bestätigen Sie Ihre Änderungen.

Übernehmen Sie die Änderungen und übertragen Sie sie in das Repository, das Sie zuvor erstellt haben. Speichern Sie den Namen des Repositorys und seine GitHub Organisation, zum Beispielmyorg/aws-ps-pipeline.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie den Inhalt herunter.

Laden Sie den Inhalt aus dem Lösungs-Repository herunter (klonen) Sie ihn.

DevOps Ingenieur

Erfülle die Variablen.

Erstellen Sie eine terraform.tfvars Datei und fügen Sie die folgenden erforderlichen Variablen hinzu:

  • repository_name— Name des Berechtigungssatz-Repositorys, das Sie zuvor erstellt haben

  • branch_name— Name des Repository-Zweigs für den Berechtigungssatz

  • vcs_provider— Ihr VCS-Anbieter

  • account_lifecycle_events_source— Die Quelle der Ereignisse, die die Pipeline (AWS Control Tower oder AFT) auslösen sollen

repository_name = "myorg/aws-ps-pipeline" branch_name = "main" vcs_provider = "github" account_lifecycle_events_source = "CT"

Informationen zu zusätzlichen Variablenoptionen finden Sie in der Datei variables.tf im Repository dieses Patterns. GitHub

DevOps Ingenieur

Passen Sie die Terraform-Backend-Konfiguration an.

Ersetzen Sie in der backend.tf Datei die Platzhalter durch Ihre eigenen Werte. Verwenden Sie die AWS Control Tower Startseite AWS-Region und geben Sie die Namen des zuvor erstellten Amazon S3 S3-Buckets und der DynamoDB-Tabelle an.

terraform { required_version = ">=1.6" backend "s3" { region = "{region}" bucket = "{bucket_name}" key = "terraform.tfstate" dynamodb_table = "{table_name}" encrypt = "true" } }

Wenn Sie möchten, können Sie Ihre eigene Terraform-Backend-Konfiguration verwenden.

DevOps Ingenieur

Passen Sie die Terraform-Anbieterkonfiguration an.

Ersetzen Sie in der providers.tf Datei die Platzhalter durch Ihre eigenen Informationen. Verwenden Sie die AWS Control Tower Heimatregion und geben Sie den ARN der zuvor erstellten kontoübergreifenden IAM-Rolle für den event-source-account Anbieter an.

provider "aws" { region = "{region}" } provider "aws" { alias = "event-source-account" region = "{region}" assume_role { role_arn = "{role_arn}" } }
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Wählen Sie die AWS-Konto.

Wir empfehlen, die Lösung im delegierten Administratorkonto von IAM Identity Center bereitzustellen. Sie können sie jedoch auch im AWS Organizations Verwaltungskonto bereitstellen.

Um sich bei dem ausgewählten Konto in derselben Region wie die IAM Identity Center-Instanz anzumelden, verwenden Sie den AWS CLI. Stellen Sie sicher, dass die von Ihnen verwendete IAM-Rolle berechtigt ist, die Rolle anzunehmen, die in den vorherigen Schritten für den event-source-account Anbieter angegeben wurde. Außerdem muss diese Rolle Zugriff auf die AWS Ressourcen haben, die in der Terraform-Backend-Konfiguration verwendet werden.

AWS-Administrator

Führen Sie Terraform manuell aus.

Um die Konfigurationen zu initialisieren, zu planen und anzuwenden, führen Sie die folgenden Terraform-Befehle in der angegebenen Reihenfolge aus:

  1. terraform init

  2. terraform plan

  3. terraform apply

DevOps Ingenieur

Überprüfen Sie die Bereitstellungsergebnisse.

Überprüfen Sie im delegierten Administratorkonto von IAM Identity Center, ob die aws-ps-pipeline Pipeline erstellt wurde. Vergewissern Sie sich auch, dass eine AWS CodeConnections Verbindung mit dem Status Ausstehend besteht.

AWS DevOps

Beenden Sie die CodeConnections Konfiguration.

Gehen Sie wie folgt vor, um die CodeConnections Konfiguration abzuschließen:

  1. Gehen Sie zu CodeConnections, wählen Sie die Verbindung aus, die erstellt wurde, und wählen Sie Ausstehende Verbindung aktualisieren aus.

  2. Geben Sie Ihre GitHub Anmeldeinformationen ein, installieren Sie eine neue GitHub App oder wählen Sie eine bestehende aus, die Zugriff auf das Berechtigungssatz-Repository hat, und wählen Sie Connect.

Die Pipeline sollte jetzt Zugriff auf das Berechtigungssatz-Repository haben.

Ausführliche Anweisungen finden Sie in der Dokumentation zur Developer Tools-Konsole unter Aktualisieren einer ausstehenden Verbindung.

AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Führen Sie die Pipeline durch AWS Control Tower oder durch AFT-Updates aus.

Nachdem ein Konto mithilfe von oder AFT erstellt AWS Control Tower oder geändert wurde (abhängig von der Art der ausgewählten Lebenszyklusereignisse), wird die Pipeline gestartet.

AWS-Administrator

Führen Sie die Pipeline aus, indem Sie den Code ändern.

Nachdem Sie den Code geändert und an den main Branch übergeben haben, wird die Pipeline gestartet.

AWS DevOps

Führen Sie die Pipeline manuell aus.

Um die Pipeline manuell zu starten, verwenden Sie die Funktion zum Ändern der Version in AWS CodePipeline.

AWS DevOps

Fehlerbehebung

ProblemLösung

Zugriff verweigert

Stellen Sie sicher, dass Sie über die für die Bereitstellung der Lösung erforderlichen Berechtigungen verfügen.

CodeConnections Probleme

  • Vergewissern Sie sich, dass der Verbindungsstatus Verfügbar und nicht Ausstehend lautet.

  • Stellen Sie sicher, dass die CodeConnections Konfiguration mit den GitHub Anmeldeinformationen ordnungsgemäß abgeschlossen wurde. Weitere Informationen finden Sie in der Dokumentation zur Developer Tools-Konsole unter Aktualisieren einer ausstehenden Verbindung.

  • Stellen Sie sicher, dass die GitHub App über die richtigen Zugriffsberechtigungen für das Berechtigungssatz-Repository verfügt.

Probleme bei der Pipeline-Ausführung

  • Überprüfen Sie die CloudWatch Amazon-Protokolle auf Fehler bei der Pipeline-Ausführung.

  • Stellen Sie sicher, dass die IAM Identity Center-Delegierung korrekt eingerichtet ist. Andernfalls kann es beim Lesen von AWS-Konto Metadaten zu Pipeline-Fehlern kommen.

Probleme bei der Bereitstellung von Berechtigungssätzen

  • Stellen Sie sicher, dass die JSON-Syntax in den Vorlagendateien für den Berechtigungssatz korrekt ist.

  • Stellen Sie sicher, dass die von IAM verwalteten Richtlinien, auf die in den Vorlagen verwiesen wird, vorhanden sind.

  • Überprüfen Sie, ob die angegebenen Gruppen und Benutzer in den Zuweisungen in IAM Identity Center vorhanden sind.

Zugehörige Ressourcen

AWS-Service Dokumentation

Sonstige Ressourcen

Zusätzliche Informationen

JSON-Datei mit Beispiel-Berechtigungssatz

Das folgende Beispiel zeigt, wie ein Berechtigungssatz mithilfe der JSON-Datei im Repository konfiguriert wird:

{ "Name": "ps-billing", // Permission set identifier "Comment": "Sample permission set for billing access", // Comment to document the purpose of the permission set "Description": "Billing access in AWS", // Detailed description "SessionDuration": "PT4H", // Session duration = 4 hours (ISO 8601 format) "ManagedPolicies": [ // List of AWS IAM managed policies "arn:aws:iam::aws:policy/job-function/Billing", "arn:aws:iam::aws:policy/job-function/SupportUser", "arn:aws:iam::aws:policy/AWSSupportAccess", "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess" ], "CustomerPolicies": [], // References to IAM policies previously created "CustomPolicy": {}, // Inline IAM policy defined directly in the permission set "PermissionBoundary": { // AWS or customer managed IAM policy to be used as boundary "ManagedPolicy": "", "CustomerPolicy": "" }, "Assignments": [ // Define the assignment rules { "all_accounts": true, // Apply to ALL active AWS accounts in organization "principal": "G_BILLING_USERS", // Group/user name in Identity Center "type": "GROUP", // Can be "GROUP" or "USER" "account_id": [], // List of AWS account ID (empty since all_accounts=true) "account_ou": [], // List of AWS Organizational Unit IDs with target AWS accounts "account_tag": [] // List of tags (key:value) to match AWS Organization accounts tags } ] }

Weitere Informationen finden Sie im JSON-Schema in der Dokumentation zum Modul AWS Permission Sets auf der Terraform-Website.

Tipps

  • Sie können Terraform-Importblöcke verwenden, um einen vorhandenen Berechtigungssatz in die Lösung zu importieren.

  • Sie können AFT verwenden, um die AWS Berechtigungssatz-Pipeline in einem delegierten Konto zu implementieren. Weitere Informationen finden Sie unter AFT-Blueprints.