

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Importación correcta de un bucket de S3 como CloudFormation pila de AWS
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack"></a>

*Ram Kandaswamy, Amazon Web Services*

## Resumen
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-summary"></a>

Si utiliza los recursos de Amazon Web Services (AWS), como los buckets de Amazon Simple Storage Service (Amazon S3), y desea utilizar un enfoque de infraestructura como código (IaC), puede importar sus recursos a CloudFormation AWS y gestionarlos como una pila.

Este patrón proporciona los pasos para importar correctamente un bucket de S3 como una CloudFormation pila de AWS. Al utilizar este enfoque de patrón, puede evitar los posibles errores que podrían producirse si importa su bucket de S3 en una sola acción.

## Requisitos previos y limitaciones
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Un bucket de S3 y una política de bucket de S3 existentes. A fin de obtener más información, consulte [¿Qué política de bucket de S3 debería utilizar para cumplir con la regla s3-bucket-ssl-requests-only de AWS Config?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/) en el Centro de conocimientos de AWS.
+ Una clave de AWS Key Management Service (AWS KMS) existente y su alias. Para obtener más información, consulte [Trabajar con alias](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html) en la documentación de AWS KMS.
+ La CloudFormation plantilla de `CloudFormation-template-S3-bucket` AWS de muestra (adjunta), descargada en su ordenador local.

## Arquitectura
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-architecture"></a>

![Flujo de trabajo para usar la CloudFormation plantilla a fin de crear una CloudFormation pila para importar un bucket de S3.](https://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/aea7f6fe-8e67-46c4-8b90-1ab06b879111/images/ee143374-a0a4-42d9-b7ca-16593a597a84.png)


 

En el diagrama, se muestra el siguiente flujo de trabajo:

1. El usuario crea una CloudFormation plantilla JSON o YAML-formatted AWS.

1. La plantilla crea una CloudFormation pila de AWS para importar el bucket de S3.

1. La CloudFormation pila de AWS administra el depósito de S3 que especificó en la plantilla.

**Pila de tecnología**
+ AWS CloudFormation
+ AWS Identity y Access Management (IAM)
+ AWS KMS
+ Amazon S3

 

**Herramientas**
+ [AWS CloudFormation: AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) le CloudFormation ayuda a crear y aprovisionar despliegues de infraestructura de AWS de forma predecible y repetitiva.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html): IAM es un servicio web que le ayuda a controlar el acceso seguro a los servicios de AWS.
+ [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html): AWS Key Management Service (AWS KMS) es un servicio de cifrado y administración de claves adaptado a la nube.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html): Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento para Internet.

## Epics
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-epics"></a>

