Importa con successo un bucket S3 come stack AWS CloudFormation - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Importa con successo un bucket S3 come stack AWS CloudFormation

Creato da Ram Kandaswamy (AWS)

Ambiente: produzione

Tecnologie: CloudNative; Archiviazione e backup

Servizi AWS: Amazon S3; AWS CloudFormation

Riepilogo

Se utilizzi risorse Amazon Web Services (AWS), come i bucket Amazon Simple Storage Service (Amazon S3), e desideri utilizzare un approccio infrastructure-as code (IaC), puoi importare le tue risorse in CloudFormation AWS e gestirle come uno stack.

Questo modello fornisce i passaggi per importare correttamente un bucket S3 come stack CloudFormation AWS. Utilizzando l'approccio di questo modello, puoi evitare possibili errori che potrebbero verificarsi se importi il bucket S3 con una singola azione.

Prerequisiti e limitazioni

Prerequisiti

Architettura

Flusso di lavoro per utilizzare il CloudFormation modello per creare uno CloudFormation stack per importare un bucket S3.

Il diagramma mostra il flusso di lavoro seguente:

  1. L'utente crea un modello AWS in formato JSON o YAML. CloudFormation

  2. Il modello crea uno CloudFormation stack AWS per importare il bucket S3.

  3. Lo CloudFormation stack AWS gestisce il bucket S3 specificato nel modello.

Stack tecnologico

  • AWS CloudFormation

  • AWS Identity and Access Management (IAM)

  • AWS KMS

  • Amazon S3

Strumenti

  • AWS CloudFormation: AWS ti CloudFormation aiuta a creare e fornire distribuzioni di infrastrutture AWS in modo prevedibile e ripetuto.

  • AWS Identity and Access Management (IAM): IAM è un servizio Web per controllare in modo sicuro l'accesso ai servizi AWS.

  • AWS KMS — AWS Key Management Service (AWS KMS) è un servizio di crittografia e gestione delle chiavi scalato per il cloud.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) è uno storage per Internet.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea un modello per importare il bucket S3 e CMK.

Sul tuo computer locale, crea un modello per importare il bucket S3 e CMK utilizzando il seguente modello di esempio:

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

Creare lo stack.

  1. Accedi alla Console di gestione AWS, apri la CloudFormation console AWS, scegli Visualizza stack, scegli Crea stack, quindi scegli Con risorse esistenti (importa risorse).

  2. Scegli Carica un file modello, quindi carica il file modello che hai creato in precedenza.

  3. Inserisci un nome per lo stack e configura le opzioni rimanenti in base alle tue esigenze.

  4. Scegli Crea stack e attendi che lo stato dello stack cambi a. IMPORT_COMPLETE

AWS DevOps

Crea l'alias della chiave KMS.

  1. Sulla CloudFormation console AWS, scegli Stacks, scegli il nome dello stack che hai creato in precedenza, scegli il riquadro Template, quindi scegli Visualizza in Designer.

  2. Aggiungi il seguente frammento alla Resource sezione del modello, quindi scegli Create stack e completa la procedura guidata:

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

Per ulteriori informazioni a riguardo, consulta AWS CloudFormation stack updates nella CloudFormation documentazione AWS. 

AWS DevOps

Aggiorna lo stack per includere la policy sui bucket S3.

  1. Sulla CloudFormation console AWS, scegli Stacks, scegli il nome dello stack che hai creato in precedenza, scegli il riquadro Template, quindi scegli Visualizza in Designer.

  2. Aggiungi il seguente frammento alla Resource sezione del modello, quindi scegli Create stack e completa la procedura guidata:

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" } } } ] }

Nota: questa policy sui bucket di S3 include una dichiarazione di rifiuto che limita le chiamate API che non sono sicure. 

AWS DevOps

Aggiorna la politica chiave.

  1. Sulla CloudFormation console AWS, scegli Stacks, scegli il nome dello stack che hai creato in precedenza, scegli il riquadro Template, quindi scegli Visualizza in Designer.

  2. Modifica la risorsa KMS del modello per includere la policy chiave che consente agli amministratori di amministrare la CMK.

  3. Scegli Crea stack, scegli Avanti, quindi completa la procedura guidata in base alle tue esigenze.

Per ulteriori informazioni su questo argomento, consulta Usare le policy chiave in AWS KMS e Consentire agli amministratori chiave di amministrare la CMK nella documentazione di AWS KMS.

Amministratore AWS

Aggiungi tag a livello di risorsa.

  1. Sulla CloudFormation console AWS, scegli Stacks, scegli il nome dello stack che hai creato in precedenza, scegli il riquadro Template, quindi scegli Visualizza in Designer.

  2. Aggiungi il seguente frammento alla sezione Properties delle risorse Amazon S3 del modello, quindi scegli Crea stack e completa la procedura guidata:

Tags: - Key: createdBy Value: Cloudformation
AWS DevOps

Risorse correlate

Allegati

Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip