

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 4: Crear un perfil de instancia de IAM para las instancias de Amazon EC2
<a name="getting-started-create-iam-instance-profile"></a>

**nota**  
 Si utiliza la plataforma informática Amazon ECS o AWS Lambda, omita este paso.

Sus instancias de Amazon EC2 necesitan permiso para acceder a los GitHub depósitos o repositorios de Amazon S3 en los que se almacenan las aplicaciones. *Para lanzar instancias de Amazon EC2 compatibles con CodeDeploy, debe crear una función de IAM adicional, un perfil de instancia.* Estas instrucciones le indicarán cómo crear un perfil de instancia de IAM para asociarlo a las instancias Amazon EC2. Esta función otorga al CodeDeploy agente permiso para acceder a los GitHub depósitos o repositorios de Amazon S3 en los que se almacenan sus aplicaciones.

Puede crear un perfil de instancia de IAM con la AWS CLI consola de IAM o con el IAM. APIs

**nota**  
Puede adjuntar un perfil de instancias de IAM a una instancia de Amazon EC2 en el momento de lanzarla, o bien, adjuntarlo a una instancia ya lanzada anteriormente. Para obtener más información, consulte [Perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-instanceprofile.html).

**Topics**
+ [Creación de un perfil de instancia de IAM para las instancias de Amazon EC2 (CLI)](#getting-started-create-iam-instance-profile-cli)
+ [Creación de un perfil de instancia de IAM para las instancias de Amazon EC2 (consola)](#getting-started-create-iam-instance-profile-console)

## Creación de un perfil de instancia de IAM para las instancias de Amazon EC2 (CLI)
<a name="getting-started-create-iam-instance-profile-cli"></a>

En estos pasos suponemos que ya ha seguido las instrucciones de los tres primeros pasos de [Empezar con CodeDeploy](getting-started-codedeploy.md).

1. En el equipo de implementación, crea un archivo de texto con el nombre `CodeDeployDemo-EC2-Trust.json`. Pegue el contenido siguiente, que permite a Amazon EC2 actuar en su nombre:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ec2.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ec2.cn-north-1.amazonaws.com",
                       "ec2.cn-northwest-1.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. En el mismo directorio, cree un archivo de texto con el nombre `CodeDeployDemo-EC2-Permissions.json`. Pegue el siguiente contenido:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```
**nota**  
Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 a los que las instancias de Amazon EC2 deban tener acceso. Asegúrese de dar acceso a los buckets de Amazon S3 que contienen el CodeDeploy agente. De lo contrario, podría producirse un error cuando el CodeDeploy agente esté instalado o actualizado en las instancias. Para conceder al perfil de instancia de IAM acceso únicamente a algunos buckets del kit de CodeDeploy recursos de Amazon S3, utilice la siguiente política, pero elimine las líneas de los buckets a los que desee impedir el acceso:  

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::aws-codedeploy-us-east-2/*",
           "arn:aws:s3:::aws-codedeploy-us-east-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-2/*",
           "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-north-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-2/*",
           "arn:aws:s3:::aws-codedeploy-il-central-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
           "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-2/*",
           "arn:aws:s3:::aws-codedeploy-me-central-1/*",
           "arn:aws:s3:::aws-codedeploy-me-south-1/*",
           "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
         ]
       }
     ]
   }
   ```
**nota**  
Si quieres utilizar la [autorización de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-authorization) o los puntos de enlace de Amazon Virtual Private Cloud (VPC) CodeDeploy, tendrás que añadir más permisos. Consulte [Uso CodeDeploy con Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codedeploy/latest/userguide/vpc-endpoints) para obtener más información.

1. Desde el mismo directorio, llame al comando **create-role** para crear un rol de IAM denominado **CodeDeployDemo-EC2-Instance-Profile**, basado en la información del primer archivo:
**importante**  
Asegúrese de incluir `file://` antes del nombre de archivo. Es obligatorio en este comando.

   ```
   aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
   ```

1. Desde el mismo directorio, llame al comando **put-role-policy** para conceder al rol **CodeDeployDemo-EC2-Instance-Profile** los permisos correspondientes a la información del segundo archivo:
**importante**  
Asegúrese de incluir `file://` antes del nombre de archivo. Es obligatorio en este comando.

   ```
   aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
   ```

1. Llame al **attach-role-policy** para conceder al rol permisos de Amazon EC2 Systems Manager para que SSM pueda instalar CodeDeploy el agente. Esta política no es necesaria si tiene pensado instalar el agente desde el bucket de Amazon S3 público con la línea de comandos. Obtenga más información sobre la [instalación del agente de CodeDeploy ](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html). 

   ```
   aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
   ```

1. Ejecute el comando **create-instance-profile** seguido del comando **add-role-to-instance-profile** para crear un perfil de instancia de IAM denominado **CodeDeployDemo-EC2-Instance-Profile**. El perfil de instancia permite a Amazon EC2 pasar el rol de IAM denominado **CodeDeployDemo-EC2-Instance-Profile** a una instancia de Amazon EC2 en el momento de lanzarla por primera vez:

   ```
   aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile
   aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile
   ```

   *Si necesita obtener el nombre del perfil de la instancia de IAM, consulte [list-instance-profiles-for-role](https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profiles-for-role.html) en la sección IAM de la Referencia.AWS CLI *

Ya ha creado un perfil de instancia de IAM para asociarlo a las instancias de Amazon EC2. Para obtener más información, consulte [Roles de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) en la *Guía del usuario de Amazon EC2*.

## Creación de un perfil de instancia de IAM para las instancias de Amazon EC2 (consola)
<a name="getting-started-create-iam-instance-profile-console"></a>

1. Inicie sesión en la consola de Consola de administración de AWS IAM y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación de la consola de IAM, elija **Políticas** y después **Crear política**.

1. En la página **Especificar permisos**, seleccione **JSON**.

1. Elimine el código de muestra de `JSON`.

1. Pegue el siguiente código:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```
**nota**  
Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 a los que las instancias de Amazon EC2 deban tener acceso. Asegúrese de dar acceso a los buckets de Amazon S3 que contienen el CodeDeploy agente. De lo contrario, podría producirse un error cuando el CodeDeploy agente esté instalado o actualizado en las instancias. Para conceder al perfil de instancia de IAM acceso únicamente a algunos buckets del kit de CodeDeploy recursos de Amazon S3, utilice la siguiente política, pero elimine las líneas de los buckets a los que desee impedir el acceso:  

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::aws-codedeploy-us-east-2/*",
           "arn:aws:s3:::aws-codedeploy-us-east-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-2/*",
           "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-north-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-2/*",
           "arn:aws:s3:::aws-codedeploy-il-central-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
           "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-2/*",
           "arn:aws:s3:::aws-codedeploy-me-central-1/*",
           "arn:aws:s3:::aws-codedeploy-me-south-1/*",
           "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
         ]
       }
     ]
   }
   ```
**nota**  
Si quieres utilizar la [autorización de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-authorization) o los puntos de enlace de Amazon Virtual Private Cloud (VPC) CodeDeploy, tendrás que añadir más permisos. Consulte [Uso CodeDeploy con Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codedeploy/latest/userguide/vpc-endpoints) para obtener más información.

1.  Elija **Siguiente**. 

1. En la página **Revisar y crear**, en **Nombre de la política**, escriba **CodeDeployDemo-EC2-Permissions**.

1.  (Opcional) En **Descripción**, escriba una descripción para la política. 

1. Elija **Crear política**.

1. En el panel de navegación, seleccione **Roles** y luego seleccione **Crear rol**.

1. En **Caso de uso**, elija el caso de uso **EC2**.

1. Elija **Siguiente**.

1.  En la lista de políticas, seleccione la casilla de verificación situada junto a la política que acaba de crear (**CodeDeployDemo-EC2-Permissions**). Si es necesario, utilice el cuadro de búsqueda para encontrar la política. 

1.  Para usar Systems Manager para instalar o configurar el CodeDeploy agente, seleccione la casilla de verificación situada junto a **Amazon SSMManaged InstanceCore**. Esta política AWS gestionada permite que una instancia utilice la funcionalidad principal del servicio Systems Manager. Si es necesario, utilice el cuadro de búsqueda para encontrar la política. Esta política no es necesaria si tiene pensado instalar el agente desde el bucket de Amazon S3 público con la línea de comandos. Obtenga más información sobre la [instalación del agente de CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html). 

1.  Elija **Siguiente**. 

1. En la página **Asignar nombre, revisar y crear**, en **Nombre del rol**, ingrese un nombre para el rol de servicio (por ejemplo, **CodeDeployDemo-EC2-Instance-Profile**) y luego elija **Crear rol**.

   También puede ingresar una descripción para este rol de servicio en el cuadro **Descripción del rol**.

Ya ha creado un perfil de instancia de IAM para asociarlo a las instancias de Amazon EC2. Para obtener más información, consulte [Roles de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) en la *Guía del usuario de Amazon EC2*.