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.
Zentralisieren Sie die Verwaltung von IAM Zugriffsschlüsseln in AWS Organizations mithilfe von Terraform
Erstellt von Aarti Rajput (AWS), Chintamani Aphale (), T.V.R.L.Phani Kumar Dadi (AWS), Pradip kumar Pandey (), Mayuri Shinde (AWS) und Pratap Kumar Nanda () AWS AWS AWS
Übersicht
AWS CodeCommit Hinweis: ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Weitere Informationen
Die Durchsetzung von Sicherheitsregeln für Schlüssel und Passwörter ist eine wichtige Aufgabe für jedes Unternehmen. Eine wichtige Regel besteht darin, die Schlüssel für AWS Identity and Access Management (IAM) in regelmäßigen Abständen zu rotieren, um die Sicherheit zu gewährleisten. AWSZugriffsschlüssel werden in der Regel lokal erstellt und konfiguriert, wann immer Teams über die AWS AWS Befehlszeilenschnittstelle (AWSCLI) oder externe Anwendungen darauf zugreifen möchtenAWS. Um eine hohe Sicherheit im gesamten Unternehmen aufrechtzuerhalten, müssen alte Sicherheitsschlüssel geändert oder gelöscht werden, nachdem die Anforderung erfüllt wurde, oder in regelmäßigen Abständen. Die Verwaltung von Schlüsselrotationen für mehrere Konten in einem Unternehmen ist zeitaufwändig und mühsam. Dieses Muster hilft Ihnen, den Rotationsprozess mithilfe von Account Factory für Terraform (AFT) und AWS Dienste zu automatisieren.
Das Muster bietet die folgenden Vorteile:
Verwaltet Ihren Zugriffsschlüssel IDs und Ihre geheimen Zugangsschlüssel für alle Konten in Ihrer Organisation von einem zentralen Standort aus.
Die Umgebungsvariablen
AWS_ACCESS_KEY_ID
und dieAWS_SECRET_ACCESS_KEY
Umgebungsvariablen werden automatisch rotiert.Erzwingt eine Verlängerung, wenn Benutzeranmeldedaten kompromittiert werden.
Das Muster verwendet Terraform, um AWS Lambda-Funktionen, EventBridge Amazon-Regeln und Rollen bereitzustellen. IAM Eine EventBridge Regel wird in regelmäßigen Abständen ausgeführt und ruft eine Lambda-Funktion auf, die alle Benutzerzugriffsschlüssel auflistet, je nachdem, wann sie erstellt wurden. Zusätzliche Lambda-Funktionen erstellen eine neue Zugriffsschlüssel-ID und einen neuen geheimen Zugriffsschlüssel, wenn der vorherige Schlüssel älter ist als der von Ihnen definierte Rotationszeitraum (z. B. 45 Tage), und benachrichtigen einen Sicherheitsadministrator mithilfe von Amazon Simple Notification Service (AmazonSNS) und Amazon Simple Email Service (AmazonSES). Secrets werden in AWS Secrets Manager für diesen Benutzer erstellt, der alte geheime Zugriffsschlüssel wird in Secrets Manager gespeichert und die Berechtigungen für den Zugriff auf den alten Schlüssel werden konfiguriert. Um sicherzustellen, dass der alte Zugriffsschlüssel nicht mehr verwendet wird, wird er nach einer inaktiven Zeit deaktiviert (z. B. 60 Tage, was in unserem Beispiel 15 Tage nach der Rotation der Schlüssel wäre). Nach einer inaktiven Pufferzeit (z. B. 90 Tage oder 45 Tage nach der Rotation der Schlüssel in unserem Beispiel) werden die alten Zugriffsschlüssel aus AWS Secrets Manager gelöscht. Eine detaillierte Architektur und ein detaillierter Arbeitsablauf finden Sie im Abschnitt Architektur.
Voraussetzungen und Einschränkungen
Eine landing zone für Ihr Unternehmen, die mithilfe von AWSControl Tower (Version 3.1 oder höher) erstellt wurde
Account Factory for Terraform (AFT)
, konfiguriert mit drei Konten: Das Organisationsverwaltungskonto
verwaltet die gesamte Organisation von einem zentralen Standort aus. AFTDas Verwaltungskonto
hostet die Terraform-Pipeline und stellt die Infrastruktur im Bereitstellungskonto bereit. Das Bereitstellungskonto
stellt diese Komplettlösung bereit und verwaltet die IAM Schlüssel von einem zentralen Ort aus.
Terraform Version 0.15.0 oder höher für die Bereitstellung der Infrastruktur im Bereitstellungskonto.
Eine E-Mail-Adresse, die in Amazon Simple Email Service (AmazonSES)
konfiguriert ist. (Empfohlen) Um die Sicherheit zu erhöhen, stellen Sie diese Lösung in einem privaten Subnetz (Bereitstellungskonto) in einer virtuellen privaten Cloud (VPC)
bereit. Sie können die Details des VPC UND-Subnetzes angeben, wenn Sie die Variablen anpassen (siehe Anpassen der Parameter für die Code-Pipeline im Abschnitt Epics).
Architektur
AFTRepositorien
Dieses Muster verwendet Account Factory for Terraform (AFT), um alle erforderlichen AWS Ressourcen zu erstellen, und die Code-Pipeline, um die Ressourcen in einem Bereitstellungskonto bereitzustellen. Die Code-Pipeline läuft in zwei Repositorys:
Die globale Anpassung enthält Terraform-Code, der für alle registrierten Konten ausgeführt wird. AFT
Kontoanpassungen enthalten Terraform-Code, der im Bereitstellungskonto ausgeführt wird.
Einzelheiten zur Ressource
AWS CodePipeline Jobs erstellen die folgenden Ressourcen im Bereitstellungskonto:
AWS EventBridge Regel und konfigurierte Regel
account-inventory
Lambda-FunktionIAM-access-key-rotation
Lambda-FunktionNotification
Lambda-FunktionAmazon Simple Storage Service (Amazon S3) -Bucket, der eine E-Mail-Vorlage enthält
Erforderliche IAM Richtlinie
Architektur
Das Diagramm veranschaulicht folgende Vorgänge:

Eine EventBridge Regel ruft die
account-inventory
Lambda-Funktion alle 24 Stunden auf.Die
account-inventory
Lambda-Funktion fragt AWS Organizations nach einer Liste aller AWS KontenIDs, Kontonamen und Konto-E-Mails ab.Die
account-inventory
Lambda-Funktion initiiert eineIAM-access-key-auto-rotation
Lambda-Funktion für jedes AWS Konto und übergibt die Metadaten zur weiteren Verarbeitung an dieses Konto.Die
IAM-access-key-auto-rotation
Lambda-Funktion verwendet eine angenommene IAM Rolle, um auf das AWS Konto zuzugreifen. Das Lambda-Skript führt eine Prüfung aller Benutzer und ihrer IAM Zugriffsschlüssel im Konto durch.Der Schwellenwert für die IAM Schlüsselrotation (Rotationsperiode) wird als Umgebungsvariable konfiguriert, wenn die
IAM-access-key-auto-rotation
Lambda-Funktion bereitgestellt wird. Wenn die Rotationsperiode geändert wird, wird dieIAM-access-key-auto-rotation
Lambda-Funktion mit einer aktualisierten Umgebungsvariablen erneut bereitgestellt. Sie können Parameter konfigurieren, um den Rotationsperiode, den inaktiven Zeitraum für alte Schlüssel und den inaktiven Puffer festzulegen, nach dessen Ablauf alte Schlüssel gelöscht werden (siehe Anpassen der Parameter für die Code-Pipeline im Abschnitt Epics).Die
IAM-access-key-auto-rotation
Lambda-Funktion validiert das Alter des Zugriffsschlüssels anhand seiner Konfiguration. Wenn das Alter des IAM Zugriffsschlüssels den von Ihnen definierten Rotationszeitraum nicht überschritten hat, ergreift die Lambda-Funktion keine weiteren Maßnahmen.Wenn das Alter des IAM Zugriffsschlüssels den von Ihnen definierten Rotationszeitraum überschritten hat, erstellt die
IAM-access-key-auto-rotation
Lambda-Funktion einen neuen Schlüssel und rotiert den vorhandenen Schlüssel.Die Lambda-Funktion speichert den alten Schlüssel in Secrets Manager und beschränkt die Berechtigungen auf den Benutzer, dessen Zugriffsschlüssel von den Sicherheitsstandards abgewichen sind. Die Lambda-Funktion erstellt außerdem eine ressourcenbasierte Richtlinie, die es nur dem angegebenen IAM Prinzipal ermöglicht, auf das Geheimnis zuzugreifen und es abzurufen.
Die
IAM-access-key-rotation
Lambda-Funktion ruft dieNotification
Lambda-Funktion auf.Die
Notification
Lambda-Funktion fragt den S3-Bucket nach einer E-Mail-Vorlage ab und generiert dynamisch E-Mail-Nachrichten mit den entsprechenden Aktivitätsmetadaten.Die
Notification
Lambda-Funktion fordert Amazon auf, SES weitere Maßnahmen zu ergreifen.Amazon SES sendet eine E-Mail mit den entsprechenden Informationen an die E-Mail-Adresse des Kontoinhabers.
Tools
AWS-Services
AWSIdentity 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. Für dieses Muster sind IAM Rollen und Berechtigungen erforderlich.
AWSLambda ist ein Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
AWSSecrets Manager hilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Kennwörtern, durch einen API Aufruf von Secrets Manager zu ersetzen, um das Geheimnis programmgesteuert abzurufen.
Amazon Simple Email Service (AmazonSES) unterstützt Sie beim Senden und Empfangen von E-Mails mithilfe Ihrer eigenen E-Mail-Adressen und Domains.
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
Die Anweisungen und der Code für dieses Muster sind im Repository zur Rotation von GitHub IAM Zugriffsschlüsseln
Bewährte Methoden
Weitere Informationen finden Sie in der IAM Dokumentation unter Bewährte Sicherheitsmethoden. IAM
Informationen zur Schlüsselrotation finden Sie in der IAM Dokumentation in den Richtlinien für die Aktualisierung von Zugriffsschlüsseln.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Repository |
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Konfigurieren Sie das Bootstrapping-Konto. | Als Teil des AFTBootstrapping-Vorgangs
| DevOps Ingenieur |
Konfigurieren Sie globale Anpassungen. | Als Teil der AFTOrdnereinrichtung
| DevOps Ingenieur |
Konfigurieren Sie Kontoanpassungen. | Im Rahmen der AFTOrdnereinrichtung
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Passen Sie die Pipeline-Parameter für Nicht-Terraform-Codes für alle Konten an. | Erstellen Sie eine Datei mit dem Namen | DevOps Ingenieur |
Passen Sie die Code-Pipeline-Parameter für das Bereitstellungskonto an. | Erstellen Sie eine Datei mit dem Namen Geben Sie Werte für Parameter an, die auf den Anforderungen Ihrer Organisation basieren, einschließlich der folgenden Werte (Standardwerte finden Sie in der Datei im Github-Repository
| DevOps — Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Validieren Sie die Lösung. |
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Passen Sie das Datum der E-Mail-Benachrichtigung an. | Wenn Sie an einem bestimmten Tag, bevor Sie den Zugriffsschlüssel deaktivieren, E-Mail-Benachrichtigungen senden möchten, können Sie die
| DevOps Ingenieur |
Fehlerbehebung
Problem | Lösung |
---|---|
Der | Wenn dieses Problem auftritt, müssen Sie die Berechtigungen überprüfen:
|
Zugehörige Ressourcen
Von Terraform empfohlene Vorgehensweisen
(Terraform-Dokumentation) Bewährte Sicherheitsverfahren in (Dokumentation) IAM IAM
Bewährte Verfahren für die Schlüsselrotation (IAMDokumentation)