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.
Automatisches Überprüfen und Bereitstellen von IAM Richtlinien und Rollen in einem AWS Konto mithilfe CodePipeline von IAM Access Analyzer und AWS CloudFormation Makros
Erstellt von Helton Ribeiro () und Guilherme Simoes () AWS AWS
Übersicht
Hinweis: AWS CodeCommit ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Weitere Informationen
Dieses Muster beschreibt die Schritte und bietet Code zum Erstellen einer Bereitstellungspipeline, die es Ihren Entwicklungsteams ermöglicht, Richtlinien und Rollen für AWS Identity and Access Management (IAM) in Ihren Amazon Web Services (AWS) -Konten zu erstellen. Dieser Ansatz hilft Ihrem Unternehmen, den Aufwand für Ihre operativen Teams zu reduzieren und den Bereitstellungsprozess zu beschleunigen. Es hilft Ihren Entwicklern auch dabei, IAM Rollen und Richtlinien zu erstellen, die mit Ihren bestehenden Governance- und Sicherheitskontrollen kompatibel sind.
Der Ansatz dieses Musters verwendet AWSIdentity and Access Management Access Analyzer, um die IAM Richtlinien zu überprüfen, die Sie IAM Rollen zuordnen möchten, und verwendet AWS CloudFormation sie zur Bereitstellung der IAM Rollen. Anstatt die AWS CloudFormation Vorlagendatei jedoch direkt zu bearbeiten, erstellt Ihr Entwicklungsteam IAM Richtlinien und Rollen JSON im -Format. Ein AWS CloudFormation Makro wandelt diese JSON -formatierten Richtliniendateien vor Beginn der Bereitstellung in AWS CloudFormation IAM Ressourcentypen um.
Die Bereitstellungspipeline (RolesPipeline
) besteht aus Quell-, Überprüfungs- und Bereitstellungsphasen. In der Quellphase überträgt Ihr Entwicklungsteam die JSON Dateien, die die Definition der IAM Rollen und Richtlinien enthalten, in ein AWS CodeCommit Repository. AWS CodeBuild führt dann ein Skript aus, um diese Dateien zu validieren, und kopiert sie in einen Amazon Simple Storage Service (Amazon S3) -Bucket. Da Ihre Entwicklungsteams keinen direkten Zugriff auf die in einem separaten S3-Bucket gespeicherte AWS CloudFormation Vorlagendatei haben, müssen sie den Prozess zur JSON Dateierstellung und -validierung befolgen.
Schließlich AWS CodeDeploy verwendet es während der Bereitstellungsphase einen AWS CloudFormation Stack, um die IAM Richtlinien und Rollen in einem Konto zu aktualisieren oder zu löschen.
Wichtig
Der Workflow dieses Musters ist ein Machbarkeitsnachweis (POC), und wir empfehlen, ihn nur in einer Testumgebung zu verwenden. Wenn Sie den Ansatz dieses Musters in einer Produktionsumgebung verwenden möchten, finden Sie IAMin der IAM Dokumentation den Abschnitt Bewährte Sicherheitsmethoden und nehmen Sie die erforderlichen Änderungen an Ihren IAM Rollen und AWS Diensten vor.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto.
Ein neuer oder vorhandener S3-Bucket für die
RolesPipeline
Pipeline. Stellen Sie sicher, dass die von Ihnen verwendeten Zugangsdaten berechtigt sind, Objekte in diesen Bucket hochzuladen.AWSBefehlszeilenschnittstelle (AWSCLI), installiert und konfiguriert. Weitere Informationen dazu finden Sie AWS CLI in der AWS CLI Dokumentation unter Installation, Aktualisierung und Deinstallation von.
AWSServerloses Anwendungsmodell (AWSSAM)CLI, installiert und konfiguriert. Weitere Informationen dazu finden Sie AWS SAM CLI in der AWS SAM Dokumentation unter Installation von.
Python 3, auf Ihrem lokalen Computer installiert. Weitere Informationen dazu finden Sie in der Python-Dokumentation
. Ein Git-Client, installiert und konfiguriert.
Das GitHub
IAM roles pipeline
Repository, auf Ihren lokalen Computer geklont.JSONBestehende IAM Richtlinien und Rollen im -Format. Weitere Informationen dazu finden Sie in der ReadMe
Datei im IAM roles pipeline
Github-Repository.Ihr Entwicklerteam darf nicht berechtigt sein, die AWS CodePipeline CodeBuild, und CodeDeploy Ressourcen dieser Lösung zu bearbeiten.
Einschränkungen
Der Workflow dieses Musters ist ein Machbarkeitsnachweis (POC), und wir empfehlen, ihn nur in einer Testumgebung zu verwenden. Wenn Sie den Ansatz dieses Musters in einer Produktionsumgebung verwenden möchten, finden Sie IAMin der IAM Dokumentation den Abschnitt Bewährte Sicherheitsmethoden und nehmen Sie die erforderlichen Änderungen an Ihren IAM Rollen und AWS Diensten vor.
Architektur
Das folgende Diagramm zeigt, wie Sie IAM Rollen und Richtlinien mithilfe CodePipeline von IAM Access Analyzer und AWS CloudFormation Makros automatisch validieren und für ein Konto bereitstellen.

