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 IAM Identity Center-Berechtigungssätze mithilfe von AWS als Code verwalten CodePipeline
Erstellt von Andre Cavalcante (AWS) und Claison Amorim (AWS)
Umgebung: Produktion | Technologien: Sicherheit, Identität, Einhaltung von Vorschriften; DevOps | |
AWS-Dienste: AWS CodeBuild; AWS CodeCommit; AWS CodePipeline; AWS IAM-Identitätszentrum |
Übersicht
Mit AWS IAM Identity Center (Nachfolger von AWS Single Sign-On) können Sie den Single Sign-On (SSO) -Zugriff auf all Ihre AWS-Konten und -Anwendungen zentral verwalten. Sie können Benutzeridentitäten in IAM Identity Center erstellen und verwalten, oder Sie können eine Verbindung zu einer vorhandenen Identitätsquelle herstellen, z. B. einer Microsoft Active Directory-Domäne oder einem externen Identitätsanbieter (IdP). IAM Identity Center bietet eine einheitliche Administrationserfahrung, mit der Sie mithilfe von Berechtigungssätzen einen detaillierten Zugriff auf Ihre AWS-Umgebung definieren, anpassen und zuweisen können. Berechtigungssätze gelten für die verbundenen Benutzer und Gruppen aus Ihrem AWS IAM Identity Center-Identitätsspeicher oder Ihrem externen IdP.
Dieses Muster hilft Ihnen, IAM Identity Center-Berechtigungssätze als Code in Ihrer Umgebung mit mehreren Konten zu verwalten, die als Organisation in AWS Organizations verwaltet wird. Mit diesem Muster können Sie Folgendes erreichen:
Berechtigungssätze erstellen, löschen und aktualisieren
Erstellen, aktualisieren oder löschen Sie Berechtigungssatz-Zuweisungen für AWS-Zielkonten, Organisationseinheiten (OUs) oder Ihren Organisationsstamm.
Um IAM Identity Center-Berechtigungen und -Zuweisungen als Code zu verwalten, stellt diese Lösung eine CI/CD-Pipeline (Continuous Integration and Continuous Delivery) bereit, die AWS CodeCommit, AWS und AWS verwendet. CodeBuild CodePipeline Sie verwalten die Berechtigungssätze und Zuweisungen in JSON-Vorlagen, die Sie im Repository speichern. CodeCommit Wenn EventBridge Amazon-Regeln eine Änderung am Repository oder Änderungen an den Konten in der Ziel-OU erkennen, wird eine AWS Lambda Lambda-Funktion gestartet. Die Lambda-Funktion initiiert die CI/CD-Pipeline, die die Berechtigungssätze und Zuweisungen in IAM Identity Center aktualisiert.
Voraussetzungen und Einschränkungen
Voraussetzungen
Eine Umgebung mit mehreren Konten, die als Organisation in AWS Organizations verwaltet wird. Weitere Informationen finden Sie unter Organisation erstellen.
IAM Identity Center, aktiviert und konfiguriert mit einer Identitätsquelle. Weitere Informationen finden Sie unter Erste Schritte in der IAM Identity Center-Dokumentation.
Ein Mitgliedskonto, das als delegierter Administrator für IAM Identity Center registriert ist. Anweisungen finden Sie in der IAM Identity Center-Dokumentation unter Ein Mitgliedskonto registrieren.
Berechtigungen zur Bereitstellung von CloudFormation AWS-Stacks im delegierten IAM Identity Center-Administratorkonto und im Verwaltungskonto der Organisation. Weitere Informationen finden Sie in der Dokumentation unter Zugriffskontrolle. CloudFormation
Ein Amazon Simple Storage Service (Amazon S3) -Bucket im Identity Center hat den Administrator beauftragt, den Artefaktcode hochzuladen. Anweisungen finden Sie unter Bucket erstellen.
Die Konto-ID des Verwaltungskontos der Organisation. Anweisungen finden Sie unter Finden Ihrer AWS-Konto-ID.
Einschränkungen
Dieses Muster kann nicht verwendet werden, um Berechtigungssätze für Umgebungen mit einem Konto oder für Konten, die nicht als Organisation in AWS Organizations verwaltet werden, zu verwalten oder zuzuweisen.
Namen von Berechtigungssätzen, Zuweisungs-IDs und IAM Identity Center-Prinzipaltypen und -IDs können nach der Bereitstellung nicht geändert werden.
Dieses Muster hilft Ihnen bei der Erstellung und Verwaltung benutzerdefinierter Berechtigungen. Sie können dieses Muster nicht verwenden, um vordefinierte Berechtigungen zu verwalten oder zuzuweisen.
Dieses Muster kann nicht verwendet werden, um einen Berechtigungssatz für das Verwaltungskonto der Organisation zu verwalten.
Architektur
Technologie-Stack
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
AWS Identity Center
AWS Lambda
AWS Organizations
Zielarchitektur
![Verwendung der CI/CD-Pipeline und des CodeCommit AWS-Repos zur Verwaltung von Berechtigungssätzen im AWS IAM Identity Center.](images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/3d671cf3-329b-4292-aa2d-1027886074f4.png)
Das Diagramm zeigt den folgenden Workflow:
Ein Benutzer nimmt eine der folgenden Änderungen vor:
Übergibt eine oder mehrere Änderungen am Repository CodeCommit
Ändert die Konten in der Organisationseinheit (OU) in AWS Organizations
Wenn der Benutzer eine Änderung am CodeCommit Repository festgeschrieben hat, erkennt die
CodeChange
EventBridge Regel die Änderung und startet eine Lambda-Funktion im delegierten Administratorkonto von IAM Identity Center. Die Regel reagiert nicht auf Änderungen an bestimmten Dateien im Repository, z. B. an der Datei.README.md
Wenn der Benutzer die Konten in der Organisationseinheit geändert hat, erkennt die
MoveAccount
EventBridge Regel die Änderung und startet eine Lambda-Funktion im Verwaltungskonto der Organisation.Die initiierte Lambda-Funktion startet die CI/CD-Pipeline in. CodePipeline
CodePipeline startet das Projekt.
CodebuildTemplateValidation
CodeBuildDas
CodebuildTemplateValidation
CodeBuild Projekt verwendet ein Python-Skript im CodeCommit Repository, um die Berechtigungssatz-Vorlagen zu validieren. CodeBuild validiert Folgendes:Die Namen der Berechtigungssätze sind eindeutig.
Die IDs (
Sid
) der Zuweisungsanweisung sind eindeutig.Richtliniendefinitionen sind im
CustomPolicy
Parameter enthalten und gültig. (Diese Validierung verwendet AWS Identity and Access Management Access Analyzer.)Die Amazon-Ressourcennamen (ARNs) der verwalteten Richtlinien sind gültig.
Das
CodebuildPermissionSet
CodeBuild Projekt verwendet das AWS SDK for Python (Boto3), um die Berechtigungssätze in IAM Identity Center zu löschen, zu erstellen oder zu aktualisieren. Nur Berechtigungssätze mit demSSOPipeline:true
Tag sind betroffen. Alle Berechtigungssätze, die über diese Pipeline verwaltet werden, haben dieses Tag.Das
CodebuildAssignments
CodeBuild Projekt verwendet Terraform, um die Zuweisungen im IAM Identity Center zu löschen, zu erstellen oder zu aktualisieren. Die Terraform-Backend-Statusdateien werden in einem S3-Bucket im selben Konto gespeichert.CodeBuild nimmt eine
lookup
IAM-Rolle im Verwaltungskonto der Organisation an. Es ruft die Organisations- und Identitystore-APIsauf, um die Ressourcen aufzulisten, die für die Erteilung oder den Widerruf von Berechtigungen erforderlich sind. CodeBuild aktualisiert die Berechtigungssätze und Zuweisungen in IAM Identity Center.
Automatisierung und Skalierung
Da alle neuen Konten in einer Umgebung mit mehreren Konten in eine bestimmte Organisationseinheit in AWS Organizations verschoben werden, wird diese Lösung automatisch ausgeführt und gewährt allen Konten, die Sie in den Zuweisungsvorlagen angeben, die erforderlichen Berechtigungssätze. Es sind keine zusätzlichen Automatisierungen oder Skalierungsmaßnahmen erforderlich.
In großen Umgebungen kann die Anzahl der API-Anfragen an IAM Identity Center dazu führen, dass diese Lösung langsamer ausgeführt wird. Terraform und Boto3 verwalten die Drosselung automatisch, um Leistungseinbußen zu minimieren.
Tools
AWS-Services
AWS CloudFormation hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten.
AWS CodeBuild ist 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 CodeCommit ist ein Versionskontrollservice, mit dem Sie Git-Repositorys privat speichern und verwalten können, ohne Ihr eigenes Quellcodeverwaltungssystem verwalten zu müssen.
AWS CodePipeline hilft 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.
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.
Mit AWS IAM Identity Center können Sie den Single Sign-On (SSO) -Zugriff auf all Ihre AWS-Konten und Cloud-Anwendungen zentral verwalten.
AWS Organizations ist ein Kontoverwaltungsservice, mit dem Sie mehrere AWS-Konten in einer Organisation konsolidieren können, die Sie erstellen und zentral verwalten.
Das AWS-SDK für Python (Boto3)
ist ein Software-Entwicklungskit, mit dem Sie Ihre Python-Anwendung, -Bibliothek oder Ihr Skript in AWS-Services integrieren können. Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
Code-Repository
Der Code für dieses Muster ist im Repository aws-iam-identity-center-pipeline
Bewährte Methoden
Bevor Sie mit der Änderung des Berechtigungssatzes und der Zuweisungsvorlagen beginnen, empfehlen wir Ihnen, Berechtigungssätze für Ihre Organisation zu planen. Überlegen Sie, wie die Berechtigungen aussehen sollen, für welche Konten oder Organisationseinheiten der Berechtigungssatz gelten soll und für welche IAM Identity Center-Prinzipale (Benutzer oder Gruppen) der Berechtigungssatz gelten soll. Namen von Berechtigungssätzen, Zuordnungs-IDs und IAM Identity Center-Prinzipaltypen und -IDs können nach der Bereitstellung nicht geändert werden.
Halten Sie sich an das Prinzip der geringsten Rechte und gewähren Sie nur 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
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Repository | Geben Sie in einer Bash-Shell den folgenden Befehl ein. Dadurch wird das aws-iam-identity-center-pipeline
| DevOps Ingenieur |
Definieren Sie die Berechtigungssätze. |
| DevOps Ingenieur |
Definieren Sie die Aufgaben. |
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Laden Sie die Dateien in einen S3-Bucket hoch. |
| DevOps Ingenieur |
Stellen Sie Ressourcen im delegierten Administratorkonto von IAM Identity Center bereit. |
| DevOps Ingenieur |
Stellen Sie Ressourcen im AWS-Organisationsverwaltungskonto bereit. |
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Aktualisieren Sie die Berechtigungssätze und Zuweisungen. | Wenn die Wenn Sie die bereitgestellten Berechtigungssätze und Zuweisungen ändern möchten, aktualisieren Sie die JSON-Dateien und übertragen Sie sie dann in das CodeCommit Repository im delegierten Administratorkonto von IAM Identity Center. Anweisungen finden Sie in der Dokumentation unter Einen Commit erstellen. CodeCommit Beachten Sie Folgendes, wenn Sie die CI/CD-Pipeline verwenden, um zuvor bereitgestellte Berechtigungssätze und Zuordnungen zu verwalten:
| DevOps Ingenieur |
Fehlerbehebung
Problem | Lösung |
---|---|
Fehler aufgrund einer Zugriffsverweigerung | Vergewissern Sie sich, dass Sie über die erforderlichen Berechtigungen verfügen, um die CloudFormation Vorlagen und die darin definierten Ressourcen bereitzustellen. Weitere Informationen finden Sie in der CloudFormation Dokumentation unter Zugriffskontrolle. |
Pipeline-Fehler in der Validierungsphase | Dieser Fehler tritt auf, wenn der Berechtigungssatz oder die Zuweisungsvorlagen Fehler enthalten.
|
Zugehörige Ressourcen
Berechtigungssätze (IAM Identity Center-Dokumentation)