AWS CDK Bootstrapping anpassen - AWS Cloud Development Kit (AWS CDK) v2

Dies ist der AWS CDK v2-Entwicklerhandbuch. Die ältere CDK Version 1 wurde am 1. Juni 2022 in die Wartung aufgenommen und der Support wurde am 1. Juni 2023 eingestellt.

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 CDK Bootstrapping anpassen

Sie können das AWS Cloud Development Kit (AWS CDK) Bootstrapping mithilfe der AWS CDK Befehlszeilenschnittstelle (AWS CDK CLI) oder durch Ändern und Bereitstellen der AWS CloudFormation Bootstrap-Vorlage anpassen.

Eine Einführung in Bootstrapping finden Sie unter. AWS CDK Bootstrapping

Verwenden Sie den, CDK CLI um Bootstrapping anzupassen

Im Folgenden finden Sie einige Beispiele dafür, wie Sie Bootstrapping mithilfe von anpassen können. CDK CLI Eine Liste aller cdk bootstrap Optionen finden Sie unter. cdk bootstrap

Den Namen des Amazon S3 S3-Buckets überschreiben

Verwenden Sie die --bootstrap-bucket-name Option, um den standardmäßigen Amazon S3 S3-Bucket-Namen zu überschreiben. Dies kann erfordern, dass Sie die Vorlagensynthese ändern. Weitere Informationen finden Sie unter Passen Sie die Stacksynthese an CDK.

Ändern Sie serverseitige Verschlüsselungsschlüssel für den Amazon S3 S3-Bucket

Standardmäßig ist der Amazon S3 S3-Bucket im Bootstrap-Stack so konfiguriert, dass er AWS verwaltete Schlüssel für die serverseitige Verschlüsselung verwendet. Um einen vorhandenen, vom Kunden verwalteten Schlüssel zu verwenden, verwenden Sie die --bootstrap-kms-key-id Option und geben Sie einen Wert für den zu verwendenden Schlüssel AWS Key Management Service (AWS KMS) an. Wenn Sie mehr Kontrolle über den Verschlüsselungsschlüssel haben möchten, stellen Sie sicher, --bootstrap-customer-key dass Sie einen vom Kunden verwalteten Schlüssel verwenden.

Ordnen Sie verwaltete Richtlinien der Bereitstellungsrolle zu, die übernommen wurde von AWS CloudFormation

Standardmäßig werden Stacks mithilfe der AdministratorAccess Richtlinie mit vollen Administratorrechten bereitgestellt. Wenn Sie Ihre eigenen verwalteten Richtlinien verwenden möchten, verwenden Sie die --cloudformation-execution-policies Option und geben Sie die ARNs verwalteten Richtlinien an, die der Bereitstellungsrolle zugewiesen werden sollen.

Um mehrere Richtlinien bereitzustellen, übergeben Sie ihnen eine einzelne Zeichenfolge, getrennt durch Kommas:

$ cdk bootstrap --cloudformation-execution-policies "arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"

Um Bereitstellungsfehler zu vermeiden, stellen Sie sicher, dass die von Ihnen angegebenen Richtlinien für alle Bereitstellungen ausreichen, die Sie in der Umgebung durchführen, für die das Bootstrapping ausgeführt wird.

Ändern Sie den Qualifier, der den Namen der Ressourcen in Ihrem Bootstrap-Stack hinzugefügt wird

Standardmäßig wird der hnb659fds Qualifier zur physischen ID der Ressourcen in Ihrem Bootstrap-Stack hinzugefügt. Um diesen Wert zu ändern, verwenden Sie die --qualifier Option.

Diese Änderung ist nützlich, wenn mehrere Bootstrap-Stacks in derselben Umgebung bereitgestellt werden, um Namenskonflikte zu vermeiden.

Das Ändern des Qualifizierers dient der Isolierung von Namen zwischen automatisierten Tests. CDK Wenn Sie die der CloudFormation Ausführungsrolle erteilten IAM Berechtigungen nicht sehr genau eingrenzen können, bietet die Verwendung von zwei verschiedenen Bootstrap-Stacks in einem einzigen Konto keine Vorteile für die Isolierung von Rechten. Daher ist es normalerweise nicht erforderlich, diesen Wert zu ändern.

Wenn Sie den Qualifier ändern, muss Ihre CDK App den geänderten Wert an den Stack-Synthesizer übergeben. Weitere Informationen finden Sie unter Passen Sie die Stacksynthese an CDK.

Fügen Sie dem Bootstrap-Stack Tags hinzu

Verwenden Sie die --tags Option im Format vonKEY=VALUE, um Ihrem Bootstrap-Stack CloudFormation Tags hinzuzufügen.

Geben Sie weitere Optionen an AWS-Konten , die in der Umgebung bereitgestellt werden können, für die das Bootstrapping ausgeführt wird

Verwenden Sie die --trust Option, um weitere bereitzustellen AWS-Konten , die in der Umgebung bereitgestellt werden dürfen, für die das Bootstrapping ausgeführt wird. Standardmäßig ist das Konto, das das Bootstrapping durchführt, immer vertrauenswürdig.

Diese Option ist nützlich, wenn Sie eine Umgebung bootstrappen, in der eine Umgebung CDK Pipeline aus einer anderen Umgebung bereitgestellt werden soll.

Wenn Sie diese Option verwenden, müssen Sie auch Folgendes angeben. --cloudformation-execution-policies

Um vertrauenswürdige Konten zu einem vorhandenen Bootstrap-Stack hinzuzufügen, müssen Sie alle Konten angeben, denen Sie vertrauen möchten, einschließlich der Konten, die Sie möglicherweise zuvor angegeben haben. Wenn Sie nur neue Konten angeben, denen Sie vertrauen können, werden die zuvor vertrauenswürdigen Konten entfernt.

Im Folgenden finden Sie ein Beispiel, bei dem zwei Konten als vertrauenswürdig eingestuft werden:

$ cdk bootstrap aws://123456789012/us-west-2 --trust 234567890123 --trust 987654321098 --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess ⏳ Bootstrapping environment aws://123456789012/us-west-2... Trusted accounts for deployment: 234567890123, 987654321098 Trusted accounts for lookup: (none) Execution policies: arn:aws:iam::aws:policy/AdministratorAccess CDKToolkit: creating CloudFormation changeset... ✅ Environment aws://123456789012/us-west-2 bootstrapped.
Geben Sie zusätzliche Informationen an AWS-Konten , die in der Umgebung, in der das Bootstrapping ausgeführt wird, nach Informationen suchen können

Verwenden Sie die --trust-for-lookup Option, um anzugeben AWS-Konten , dass sie in der Umgebung, in der das Bootstrapping ausgeführt wird, nach Kontextinformationen suchen dürfen. Diese Option ist nützlich, um Konten die Erlaubnis zu geben, Stacks zu synthetisieren, die in der Umgebung bereitgestellt werden, ohne ihnen tatsächlich die Erlaubnis zu geben, diese Stacks direkt bereitzustellen.

Aktivieren Sie den Kündigungsschutz für den Bootstrap-Stack

Wenn ein Bootstrap-Stack gelöscht wird, werden die AWS Ressourcen, die ursprünglich in der Umgebung bereitgestellt wurden, ebenfalls gelöscht. Nach dem Bootstrapping Ihrer Umgebung empfehlen wir, den Bootstrap-Stack der Umgebung nicht zu löschen und neu zu erstellen, es sei denn, Sie tun dies absichtlich. Versuchen Sie stattdessen, den Bootstrap-Stack auf eine neue Version zu aktualisieren, indem Sie den Befehl erneut ausführen. cdk bootstrap

Verwenden Sie die --termination-protection Option, um die Einstellungen für den Kündigungsschutz für den Bootstrap-Stack zu verwalten. Durch die Aktivierung des Kündigungsschutzes verhindern Sie, dass der Bootstrap-Stack und seine Ressourcen versehentlich gelöscht werden. Dies ist besonders wichtig, wenn Sie den CDK Pipelines Bootstrap-Stack verwenden, da es keine allgemeine Wiederherstellungsoption gibt, falls Sie den Bootstrap-Stack versehentlich löschen.

Nachdem Sie den Kündigungsschutz aktiviert haben, können Sie die AWS CLI AWS CloudFormation OR-Konsole zur Überprüfung verwenden.

Um den Kündigungsschutz zu aktivieren
  1. Führen Sie den folgenden Befehl aus, um den Kündigungsschutz für einen neuen oder vorhandenen Bootstrap-Stack zu aktivieren:

    $ cdk bootstrap --termination-protection
  2. Verwenden Sie die CloudFormation Konsole AWS CLI oder, um dies zu überprüfen. Im Folgenden finden Sie ein Beispiel unter Verwendung der AWS CLI. Wenn Sie Ihren Bootstrap-Stack-Namen geändert haben, CDKToolkit ersetzen Sie ihn durch Ihren Stack-Namen:

    $ aws cloudformation describe-stacks --stack-name CDKToolkit --query "Stacks[0].EnableTerminationProtection" true

Ändern Sie die Standard-Bootstrap-Vorlage

Wenn Sie mehr Anpassungen benötigen, als sie bieten CDK CLI können, können Sie die Bootstrap-Vorlage nach Bedarf ändern. Stellen Sie dann die Vorlage bereit, um Ihre Umgebung zu booten.

Um die Standard-Bootstrap-Vorlage zu ändern und bereitzustellen
  1. Rufen Sie die Standard-Bootstrap-Vorlage mithilfe der --show-template Option ab. Standardmäßig CDK CLI wird die Vorlage in Ihrem Terminalfenster ausgegeben. Sie können den CDK CLI Befehl ändern, um die Vorlage auf Ihrem lokalen Computer zu speichern. Im Folgenden wird ein Beispiel gezeigt:

    $ cdk bootstrap --show-template > my-bootstrap-template.yaml
  2. Ändern Sie die Bootstrap-Vorlage nach Bedarf. Alle Änderungen, die Sie vornehmen, sollten dem Bootstrapping-Vorlagenvertrag entsprechen. Weitere Informationen zum Bootstrapping-Vorlagenvertrag finden Sie unter. Folgen Sie dem Bootstrap-Vertrag

    Um sicherzustellen, dass Ihre Anpassungen später nicht versehentlich von einem Benutzer überschrieben werden, der die Standardvorlage cdk bootstrap verwendet, ändern Sie den Standardwert des Vorlagenparameters. BootstrapVariant Das erlaubt nur CDK CLI das Überschreiben des Bootstrap-Stacks mit Vorlagen, die dieselbe BootstrapVariant und eine gleiche oder eine höhere Version als die aktuell bereitgestellte Vorlage haben.

  3. Stellen Sie Ihre geänderte Vorlage mit Ihrer bevorzugten AWS CloudFormation Bereitstellungsmethode bereit. Im Folgenden finden Sie ein Beispiel, das Folgendes verwendet CDKCLI:

    $ cdk bootstrap --template my-bootstrap-template.yaml

Folgen Sie dem Bootstrap-Vertrag

Damit Ihre CDK Apps ordnungsgemäß bereitgestellt werden können, müssen die während der Synthese erstellten CloudFormation Vorlagen die beim Bootstrapping erstellten Ressourcen korrekt spezifizieren. Diese Ressourcen werden allgemein als Bootstrap-Ressourcen bezeichnet. Bootstrapping erstellt Ressourcen in Ihrer AWS Umgebung, die von der zur Durchführung von Bereitstellungen und AWS CDK zur Verwaltung von Anwendungsressourcen verwendet werden. Synthesis erstellt CloudFormation Vorlagen aus jedem CDK Stapel in Ihrer Anwendung. Diese Vorlagen definieren nicht nur die AWS Ressourcen, die über Ihre Anwendung bereitgestellt werden. Sie spezifizieren auch die Bootstrap-Ressourcen, die während der Bereitstellung verwendet werden sollen.

Während der Synthese weiß der CDK CLI nicht genau, wie Ihre AWS Umgebung gebootet wurde. Stattdessen CDK CLI erstellt der CloudFormation Vorlagen, die auf dem von Ihnen konfigurierten Synthesizer basieren. Wenn Sie das Bootstrapping anpassen, müssen Sie daher möglicherweise die Synthese anpassen. Anweisungen zum Anpassen der Synthese finden Sie unter. Passen Sie die Stacksynthese an CDK Damit soll sichergestellt werden, dass Ihre synthetisierten CloudFormation Vorlagen mit Ihrer Bootstrap-Umgebung kompatibel sind. Diese Kompatibilität wird als Bootstrap-Vertrag bezeichnet.

Die einfachste Methode zur Anpassung der Stack-Synthese besteht darin, die DefaultStackSynthesizer Klasse in Ihrer Stack Instanz zu ändern. Wenn Sie Anpassungen benötigen, die über das hinausgehen, was diese Klasse bieten kann, können Sie Ihren eigenen Synthesizer als eine Klasse schreiben, die implementiert IStackSynthesizer (vielleicht abgeleitet vonDefaultStackSynthesizer).

Wenn Sie Bootstrapping anpassen, halten Sie sich an den Bootstrap-Vorlagenvertrag, um die Kompatibilität mit zu gewährleisten. DefaultStackSynthesizer Wenn Sie das Bootstrapping über den Bootstrap-Vorlagenvertrag hinaus ändern, müssen Sie Ihren eigenen Synthesizer schreiben.

Versionsverwaltung

Die Bootstrap-Vorlage sollte eine Ressource zum Erstellen eines Amazon EC2 Systems Manager (SSM) -Parameters mit einem bekannten Namen und einer Ausgabe enthalten, die die Version der Vorlage widerspiegelt:

Resources: CdkBootstrapVersion: Type: AWS::SSM::Parameter Properties: Type: String Name: Fn::Sub: '/cdk-bootstrap/${Qualifier}/version' Value: 4 Outputs: BootstrapVersion: Value: Fn::GetAtt: [CdkBootstrapVersion, Value]

Rollen

Das DefaultStackSynthesizer erfordert fünf IAM Rollen für fünf verschiedene Zwecke. Wenn Sie die Standardrollen nicht verwenden, müssen Sie Ihre IAM Rolle ARNs innerhalb Ihres DefaultStackSynthesizer Objekts angeben. Die Rollen lauten wie folgt:

  • Die Bereitstellungsrolle wird von CDK CLI und für AWS CodePipeline die Bereitstellung in einer Umgebung übernommen. Es AssumeRolePolicy steuert, wer die Bereitstellung in der Umgebung durchführen kann. In der Vorlage können Sie sehen, welche Berechtigungen diese Rolle benötigt.

  • Die Lookup-Rolle wird von der übernommen CDKCLI, um Kontext-Lookups in einer Umgebung durchzuführen. Sie AssumeRolePolicy steuert, wer die Implementierung in der Umgebung durchführen kann. Die Berechtigungen, die diese Rolle benötigt, können der Vorlage entnommen werden.

  • Die Rolle beim Veröffentlichen von Dateien und das Veröffentlichen von Bildern werden von den CDK CLI AWS CodeBuild Projekten übernommen, um Assets in einer Umgebung zu veröffentlichen. Sie werden verwendet, um in den Amazon S3 S3-Bucket bzw. das ECR Amazon-Repository zu schreiben. Diese Rollen benötigen Schreibzugriff auf diese Ressourcen.

  • Die AWS CloudFormation Ausführungsrolle wird übergeben, AWS CloudFormation um die eigentliche Bereitstellung durchzuführen. Ihre Berechtigungen sind die Berechtigungen, unter denen die Bereitstellung ausgeführt wird. Die Berechtigungen werden als Parameter, der die verwalteten Richtlinien auflistet, an den Stack übergebenARNs.

Outputs

Das CDK CLI setzt voraus, dass die folgenden CloudFormation Ausgaben auf dem Bootstrap-Stack vorhanden sind:

  • BucketName— Der Name des Datei-Asset-Buckets.

  • BucketDomainName— Der Datei-Asset-Bucket im Domainnamenformat.

  • BootstrapVersion— Die aktuelle Version des Bootstrap-Stacks.

Verlauf der Vorlage

Die Bootstrap-Vorlage ist versioniert und entwickelt sich im Laufe der Zeit mit der selbst. AWS CDK Wenn Sie Ihre eigene Bootstrap-Vorlage bereitstellen, halten Sie sie mit der kanonischen Standardvorlage auf dem neuesten Stand. Sie möchten sicherstellen, dass Ihre Vorlage weiterhin mit allen Funktionen funktioniert. CDK Weitere Informationen finden Sie unter Versionsverlauf der Bootstrap-Vorlage.