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 Hinzufügen einer AWS verwalteten Richtlinie für Systems Manager zu EC2 Instanzprofilen mithilfe von Cloud Custodian und AWS CDK
Erstellt von Ali Asfour (AWS) und Aaron Lennon () AWS
Umgebung: PoC oder Pilotprojekt | Technologien: DevOps; DevelopmentAndTesting; Management und Unternehmensführung; Sicherheit, Identität, Compliance; Infrastruktur | Arbeitslast: Open Source |
AWSDienstleistungen: AmazonSNS; Amazon SQS AWS CodeBuild; AWS CodePipeline; AWS Systems Manager; AWS CodeCommit |
Übersicht
Sie können Amazon Elastic Compute Cloud (AmazonEC2) -Instances in AWS Systems Manager integrieren, um betriebliche Aufgaben zu automatisieren und für mehr Transparenz und Kontrolle zu sorgen. Für die Integration mit Systems Manager müssen EC2 Instanzen über einen installierten AWSSystems Manager Agent (SSMAgent) und eine AmazonSSMManagedInstanceCore
AWS Identity and Access Management (IAM) -Richtlinie verfügen, die ihren Instanzprofilen zugeordnet ist.
Wenn Sie jedoch sicherstellen möchten, dass allen EC2 Instanzprofilen die AmazonSSMManagedInstanceCore
Richtlinie angehängt ist, kann es schwierig werden, neue EC2 Instanzen zu aktualisieren, die keine Instanzprofile haben, oder EC2 Instanzen, die ein Instanzprofil haben, aber nicht über die AmazonSSMManagedInstanceCore
Richtlinie verfügen. Es kann auch schwierig sein, diese Richtlinie für mehrere Amazon Web Services (AWS) -Konten und AWS Regionen hinzuzufügen.
Dieses Muster hilft bei der Lösung dieser Herausforderungen, indem es drei Cloud Custodian-Richtlinien
Die erste Cloud Custodian-Richtlinie sucht nach vorhandenen EC2 Instanzen, die über ein Instanzprofil, aber nicht über die
AmazonSSMManagedInstanceCore
Richtlinie verfügen. DieAmazonSSMManagedInstanceCore
Richtlinie wird dann angehängt.Die zweite Cloud Custodian-Richtlinie sucht nach vorhandenen EC2 Instanzen ohne Instanzprofil und fügt ein Standard-Instanzprofil hinzu, dem die
AmazonSSMManagedInstanceCore
Richtlinie angehängt ist.Die dritte Cloud Custodian-Richtlinie erstellt AWSLambda-Funktionen
in Ihren Konten, um die Erstellung von EC2 Instanzen und Instanzprofilen zu überwachen. Dadurch wird sichergestellt, dass die AmazonSSMManagedInstanceCore
Richtlinie automatisch angehängt wird, wenn eine EC2 Instanz erstellt wird.
Dieses Muster verwendet AWS DevOps
Voraussetzungen und Einschränkungen
Voraussetzungen
Zwei oder mehr aktive Konten. AWS Ein Konto ist das Sicherheitskonto und die anderen sind Mitgliedskonten.
Berechtigungen zur Bereitstellung von AWS Ressourcen im Sicherheitskonto. Bei diesem Muster werden Administratorrechte verwendet, Sie sollten jedoch Berechtigungen entsprechend den Anforderungen und Richtlinien Ihrer Organisation gewähren.
Möglichkeit, eine IAM Rolle vom Sicherheitskonto zu Mitgliedskonten zu übernehmen und die erforderlichen IAM Rollen zu erstellen. Weitere Informationen dazu finden Sie in der IAM Dokumentation unter AWSKontenübergreifendes Delegieren des Zugriffs mithilfe von IAM Rollen.
AWSBefehlszeilenschnittstelle (AWSCLI), installiert und konfiguriert. Zu Testzwecken können Sie die Konfiguration AWS CLI mithilfe des
aws configure
Befehls oder mithilfe von Umgebungsvariablen konfigurieren. Wichtig: Dies wird für Produktionsumgebungen nicht empfohlen und wir empfehlen, diesem Konto nur Zugriff mit den geringsten Rechten zu gewähren. Weitere Informationen dazu finden Sie in der IAM Dokumentation unter Gewährung der geringsten Rechte.Die
devops-cdk-cloudcustodian.zip
Datei (angehängt) wurde auf Ihren lokalen Computer heruntergeladen.Vertrautheit mit Python.
Die erforderlichen Tools (Node.js, AWS Cloud Development Kit (AWSCDK) und Git) wurden installiert und konfiguriert. Sie können die
install-prerequisites.sh
Datei in derdevops-cdk-cloudcustodian.zip
Datei verwenden, um diese Tools zu installieren. Stellen Sie sicher, dass Sie diese Datei mit Root-Rechten ausführen.
Einschränkungen
Dieses Muster kann zwar in einer Produktionsumgebung verwendet werden, stellen Sie jedoch sicher, dass alle IAM Rollen und Richtlinien den Anforderungen und Richtlinien Ihres Unternehmens entsprechen.
Versionen von Paketen
Cloud Custodian Version 0.9 oder höher
TypeScript Version 3.9.7 oder höher
Node.js Version 14.15.4 oder höher
npm
Version 7.6.1 oder höherAWSCDKVersion 1.96.0 oder höher
Architektur
Das Diagramm zeigt den folgenden Workflow:
Cloud Custodian-Richtlinien werden in ein AWS CodeCommit Repository im Sicherheitskonto übertragen. Eine Amazon CloudWatch Events-Regel initiiert automatisch die AWS CodePipeline Pipeline.
Die Pipeline ruft den neuesten Code von ab CodeCommit und sendet ihn an den Continuous-Integration-Teil der CI/CD-Pipeline (Continuous Integration and Continuous Delivery), der von bearbeitet wird. AWS CodeBuild
CodeBuild führt die vollständigen DevSecOps Aktionen aus, einschließlich der Überprüfung der Richtliniensyntax für die Cloud Custodian-Richtlinien, und führt diese Richtlinien im
--dryrun
Modus aus, um zu überprüfen, welche Ressourcen identifiziert wurden.Wenn keine Fehler vorliegen, fordert die nächste Aufgabe einen Administrator auf, die Änderungen zu überprüfen und die Bereitstellung in den Mitgliedskonten zu genehmigen.
Technologie-Stack
AWS CDK
CodeBuild
CodeCommit
CodePipeline
IAM
Cloud Custodian
Automatisierung und Skalierung
Das AWS CDK Pipeline-Modul stellt eine CI/CD-Pipeline bereit, CodePipeline mit der neben der Bereitstellung von Ressourcen mit CodeBuild Stacks auch die Erstellung und das Testen von AWS Quellcode orchestriert werden. AWS CloudFormation Sie können dieses Muster für alle Mitgliedskonten und Regionen in Ihrer Organisation verwenden. Sie können den Roles creation
Stack auch erweitern, um andere IAM Rollen in Ihren Mitgliedskonten bereitzustellen.
Tools
AWSCloud Development Kit (AWSCDK) ist ein Softwareentwicklungsframework, mit dem Cloud-Infrastruktur im Code definiert und bereitgestellt werden kann. AWS CloudFormation
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.
AWS CodeBuildist ein vollständig verwalteter Build-Service in der Cloud.
AWS CodeCommitist ein Dienst zur Versionskontrolle, mit dem Sie Assets privat speichern und verwalten können.
AWS CodePipelineist ein Dienst zur kontinuierlichen Bereitstellung, mit dem Sie die zur Veröffentlichung Ihrer Software erforderlichen Schritte modellieren, visualisieren und automatisieren können.
AWSIdentity and Access Management ist ein Webservice, mit dem Sie den Zugriff auf AWS Ressourcen sicher kontrollieren können.
Cloud Custodian
ist ein Tool, das Dutzende von Tools und Skripten, die die meisten Unternehmen für die Verwaltung ihrer Public-Cloud-Konten verwenden, in einem Open-Source-Tool vereint. Node.js
ist eine JavaScript Runtime, die auf der V8-Engine von Google Chrome basiert. JavaScript
Code
Eine detaillierte Liste der Module, Kontofunktionen, Dateien und Bereitstellungsbefehle, die in diesem Muster verwendet werden, finden Sie in der README
Datei in der devops-cdk-cloudcustodian.zip
Datei (angehängt).
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richten Sie das CodeCommit Repository ein. |
Weitere Informationen dazu finden Sie in der AWS CodeCommit Dokumentation unter Erstellen eines CodeCommit Repositorys. | Developer |
Installieren Sie die erforderlichen Tools. | Verwenden Sie die Weitere Informationen dazu finden Sie im Abschnitt Voraussetzungen unter Erste Schritte mit dem AWS CDK in der AWS CDK Dokumentation. | Developer |
Installieren Sie die erforderlichen AWS CDK Pakete. |
Die folgenden Pakete werden von der Datei benötigt AWS CDK und sind in der
| Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Aktualisieren Sie die erforderlichen Variablen. | Öffnen Sie die
| Developer |
Aktualisieren Sie die Datei account.yml mit den Informationen zum Mitgliedskonto. | Um das c7n-org Cloud Custodian-Tool
| Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Boostrap das Sicherheitskonto. | Führen Sie den Bootstrap
| Developer |
Option 1 — Automatisches Bootstrapping der Mitgliedskonten. | Wenn die Bei Bedarf können Sie Neue Konten, die der | Developer |
Option 2 — Manuelles Bootstrapping der Mitgliedskonten. | Wir empfehlen zwar nicht, diesen Ansatz zu verwenden, Sie können jedoch den Wert
Wichtig: Stellen Sie sicher, dass Sie die Sie können auch andere Methoden verwenden, um die Mitgliedskonten zu booten, z. B. mit. AWS CloudFormation Weitere Informationen dazu finden Sie in der Dokumentation unter Bootstrapping. AWS CDK | Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie die IAM Rollen in den Mitgliedskonten. | Führen Sie den folgenden Befehl aus, um den
| Developer |
Stellen Sie den Cloud Custodian-Pipeline-Stack bereit. | Führen Sie den folgenden Befehl aus, um die Cloud
| Developer |