Das Diagramm zeigt den folgenden Workflow:
Ein Entwickler schreibt JSON Dateien, die die Definitionen für die IAM Richtlinien und Rollen enthalten. Der Entwickler überträgt den Code in ein CodeCommit Repository und initiiert CodePipeline dann die
RolesPipeline
Pipeline.CodeBuild validiert die JSON Dateien mithilfe IAM von Access Analyzer. Wenn sicherheits- oder fehlerbezogene Ergebnisse vorliegen, wird der Bereitstellungsprozess gestoppt.
Wenn keine sicherheits- oder fehlerbezogenen Ergebnisse vorliegen, werden die JSON Dateien an den S3-Bucket gesendet.
RolesBucket
Ein als AWS Lambda-Funktion implementiertes AWS CloudFormation Makro liest dann die JSON Dateien aus dem
RolesBucket
Bucket und wandelt sie in Ressourcentypen AWS CloudFormation IAM um.Ein vordefinierter AWS CloudFormation Stack installiert, aktualisiert oder löscht die IAM Richtlinien und Rollen im Konto.
Automatisierung und Skalierung
AWS CloudFormation Vorlagen, die dieses Muster automatisch bereitstellen, werden im GitHub IAMRollen-Pipeline-Repository
Tools
AWSCommand Line Interface (AWSCLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS Diensten interagieren können.
AWSMit Identity and Access Management (IAM) können Sie den Zugriff auf Ihre AWS Ressourcen sicher verwalten, indem Sie kontrollieren, wer authentifiziert und autorisiert ist, diese zu verwenden.
IAMAccess Analyzer hilft Ihnen dabei, die Ressourcen in Ihrer Organisation und Konten, wie z. B. S3-Buckets oder IAM Rollen, zu identifizieren, die mit einer externen Entität gemeinsam genutzt werden. Dies hilft Ihnen, unbeabsichtigten Zugriff auf Ihre Ressourcen und Daten zu identifizieren.
AWSServerless Application Model (AWSSAM) ist ein Open-Source-Framework, mit dem Sie serverlose Anwendungen in der Cloud erstellen können. AWS
Code
Der Quellcode und die Vorlagen für dieses Muster sind im GitHub IAMRollen-Pipeline-Repository
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Beispiel-Repository. | Klonen Sie das GitHub IAMRollen-Pipeline-Repository | App-Entwickler, Allgemein AWS |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie die Pipeline bereit. |
| App-Entwickler, Allgemein AWS |
Klonen Sie das Repository der Pipeline. |
| App-Entwickler, Allgemein AWS |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Testen Sie die RolesPipeline Pipeline mit gültigen IAM Richtlinien und Rollen. |
| App-Entwickler, Allgemein AWS |
Testen Sie die RolesPipeline Pipeline mit ungültigen IAM Richtlinien und Rollen. |
| App-Entwickler, Allgemein AWS |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Bereite dich auf die Säuberung vor. | Leeren Sie die S3-Buckets und führen Sie dann den | App-Entwickler, Allgemein AWS |
Lösche den RolesStack Stapel. |
| App-Entwickler, Allgemein AWS |
Lösche den RolesPipeline Stapel. | Um den | App-Entwickler, Allgemein AWS |
Zugehörige Ressourcen
IAMAccess Analyzer — Überprüfung von Richtlinien
(AWSNews-Blog) Verwenden von AWS CloudFormation Makros zur benutzerdefinierten Verarbeitung von Vorlagen (AWS CloudFormation Dokumentation)
Lambda-Funktionen mit Python erstellen (AWSLambda-Dokumentation)