

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.

# Paso 1: Crear un bucket de Amazon S3
<a name="using-s3-bucket"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en [AWS Re:post](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support).

En primer lugar, debe crear un bucket de Amazon S3. Puede hacerlo directamente mediante la consola, la API o la CLI de Amazon S3, pero a menudo es más sencillo crear recursos utilizando una plantilla de CloudFormation . La siguiente plantilla crea un bucket de Amazon S3 para este ejemplo y configura un [perfil de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) con un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) que concede acceso no restringido al bucket. A continuación, podrá utilizar una opción de capa para adjuntar el perfil de instancia a las instancias del servidor de aplicaciones de la pila, que permita a las aplicaciones obtener acceso al bucket, tal y como se describe más adelante. La utilidad de los perfiles de instancia no se limita a Amazon S3; son muy útiles para integrar una amplia variedad de servicios de AWS. 

```
{
   "AWSTemplateFormatVersion" : "2010-09-09",
   "Resources" : {
      "AppServerRootRole": {
         "Type": "AWS::IAM::Role",
         "Properties": {
            "AssumeRolePolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Principal": {
                     "Service": [ "ec2.amazonaws.com" ]
                  },
                  "Action": [ "sts:AssumeRole" ]
               } ]
            },
            "Path": "/"
         }
      },
      "AppServerRolePolicies": {
         "Type": "AWS::IAM::Policy",
         "Properties": {
            "PolicyName": "AppServerS3Perms",
            "PolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Action": "s3:*",
                  "Resource": { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "AppBucket" } , "/*" ]
                  ] }
               } ]
            },
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
      "AppServerInstanceProfile": {
         "Type": "AWS::IAM::InstanceProfile",
         "Properties": {
            "Path": "/",
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
     "AppBucket" : {
      "Type" : "AWS::S3::Bucket"
      }
   },
   "Outputs" : {
       "BucketName" : {
           "Value" : { "Ref" : "AppBucket" }
       },
       "InstanceProfileName" : {
           "Value" : { "Ref" : "AppServerInstanceProfile" }
       }
   }
}
```

Cuando se lanza la plantilla suceden varias cosas:
+ El recurso `[AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html)` crea un bucket de Amazon S3.
+ El recurso `[AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)` crea un perfil de instancia que se asignará a las instancias del servidor de aplicaciones.
+ El recurso `[AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)` crea el rol del perfil de instancia.
+ El recurso `[AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)` establece los permisos del rol para permitir acceso no restringido a buckets de Amazon S3.
+ La sección `Outputs` muestra el bucket y los nombres de los perfiles de instancia en la consola de CloudFormation después de haber lanzado la plantilla.

  Necesitará estos valores para configurar la pila y la aplicación.

Para obtener más información sobre cómo crear CloudFormation plantillas, consulta [Aprende los conceptos básicos de las plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html).

**Para crear un bucket de Amazon S3**

1. Copie la plantilla de muestra en un archivo de texto en el sistema.

   Este ejemplo asume que el archivo se llama `appserver.template`.

1. Abra la consola de [CloudFormation](https://console.aws.amazon.com/cloudformation/) y elija **Create Stack (Crear pila)**.

1. En el cuadro **Stack name (Nombre de pila)**, escriba el nombre de la pila.

   Este ejemplo asume que el archivo se llama **AppServer**.

1. Elija **Upload template file (Cargar archivo de plantilla)**, elija **Browse (Examinar)**, seleccione el archivo `appserver.template` que creó en el paso 1 y, a continuación, elija **Next step (Paso siguiente)**.

1. En la página **Specify Parameters (Especificar parámetros)**, seleccione **I acknowledge that this template may create IAM resources (Acepto que esta plantilla pueda crear recursos de IAM)** y, a continuación, elija **Next step (Paso siguiente)** en cada página del asistente hasta el final. Seleccione **Crear**. 

1. **Cuando la **AppServer**pila alcance el estado **CREATE\$1COMPLETE**, selecciónela y elija la pestaña Salidas.**

   Es posible que necesite actualizar varias veces el estado.

1. En la pestaña **Salidas**, registre los **InstanceProfileName**valores **BucketName**y para usarlos más adelante.

**nota**  
CloudFormation utiliza el término *pila* para referirse al conjunto de recursos que se crean a partir de una plantilla; no es lo mismo que una pila de OpsWorks pilas.