### Importe un bucket de S3 con AWS KMS key cifrado basado en CloudFormation AWS
<a name="import-an-s3-bucket-with-kms-key-long--based-encryption-as-an-aws-cloudformation-stack"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una plantilla para importar el bucket de S3 y la clave de KMS. | En su equipo local, cree una plantilla para importar el bucket de S3 y la clave de KMS con la plantilla de muestra siguiente:<pre>AWSTemplateFormatVersion: 2010-09-09<br /><br />Parameters:<br /><br />  bucketName:<br /><br />    Type: String<br /><br />Resources:<br /><br />  S3Bucket:<br /><br />    Type: 'AWS::S3::Bucket'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties:<br /><br />      BucketName: !Ref bucketName<br /><br />      BucketEncryption:<br /><br />        ServerSideEncryptionConfiguration:<br /><br />          - ServerSideEncryptionByDefault:<br /><br />              SSEAlgorithm: 'aws:kms'<br /><br />              KMSMasterKeyID: !GetAtt <br /><br />                - KMSS3Encryption<br /><br />                - Arn<br /><br />  KMSS3Encryption:<br /><br />    Type: 'AWS::KMS::Key'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties:<br /><br />      Enabled: true<br /><br />      KeyPolicy: !Sub |-<br /><br />        {<br /><br />            "Id": "key-consolepolicy-3",<br /><br />            "Version": "2012-10-17",		 	 	 <br /><br />            "Statement": [<br /><br />                {<br /><br />                    "Sid": "Enable IAM User Permissions",<br /><br />                    "Effect": "Allow",<br /><br />                    "Principal": {<br /><br />                        "AWS": ["arn:aws:iam::${AWS::AccountId}:root"]<br /><br />                    },<br /><br />                    "Action": "kms:*",<br /><br />                    "Resource": "*"<br /><br />                }<br /><br />                }<br /><br />            ]<br /><br />        }<br /><br />      EnableKeyRotation: true</pre> | AWS DevOps | 
| Cree la pila. | 1. Inicie sesión en la consola de administración de AWS, abra la CloudFormation consola de AWS, elija **Ver pila**, elija **Crear pila** y, a continuación, elija **Con recursos existentes (importar recursos)**.<br />2. Elija **Upload a template file** (Cargar un archivo de plantilla) y, a continuación, cargue el archivo de plantilla que creó anteriormente.<br />3. Introduzca un nombre para su pila y configure las opciones restantes según sus necesidades.<br />4. Seleccione **Create stack** (Crear pila) y espere a que el estado de la colección cambie a `IMPORT_COMPLETE`. | AWS DevOps | 
| Cree el alias de la clave KMS. | 1. En la CloudFormation consola de AWS, elija **Stacks**, elija el nombre de la pila que creó anteriormente, elija el panel **Template** y, a continuación, elija **View in Designer**.<br />2. Añada el siguiente fragmento a la sección `Resource` de la plantilla y, a continuación, elija **Create stack** (Crear pila) y complete el asistente:<pre>KMSS3EncryptionAlias:<br /><br />    Type: 'AWS::KMS::Alias'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties: <br /><br />    AliasName: alias/S3BucketKey<br /><br />    TargetKeyId: !Ref KMSS3Encryption</pre>Para obtener más información al respecto, consulte [las actualizaciones de la CloudFormation pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) de AWS en la CloudFormation documentación de AWS.  | AWS DevOps | 
| Actualice la pila para incluir la política de bucket de S3. | 1. En la CloudFormation consola de AWS, elija **Stacks**, elija el nombre de la pila que creó anteriormente, elija el panel **Template** y, a continuación, elija **View in Designer**.<br />2. Añada el siguiente fragmento a la sección `Resource` de la plantilla y, a continuación, elija **Create stack** (Crear pila) y complete el asistente:<pre>S3BucketPolicy:<br /><br />  Type: 'AWS::S3::BucketPolicy'<br /><br />  Properties:<br /><br />    Bucket: !Ref S3Bucket<br /><br />    PolicyDocument: !Sub |-<br /><br />      {<br /><br />                  "Version": "2008-10-17",		 	 	 <br /><br />                  "Id": "restricthttp",<br /><br />                  "Statement": [<br /><br />                      {<br /><br />                          "Sid": "denyhttp",<br /><br />                          "Effect": "Deny",<br /><br />                          "Principal": {<br /><br />                              "AWS": "*"<br /><br />                          },<br /><br />                          "Action": "s3:*",<br /><br />                          "Resource": ["arn:aws:s3:::${S3Bucket}","arn:aws:s3:::${S3Bucket}/*"],<br /><br />                          "Condition": {<br /><br />                              "Bool": {<br /><br />                                  "aws:SecureTransport": "false"<br /><br />                              }<br /><br />                          }<br /><br />                      }<br /><br />                  ]<br /><br />              }</pre>Esta política de bucket de S3 tiene una declaración de denegación que restringe las llamadas a la API que no son seguras.  | AWS DevOps | 
| Actualice la política de claves. | 1. En la CloudFormation consola de AWS, elija **Stacks**, elija el nombre de la pila que creó anteriormente, elija el panel **Template** y, a continuación, elija **View in Designer**.<br />2. Modifique el recurso KMS de la plantilla para incluir la política de claves que permite a los administradores administrar la clave de KMS.<br />3. Elija **Create stack** (Crear pila), elija **Next** (Siguiente) y, a continuación, complete el asistente según sus necesidades.Para más información, consulte [Políticas de claves en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) en la documentación de AWS KMS. | Administrador de AWS | 
| Adición de etiquetas de nivel de recursos. | 1. En la CloudFormation consola de AWS, elija **Stacks**, elija el nombre de la pila que creó anteriormente, elija el panel **Template** y, a continuación, elija **View in Designer**.<br />2. Añada el siguiente fragmento a la sección `Properties` de recursos de Amazon S3 de la plantilla y, a continuación, elija **Crear pila** y complete el asistente:<pre>Tags:<br /><br />  - Key: createdBy<br /><br />    Value: Cloudformation</pre> | AWS DevOps | 

## Recursos relacionados
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-resources"></a>
+ [Incorporar los recursos existentes a la CloudFormation administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)
+ [AWS re:Invent 2017: información detallada sobre AWS CloudFormation (vídeo](https://www.youtube.com/watch?v=01hy48R9Kr8))

## Archivos adjuntos
<a name="attachments-aea7f6fe-8e67-46c4-8b90-1ab06b879111"></a>

[Para acceder al contenido adicional asociado a este documento, descargue y descomprima el siguiente archivo: attachment.zip](samples/p-attach/aea7f6fe-8e67-46c4-8b90-1ab06b879111/attachments/attachment.zip)