Erfolgreicher Import eines S3-Buckets als CloudFormation AWS-Stack - AWS Prescriptive Guidance

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.

Erfolgreicher Import eines S3-Buckets als CloudFormation AWS-Stack

Erstellt von Ram Kandaswamy (AWS)

Umgebung: Produktion

Technologien: CloudNative; Speicher und Backup

AWS-Dienste: Amazon S3; AWS CloudFormation

Übersicht

Wenn Sie Amazon Web Services (AWS) -Ressourcen wie Amazon Simple Storage Service (Amazon S3) -Buckets verwenden und einen Infrastructure-as-Code-Ansatz (IaC) verwenden möchten, können Sie Ihre Ressourcen in AWS importieren CloudFormation und als Stack verwalten.

Dieses Muster enthält Schritte für den erfolgreichen Import eines S3-Buckets als CloudFormation AWS-Stack. Durch die Verwendung des Ansatzes dieses Musters können Sie mögliche Fehler vermeiden, die auftreten können, wenn Sie Ihren S3-Bucket in einer einzigen Aktion importieren.

Voraussetzungen und Einschränkungen

Voraussetzungen

Architektur

Workflow zur Verwendung der CloudFormation Vorlage zum Erstellen eines CloudFormation Stacks zum Importieren eines S3-Buckets.

Das Diagramm zeigt den folgenden Workflow:

  1. Der Benutzer erstellt eine AWS-Vorlage im JSON- oder YAML-Format. CloudFormation

  2. Die Vorlage erstellt einen CloudFormation AWS-Stack zum Importieren des S3-Buckets.

  3. Der CloudFormation AWS-Stack verwaltet den S3-Bucket, den Sie in der Vorlage angegeben haben.

Technologie-Stack

  • AWS CloudFormation

  • AWS Identity and Access Management (IAM)

  • AWS KMS

  • Amazon S3

Tools

  • AWS CloudFormation — AWS CloudFormation hilft Ihnen dabei, AWS-Infrastrukturbereitstellungen vorhersehbar und wiederholt zu erstellen und bereitzustellen.

  • AWS Identity and Access Management (IAM) — IAM ist ein Webservice zur sicheren Steuerung des Zugriffs auf AWS-Services.

  • AWS KMS — AWS Key Management Service (AWS KMS) ist ein für die Cloud skalierter Verschlüsselungs- und Schlüsselverwaltungsservice.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist Speicher für das Internet.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Vorlage, um den S3-Bucket und CMK zu importieren.

Erstellen Sie auf Ihrem lokalen Computer mithilfe der folgenden Beispielvorlage eine Vorlage für den Import Ihres S3-Buckets und CMK:

AWSTemplateFormatVersion: 2010-09-09 Parameters: bucketName: Type: String Resources: S3Bucket: Type: 'AWS::S3::Bucket' DeletionPolicy: Retain Properties: BucketName: !Ref bucketName BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: 'aws:kms' KMSMasterKeyID: !GetAtt - KMSS3Encryption - Arn KMSS3Encryption: Type: 'AWS::KMS::Key' DeletionPolicy: Retain Properties: Enabled: true KeyPolicy: !Sub |- { "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::${AWS::AccountId}:root"] }, "Action": "kms:*", "Resource": "*" } } ] } EnableKeyRotation: true
AWS DevOps

Erstellen Sie den Stack.

  1. Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die CloudFormation AWS-Konsole, wählen Sie Stack anzeigen, dann Stack erstellen und dann Mit vorhandenen Ressourcen (Ressourcen importieren).

  2. Wählen Sie Vorlagendatei hochladen und laden Sie dann die Vorlagendatei hoch, die Sie zuvor erstellt haben.

  3. Geben Sie einen Namen für Ihren Stack ein und konfigurieren Sie die verbleibenden Optionen gemäß Ihren Anforderungen.

  4. Wählen Sie Stack erstellen und warten Sie, bis sich der Status des Stacks zu ändertIMPORT_COMPLETE.

AWS DevOps

Erstellen Sie den KMS-Schlüsselalias.

  1. Wählen Sie in der CloudFormation AWS-Konsole Stacks, wählen Sie den Namen des Stacks, den Sie zuvor erstellt haben, wählen Sie den Bereich Vorlage und dann In Designer anzeigen aus.

  2. Fügen Sie dem Resource Abschnitt Ihrer Vorlage das folgende Snippet hinzu, wählen Sie dann Create Stack und schließen Sie den Assistenten ab:

KMSS3EncryptionAlias: Type: 'AWS::KMS::Alias' DeletionPolicy: Retain Properties: AliasName: alias/S3BucketKey TargetKeyId: !Ref KMSS3Encryption

Weitere Informationen dazu finden Sie unter CloudFormation AWS-Stack-Updates in der CloudFormation AWS-Dokumentation. 

AWS DevOps

Aktualisieren Sie den Stack so, dass er die S3-Bucket-Richtlinie enthält.

  1. Wählen Sie in der CloudFormation AWS-Konsole Stacks, wählen Sie den Namen des Stacks, den Sie zuvor erstellt haben, wählen Sie den Bereich Vorlage und dann In Designer anzeigen aus.

  2. Fügen Sie dem Resource Abschnitt der Vorlage den folgenden Ausschnitt hinzu, wählen Sie dann Stack erstellen und schließen Sie den Assistenten ab:

S3BucketPolicy: Type: 'AWS::S3::BucketPolicy' Properties: Bucket: !Ref S3Bucket PolicyDocument: !Sub |- { "Version": "2008-10-17", "Id": "restricthttp", "Statement": [ { "Sid": "denyhttp", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "s3:*", "Resource": ["arn:aws:s3:::${S3Bucket}","arn:aws:s3:::${S3Bucket}/*"], "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }

Hinweis: Diese S3-Bucket-Richtlinie enthält eine Deny-Anweisung, die API-Aufrufe einschränkt, die nicht sicher sind. 

AWS DevOps

Aktualisieren Sie die wichtigsten Richtlinien.

  1. Wählen Sie in der CloudFormation AWS-Konsole Stacks, wählen Sie den Namen des Stacks, den Sie zuvor erstellt haben, wählen Sie den Bereich Vorlage und dann In Designer anzeigen aus.

  2. Ändern Sie die KMS-Ressource der Vorlage so, dass sie die Schlüsselrichtlinie enthält, die es Administratoren ermöglicht, das CMK zu verwalten.

  3. Wählen Sie Stack erstellen und dann Weiter aus, und führen Sie den Assistenten dann entsprechend Ihren Anforderungen aus.

Weitere Informationen dazu finden Sie unter Verwenden von Schlüsselrichtlinien in AWS KMS und Erlauben der Verwaltung des CMK durch Schlüsseladministratoren in der AWS KMS KMS-Dokumentation.

AWS-Administrator

Fügen Sie Tags auf Ressourcenebene hinzu.

  1. Wählen Sie in der CloudFormation AWS-Konsole Stacks, wählen Sie den Namen des Stacks, den Sie zuvor erstellt haben, wählen Sie den Bereich Vorlage und dann In Designer anzeigen aus.

  2. Fügen Sie das folgende Snippet zum Amazon S3 Properties S3-Ressourcenbereich der Vorlage hinzu, wählen Sie dann Stack erstellen und schließen Sie den Assistenten ab:

Tags: - Key: createdBy Value: Cloudformation
AWS DevOps

Zugehörige Ressourcen

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip