

# Identity and Access Management para Amazon EC2
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) es un Servicio de AWS que ayuda a los administradores a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan a qué personas se puede *autenticar* (pueden iniciar sesión) y *autorizar* (tienen permisos) para utilizar los recursos de Amazon EC2. IAM es un Servicio de AWS que se puede utilizar sin cargo adicional.

Las credenciales de seguridad sirven para identificarlo ante los servicios de AWS y le otorgan acceso a los recursos de AWS, como, por ejemplo, los recursos de Amazon EC2. Puede utilizar características de Amazon EC2 e IAM para permitir que otros usuarios, servicios y aplicaciones utilicen sus recursos de Amazon EC2 sin necesidad de compartir sus credenciales de seguridad. Puede utilizar IAM para controlar la forma en que otros usuarios utilizan los recursos de su Cuenta de AWS y puede utilizar los grupos de seguridad para controlar el acceso a sus instancias de Amazon EC2. Puede optar por permitir un uso completo o limitado de sus recursos de Amazon EC2.

Si usted es desarrollador, puede usar los roles de IAM para administrar las credenciales de seguridad que necesitan las aplicaciones que ejecuta en sus instancias de EC2. Tras asociar un rol de IAM a la instancia, las aplicaciones que se ejecuten en esta podrán recuperar las credenciales del servicio de metadatos de instancias (IMDS).

Para conocer las prácticas recomendadas destinadas a asegurar los recursos de AWS mediante IAM, consulte las [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

**Topics**
+ [

# Políticas basadas en identidad para Amazon EC2
](iam-policies-for-amazon-ec2.md)
+ [

# Políticas de ejemplo para controlar el acceso a la API de Amazon EC2
](ExamplePolicies_EC2.md)
+ [

# Políticas de ejemplo para controlar el acceso a la consola de Amazon EC2
](iam-policies-ec2-console.md)
+ [

# Políticas administradas de AWS para Amazon EC2
](security-iam-awsmanpol.md)
+ [

# Roles de IAM para Amazon EC2
](iam-roles-for-amazon-ec2.md)

# Políticas basadas en identidad para Amazon EC2
<a name="iam-policies-for-amazon-ec2"></a>

De forma predeterminada, los usuarios no tienen permiso para crear ni modificar recursos de Amazon EC2, ni para realizar tareas con la API de Amazon EC2, la consola de Amazon EC2 o la CLI. Para permitir a los usuarios crear o modificar recursos y realizar tareas, debe crear políticas de IAM que concedan a los usuarios permisos para utilizar los recursos y las acciones de la API que necesitarán y, a continuación, asociar dichas políticas a los usuarios, grupos o roles de IAM que requieran dichos permisos.

Cuando asocia una política a un usuario, grupo de usuarios o rol, les otorga o deniega el permiso para realizar las tareas especificadas en los recursos indicados. Para obtener más información general sobre las políticas de IAM, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*. Para obtener más información sobre cómo crear y administrar políticas de IAM, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html).

Una política de IAM debe conceder o denegar permisos para usar una o varias acciones de Amazon EC2. Asimismo, debe especificar los recursos que se pueden utilizar con la acción: pueden ser todos los recursos o, en algunos casos, recursos específicos. La política también puede incluir condiciones que se aplican al recurso.

Para empezar, puede comprobar si las políticas gestionadas de AWS de Amazon EC2 se ajustan a sus necesidades. De lo contrario, puede crear sus propias políticas personalizadas. Para obtener más información, consulte [Políticas administradas de AWS para Amazon EC2](security-iam-awsmanpol.md).

**Topics**
+ [

## Sintaxis de la política
](#policy-syntax)
+ [

## Acciones de Amazon EC2
](#UsingWithEC2_Actions)
+ [

## Permisos de nivel de recurso admitidos para las acciones de la API de Amazon EC2
](#ec2-supported-iam-actions-resources)
+ [

## Nombres de recursos de Amazon (ARN) para Amazon EC2
](#EC2_ARN_Format)
+ [

## Claves de condición de Amazon EC2
](#amazon-ec2-keys)
+ [

## Controle el acceso mediante acceso basado en atributos
](#control-access-with-tags)
+ [

## Concesión de permisos a usuarios, grupos y roles
](#granting-iam-permissions)
+ [

## Comprobar que los usuarios tienen los permisos necesarios
](#check-required-permissions)

## Sintaxis de la política
<a name="policy-syntax"></a>

Una política de IAM es un documento JSON que contiene una o varias instrucciones. Cada instrucción tiene la estructura siguiente.

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Una instrucción está compuesta por varios elementos:
+ **Effect:** el valor de *effect* puede ser `Allow` o `Deny`. De forma predeterminada, los usuarios no tienen permiso para utilizar los recursos y las acciones de la API, por lo que se deniegan todas las solicitudes. Si se concede un permiso explícito se anula el valor predeterminado. Una denegación explícita invalida cualquier permiso concedido.
+ **Action**: el valor de *action* es la acción de la API para la que concede o deniega permisos. Para obtener más información de cómo especificar el valor de *action*, consulte [Acciones de Amazon EC2](#UsingWithEC2_Actions). 
+ **Resource**: el recurso al que afecta la acción. Algunas acciones de la API de Amazon EC2 permiten incluir en la política recursos específicos que la acción puede crear o modificar. Especifique un recurso con un nombre de recurso de Amazon (ARN) o utilizando el carácter comodín (\$1) para indicar que la instrucción se aplica a todos los recursos. Para obtener más información, consulte [Permisos de nivel de recurso admitidos para las acciones de la API de Amazon EC2](#ec2-supported-iam-actions-resources). 
+ **Condition**: las condiciones son opcionales. Se pueden usar para controlar cuándo está en vigor la política. Para obtener más información sobre cómo especificar condiciones para Amazon EC2, consulte [Claves de condición de Amazon EC2](#amazon-ec2-keys).

Para obtener más información sobre los requisitos de la política, consulte la [Referencia de la política JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) en la *Guía del usuario de IAM*. Para obtener ejemplos de instrucciones de política de IAM para Amazon EC2, consulte [Políticas de ejemplo para controlar el acceso a la API de Amazon EC2](ExamplePolicies_EC2.md). 

## Acciones de Amazon EC2
<a name="UsingWithEC2_Actions"></a>

En una instrucción de política de IAM, puede especificar cualquier acción de API de cualquier servicio que sea compatible con IAM. Para Amazon EC2, use el prefijo siguiente con el nombre de la acción de API: `ec2:`. Por ejemplo: `ec2:RunInstances` y `ec2:CreateImage`.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

```
"Action": ["ec2:action1", "ec2:action2"]
```

También puede utilizar caracteres comodín para especificar varias acciones. Por ejemplo, puede especificar todas las acciones cuyo nombre comience por la palabra "Describe" del siguiente modo:

```
"Action": "ec2:Describe*"
```

**nota**  
Actualmente, las acciones de la API de Amazon EC2 Describe\$1 no admiten permisos de nivel de recurso. Para obtener más información sobre los permisos de nivel de recursos para Amazon EC2, consulte [Políticas basadas en identidad para Amazon EC2](#iam-policies-for-amazon-ec2).

Para especificar todas las acciones de API de Amazon EC2, use el carácter comodín \$1 del siguiente modo:

```
"Action": "ec2:*"
```

Para ver una lista de las acciones de Amazon EC2, consulte [Acciones definidas por Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) en la *referencia de autorizaciones de servicio*.

## Permisos de nivel de recurso admitidos para las acciones de la API de Amazon EC2
<a name="ec2-supported-iam-actions-resources"></a>

Los *permisos de nivel de recursos* hacen referencia a la capacidad de especificar en qué recursos los usuarios tienen permitido realizar acciones. Amazon EC2 admite parcialmente los permisos de nivel de recursos. Esto significa que, en algunas acciones de Amazon EC2, puede determinar cuándo se permite utilizarlas a los usuarios en función de si se cumplen una serie de condiciones o de los recursos concretos que pueden utilizar los usuarios. Por ejemplo, puede otorgar permisos a los usuarios para iniciar instancias, pero solo de un tipo específico, y únicamente utilizando una AMI específica.

Para especificar un recurso en la instrucción de política de IAM, se utiliza el nombre de recurso de Amazon (ARN). Para obtener más información sobre cómo especificar el valor de ARN, consulte [Nombres de recursos de Amazon (ARN) para Amazon EC2](#EC2_ARN_Format). Si una acción de API no admite ARN individuales, debe utilizar un comodín (\$1) para especificar que la acción puede afectar a todos los recursos. 

Para ver tablas que identifican qué acciones de la API de Amazon EC2 admiten permisos de nivel de recursos, así como los ARN y las claves de condición que puede usar en una política, consulte [Acciones, recursos y claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Tenga en cuenta que puede aplicar permisos de nivel de recurso basados en etiquetas en las políticas de IAM que utiliza para acciones de la API de Amazon EC2. Esto le ofrece un mejor control sobre los recursos que un usuario puede crear, modificar o utilizar. Para obtener más información, consulte [Conceder permisos para etiquetar recursos de Amazon EC2 durante la creación](supported-iam-actions-tagging.md). 

## Nombres de recursos de Amazon (ARN) para Amazon EC2
<a name="EC2_ARN_Format"></a>

Cada instrucción de política de IAM se aplica a los recursos especificados utilizando sus ARN. 

Un ARN tiene la siguiente sintaxis general:

```
arn:aws:[service]:[region]:[account-id]:resourceType/resourcePath
```

*servicio*  
El servicio (por ejemplo, `ec2`).

*region*  
La región para el recurso (por ejempl, `us-east-1`).

*account-id*  
El ID de cuenta de AWS, sin guiones (por ejemplo, `123456789012`).

*resourceType*  
El tipo de recurso (por ejemplo, `instance`).

*resourcePath*  
Una ruta que identifica al recurso. Puede utilizar carácter comodín \$1 en las rutas.

Por ejemplo, puede indicar una instancia específica (`i-1234567890abcdef0`) en la instrucción usando su ARN de este modo. 

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
```

También puede especificar todas las instancias que pertenecen a una cuenta específica mediante el carácter comodín \$1 del modo siguiente.

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"
```

También puede especificar todos los recursos de Amazon EC2 que pertenecen a una cuenta específica mediante el carácter comodín \$1 del modo siguiente.

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:*"
```

Para especificar todos los recursos o cuando una acción de API no admita ARN, utilice el carácter comodín \$1 en el elemento `Resource` de la siguiente manera.

```
"Resource": "*"
```

En muchas acciones de la API de Amazon EC2 se utilizan varios recursos. Por ejemplo, `AttachVolume` asocia un volumen de Amazon EBS a una instancia, por lo que un usuario debe tener permisos para utilizar el volumen y la instancia. Para especificar varios recursos en una única instrucción, separe sus ARN con comas, tal y como se indica a continuación.

```
"Resource": ["arn1", "arn2"]
```

Para obtener una lista de ARN de recursos de Amazon EC2, consulte [Tipos de recursos definidos por Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies).

## Claves de condición de Amazon EC2
<a name="amazon-ec2-keys"></a>

En la instrucción de una política, tiene la opción de especificar las condiciones que controlan cuando está en vigor. Cada condición contiene uno o varios pares clave-valor. Las claves de condición no distinguen entre mayúsculas y minúsculas. Hemos definido claves de condición globales de AWS y también claves de condición específicas de los servicios.

Para obtener una lista de las claves de condición específicas del servicio para Amazon EC2, consulte [Claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-policy-keys). Amazon EC2 también implementa las claves de condición globales de AWS. Para obtener más información, consulte [Información disponible en todas las solicitudes](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infoallreqs) en la *Guía del usuario de IAM*.

Todas las acciones de Amazon EC2 admiten las claves de condición `aws:RequestedRegion` y `ec2:Region`. Para obtener más información, consulte [Ejemplo: Restringir el acceso a una región específica](ExamplePolicies_EC2.md#iam-example-region).

Para utilizar una clave de condición en la política de IAM, utilice la instrucción `Condition`. Por ejemplo, la política siguiente concede a los usuarios permiso para agregar y eliminar reglas de entrada y salida para cualquier grupo de seguridad. Utiliza la clave de condición `ec2:Vpc` para especificar que estas acciones solo se pueden realizar en grupos de seguridad de una VPC específica.

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

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Statement":[{
    "Effect":"Allow",
    "Action": [
       "ec2:AuthorizeSecurityGroupIngress",
       "ec2:AuthorizeSecurityGroupEgress",
       "ec2:RevokeSecurityGroupIngress",
       "ec2:RevokeSecurityGroupEgress"],
     "Resource": "arn:aws:ec2:us-east-1:111122223333:security-group/*",
      "Condition": {
        "StringEquals": {
          "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-11223344556677889"
        }
      }
    }
  ]
}
```

------

Si especifica varias condiciones o varias claves en una condición, las evaluamos con una operación lógica AND. Si especifica una condición con varios valores para una clave, evaluamos la condición con una operación lógica OR. Para conceder los permisos, es necesario que se cumplan todas las condiciones.

También puede utilizar comodines al especificar las condiciones. Para obtener más información, consulte [Elementos de la política de IAM: Variables y etiquetas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html) en la *Guía del usuario de IAM*.

**importante**  
Muchas claves de condición son específicas de un recurso y algunas acciones de API utilizan varios recursos. Si escribe una política con una clave de condición, use el elemento `Resource` de la instrucción para especificar el recurso en el que se aplica la clave de condición. Si no lo hace, la política puede impedir que los usuarios ejecuten la acción, ya que la comprobación de la condición dará un error en el caso de los recursos en los que la clave de la condición no se aplica. Si no quiere especificar un recurso o si ha escrito el elemento `Action` de su política para que contenga varias acciones de API, debe utilizar el tipo de condición `...IfExists` para asegurarse de que no se tenga en cuenta la clave de condición en el caso de los recursos que no la utilicen. Para obtener más información, consulte [...IfExists Conditions](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_IfExists) en la *Guía del usuario de IAM*.

**Topics**
+ [

### ec2:AttributeClave de condición de
](#attribute-key)
+ [

### ec2:ResourceIDClaves de condición de
](#imageId-key)
+ [

### ec2:SourceInstanceARNClave de condición de
](#SourceInstanceARN)

### ec2:AttributeClave de condición de
<a name="attribute-key"></a>

La clave de condición `ec2:Attribute` se puede utilizar para condiciones que filtran el acceso por un atributo de un recurso.

Esta clave de condición admite únicamente propiedades que sean de un tipo de datos primitivo (como cadenas o enteros) o bien objetos **[AttributeValue](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AttributeValue.html)** complejos que contengan solo una propiedad **Valor** (como los objetos **Description** o **ImdsSupport** de la acción de API [ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html)). La clave de condición no se puede usar con objetos complejos que contengan varias propiedades, como el objeto **LaunchPermission** de [ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html).

Por ejemplo, la siguiente política utiliza la clave de condición `ec2:Attribute/Description` para filtrar el acceso por parte del objeto complejo **Descripción** de la acción **ModifyImageAttribute** de la API. La clave de condición solo permite solicitudes que modifican la descripción de una imagen `Production` o `Development`. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:ModifyImageAttribute",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:Attribute/Description": [
            "Production",
            "Development"
          ]
        }
      }
    }
  ]
}
```

------

El ejemplo siguiente de política utiliza la clave de condición `ec2:Attribute` para filtrar el acceso mediante la propiedad primitiva **Atributo** de la acción **ModifyImageAttribute** de la API. La clave de condición deniega todas las solicitudes que intentan modificar la descripción de una imagen.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "ec2:ModifyImageAttribute",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:Attribute": "Description"
        }
      }
    }
  ]
}
```

------

### ec2:ResourceIDClaves de condición de
<a name="imageId-key"></a>

Cuando utilice las siguientes claves de condición `ec2:ResourceID` con las acciones de API especificadas, el valor de la clave de condición se utiliza para especificar el recurso resultante que se crea mediante la acción de la API. Las claves de condición `ec2:ResourceID` no se pueden usar para especificar un recurso fuente que se especifica en la solicitud de la API. Si usa una de las siguientes claves de condición `ec2:ResourceID` con una API específica, entonces siempre debe especificar el comodín (`*`). Si especifica un valor diferente, la condición siempre se resuelve como `*` durante el tiempo de ejecución. Por ejemplo, para usar la clave de condición `ec2:ImageId` con la API **CopyImage**, luego debe especificar la clave de condición de la siguiente manera:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CopyImage",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:ImageID": "*"
        }
      }
    }
  ]
}
```

------

Recomendamos que evite usar las claves de condición con estas acciones de API:
+ `ec2:DhcpOptionsID` – `CreateDhcpOptions`
+ `ec2:ImageID` – `CopyImage`, `CreateImage`, `ImportImage` y `RegisterImage`
+ `ec2:InstanceID` – `RunInstances` y `ImportInstance`
+ `ec2:InternetGatewayID` – `CreateInternetGateway`
+ `ec2:NetworkAclID` – `CreateNetworkAcl`
+ `ec2:NetworkInterfaceID` – `CreateNetworkInterface`
+ `ec2:PlacementGroupName` – `CreatePlacementGroup`
+ `ec2:RouteTableID` – `CreateRouteTable`
+ `ec2:SecurityGroupID` – `CreateSecurityGroup`
+ `ec2:SnapshotID` – `CopySnapshot`, `CreateSnapshot`, `CreateSnapshots` y `ImportSnapshots`
+ `ec2:SubnetID` – `CreateSubnet`
+ `ec2:VolumeID` – `CreateVolume` y `ImportVolume`
+ `ec2:VpcID` – `CreateVpc`
+ `ec2:VpcPeeringConnectionID` – `CreateVpcPeeringConnection`

Para filtrar el acceso en función de identificadores de recursos específicos, recomendamos que lo haga mediante el elemento de política `Resource`, de la siguiente manera.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CopyImage",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-01234567890abcdef"
    }
  ]
}
```

------

### ec2:SourceInstanceARNClave de condición de
<a name="SourceInstanceARN"></a>

Se utiliza `ec2:SourceInstanceARN` para especificar el ARN de la instancia desde la que se realiza una solicitud. Se trata de una [clave de condición AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html), lo que significa que puede utilizarla con servicios distintos de Amazon EC2. Para ver una política de ejemplo, consulte [Ejemplo: Permitir que una instancia específica vea los recursos de otros servicios de AWS](ExamplePolicies_EC2.md#iam-example-source-instance).

## Controle el acceso mediante acceso basado en atributos
<a name="control-access-with-tags"></a>

Cuando crea una política de IAM que concede a los usuarios permiso para utilizar recursos de EC2, puede incluir información de etiquetas en el elemento `Condition` de la política para controlar el acceso basado en etiquetas. Esto se conoce como control de acceso basado en atributos (ABAC). El ABAC le proporciona un mejor control sobre los recursos que un usuario puede modificar, utilizar o eliminar. Para obtener más información, consulte [¿Qué es ABAC para AWS?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)

Por ejemplo, puede crear una política que permita a los usuarios terminar una instancia, pero que deniegue la acción si la instancia tiene la etiqueta `environment=production`. Para ello, utilice la clave de condición `aws:ResourceTag` para permitir o denegar el acceso al recurso en función de las etiquetas que están asociadas al recurso.

```
"StringEquals": { "aws:ResourceTag/environment": "production" }
```

Para saber si una acción de la API de Amazon EC2 permite controlar el acceso mediante la clave de condición `aws:ResourceTag`, consulte [Acciones, recursos y claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html). Tenga en cuenta que las acciones `Describe` no admiten permisos de nivel de recursos, de forma que debe especificarlas en una instrucción aparte sin condiciones.

Para ver ejemplos de políticas de IAM, consulte [Políticas de ejemplo para controlar el acceso a la API de Amazon EC2](ExamplePolicies_EC2.md). 

Si permite o deniega a los usuarios acceso a recursos en función de etiquetas, debe considerar denegar explícitamente a los usuarios la posibilidad de agregar estas etiquetas o retirarlas de los mismos recursos. De lo contrario, es posible que un usuario eluda sus restricciones y obtenga acceso a un recurso modificando sus etiquetas.

## Concesión de permisos a usuarios, grupos y roles
<a name="granting-iam-permissions"></a>

Para dar acceso, agregue permisos a los usuarios, grupos o roles:
+ Usuarios y grupos en AWS IAM Identity Center:

  Cree un conjunto de permisos. Siga las instrucciones de [Creación de un conjunto de permisos](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) en la *Guía del usuario de AWS IAM Identity Center*.
+ Usuarios gestionados en IAM a través de un proveedor de identidades:

  Cree un rol para la federación de identidades. Siga las instrucciones descritas en [Creación de un rol para un proveedor de identidad de terceros (federación)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) en la *Guía del usuario de IAM*.
+ Usuarios de IAM:
  + Cree un rol que el usuario pueda aceptar. Siga las instrucciones descritas en [Creación de un rol para un usuario de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) en la *Guía del usuario de IAM*.
  + (No recomendado) Adjunte una política directamente a un usuario o agregue un usuario a un grupo de usuarios. Siga las instrucciones descritas en [Adición de permisos a un usuario (consola)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) de la *Guía del usuario de IAM*.

## Comprobar que los usuarios tienen los permisos necesarios
<a name="check-required-permissions"></a>

Una vez creada la política de IAM, le recomendamos que compruebe si concede permisos a los usuarios para utilizar las acciones de la API concretas y los recursos necesarios antes de pasar la política a producción.

En primer lugar, cree un usuario para realizar pruebas y, a continuación, asocie la política de IAM que creó al usuario de prueba. A continuación, realice una solicitud como usuario de prueba.

Si la acción de Amazon EC2 que va a probar crea o modifica un recurso, debería efectuar la solicitud mediante el parámetro `DryRun` (o ejecutar el comando de la AWS CLI con la opción `--dry-run`). En este caso, la llamada completa la comprobación de autorización, pero no la operación. Por ejemplo, puede comprobar si el usuario puede finalizar una instancia determinada sin finalizarla en realidad. Si el usuario de prueba tiene los permisos necesarios, la solicitud devolverá `DryRunOperation`; de lo contrario, devolverá `UnauthorizedOperation`.

Si la política no concede los permisos previstos al usuario o es demasiado permisiva, puede ajustarla según sea necesario y repetir las pruebas hasta obtener el resultado deseado. 

**importante**  
Puede que los cambios en la política tarden varios minutos en propagarse y surtir efecto. Por lo tanto, le recomendamos que espere cinco minutos antes de probar las actualizaciones de la misma.

Si se produce un error en la comprobación de autorización, la solicitud devuelve un mensaje codificado con información de diagnóstico. Puede descodificar el mensaje usando la acción `DecodeAuthorizationMessage`. Para obtener más información, consulte [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html) en la *Referencia de la API de AWS Security Token Service*, así como [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html).

# Políticas de ejemplo para controlar el acceso a la API de Amazon EC2
<a name="ExamplePolicies_EC2"></a>

Puede utilizar las políticas de IAM para conceder a los usuarios los permisos necesarios para trabajar con Amazon EC2. Para obtener instrucciones paso a paso, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Los siguientes ejemplos muestran instrucciones de política que puede utilizar para conceder permisos a los usuarios para utilizar Amazon EC2. Estas políticas están diseñadas para solicitudes que se realizan mediante la AWS CLI o un SDK de AWS. En los ejemplos siguientes, reemplace cada *marcador de posición del usuario* con su propia información.

**Topics**
+ [Acceso de solo lectura](#iam-example-read-only)
+ [Restringir el acceso a una región específica](#iam-example-region)
+ [Trabajar con instancias](#iam-example-instances)
+ [Lanzar instancias (RunInstances)](#iam-example-runinstances)
+ [

## Trabajar con Instancias de spot
](#iam-example-spot-instances)
+ [Trabajar con Instancias reservadas](#iam-example-reservedinstances)
+ [Etiquetar recursos](#iam-example-taggingresources)
+ [Trabajar con roles de IAM](#iam-example-iam-roles)
+ [Trabajar con tablas de ruteo](#iam-example-route-tables)
+ [Permitir que una instancia específica vea los recursos de otros servicios de AWS](#iam-example-source-instance)
+ [Trabajar con plantillas de lanzamiento](#iam-example-launch-templates)
+ [Trabajar con metadatos de instancias](#iam-example-instance-metadata)
+ [

## Uso de volúmenes e instantáneas de Amazon EBS
](#iam-example-ebs)

Para ver políticas de ejemplo para trabajar en la consola de Amazon EC2, consulte [Políticas de ejemplo para controlar el acceso a la consola de Amazon EC2](iam-policies-ec2-console.md).

## Ejemplo: Acceso de solo lectura
<a name="iam-example-read-only"></a>

La siguiente política concede a los usuarios permisos para usar todas las acciones de la API de Amazon EC2 cuyos nombres empiecen por `Describe`. El elemento `Resource` utiliza un carácter comodín para indicar que los usuarios pueden especificar todos los recursos con estas acciones de API. El carácter comodín \$1 también es necesario en los casos en los que la acción de la API no admita permisos de nivel de recursos. Para obtener más información acerca de qué ARN puede usar con qué acciones de la API de Amazon EC2, consulte [Acciones, recursos y claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Los usuarios no tienen permiso para realizar ninguna acción en los recursos (a menos que otra instrucción les de permiso para ello), porque, de forma predeterminada, se les deniega el permiso para usar acciones de la API.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    }
   ]
}
```

------

## Ejemplo: Restringir el acceso a una región específica
<a name="iam-example-region"></a>

La siguiente política deniega a los usuarios el permiso para usar todas las acciones de la API de Amazon EC2 a menos que la región sea Europa (Fráncfort). Utiliza la clave de condición global `aws:RequestedRegion`, que admiten todas las acciones de la API de Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": "eu-central-1"
        }
      }
    }  
  ]
}
```

------

De forma alternativa, puede usar la clave de condición `ec2:Region`, que es específica de Amazon EC2 y que admiten todas las acciones de la API de Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "ec2:Region": "eu-central-1"
        }
      }
    }  
  ]
}
```

------

## Trabajar con instancias
<a name="iam-example-instances"></a>

**Topics**
+ [

### Ejemplo: Describir, iniciar, detener, comenzar y terminar todas las instancias
](#iam-example-instances-all)
+ [

### Ejemplo: Describir todas las instancias y detener, comenzar y terminar solo instancias determinadas
](#iam-example-instances-specific)

### Ejemplo: Describir, iniciar, detener, comenzar y terminar todas las instancias
<a name="iam-example-instances-all"></a>

La siguiente política concede a los usuarios permisos para usar las acciones de la API especificadas en el elemento `Action`. El elemento `Resource` utiliza un carácter comodín \$1 para indicar que los usuarios pueden especificar todos los recursos con estas acciones de API. El carácter comodín \$1 también es necesario en los casos en los que la acción de la API no admita permisos de nivel de recursos. Para obtener más información acerca de qué ARN puede usar con qué acciones de la API de Amazon EC2, consulte [Acciones, recursos y claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Los usuarios no tienen permiso para utilizar cualquier otra acción de la API (a menos que otra instrucción les de permiso para ello), porque, de forma predeterminada, se les deniega el permiso para usar acciones de la API.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances", 
        "ec2:DescribeImages",
        "ec2:DescribeKeyPairs", 
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeAvailabilityZones",
        "ec2:RunInstances", 
        "ec2:TerminateInstances",
        "ec2:StopInstances", 
        "ec2:StartInstances"
      ],
      "Resource": "*"
    }
   ]
}
```

------

### Ejemplo: Describir todas las instancias y detener, comenzar y terminar solo instancias determinadas
<a name="iam-example-instances-specific"></a>

La siguiente política permite a los usuarios describir todas las instancias, iniciar y detener únicamente las instancias i-1234567890abcdef0 e i-0598c7d356eba48d7, y terminar únicamente instancias en la región `us-east-1`, con la etiqueta de recurso “`purpose=test`“. 

La primera instrucción utiliza un comodín \$1 para el elemento `Resource` para indicar que los usuarios pueden especificar todos los recursos con la acción; en este caso, pueden generar una lista de todas las instancias. El carácter comodín \$1 también es necesario en los casos en que la acción de la API no admite permisos de nivel de recursos (en este caso, `ec2:DescribeInstances`). Para obtener más información acerca de qué ARN puede usar con qué acciones de la API de Amazon EC2, consulte [Acciones, recursos y claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

La segunda instrucción utiliza permisos de nivel de recursos para las acciones `StopInstances` y `StartInstances`. Las instancias específicas se indican mediante sus ARN en el elemento `Resource`.

La tercera instrucción permite a los usuarios terminar todas las instancias en la región de `us-east-1` que pertenezcan a la cuenta de AWS indicada, pero solo si la instancia tiene la etiqueta `"purpose=test"`. El elemento `Condition` estipula cuando la instrucción de la política está en vigor. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
   "Effect": "Allow",
      "Action": "ec2:DescribeInstances",
      "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action": [
        "ec2:StopInstances", 
        "ec2:StartInstances"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890abcdef0",
        "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/purpose": "test"
         }
      }
   }

   ]
}
```

------

## Iniciar instancias (RunInstances)
<a name="iam-example-runinstances"></a>

La acción de la API [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) lanza una o varias Instancias bajo demanda o una o varias Instancias de spot. `RunInstances` requiere una AMI y crea una instancia. Los usuarios pueden especificar un par de claves y un grupo de seguridad en la solicitud. El lanzamiento en una VPC requiere una subred y crea una interfaz de red. El lanzamiento desde una AMI basado en Amazon EBS crea un volumen. Por lo tanto, el usuario debe tener permisos para usar estos recursos de Amazon EC2. Puede crear una instrucción de política que exija a los usuarios que especifiquen un parámetro opcional en `RunInstances` o que restrinja los valores de un parámetro a valores determinados.

Para obtener más información sobre los permisos de nivel de recurso necesarios para iniciar una instancia, consulte [Claves de condición, acciones y recursos de Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

De forma predeterminada, los usuarios no tienen permisos para describir, comenzar, detener o terminar las instancias resultantes. Una de las posibles maneras de conceder a los usuarios permisos para administrar las instancias obtenidas consiste en crear una etiqueta específica para cada instancia y, a continuación, crear una instrucción que les permita administrar instancias con dicha etiqueta. Para obtener más información, consulte [Trabajar con instancias](#iam-example-instances).

**Topics**
+ [

### AMI
](#iam-example-runinstances-ami)
+ [

### Tipos de instancias
](#iam-example-runinstances-instance-type)
+ [

### Subredes
](#iam-example-runinstances-subnet)
+ [

### Volúmenes de EBS
](#iam-example-runinstances-volumes)
+ [

### Etiquetas
](#iam-example-runinstances-tags)
+ [

### Etiquetas en una plantilla de lanzamiento
](#iam-example-tags-launch-template)
+ [

### GPU elásticas
](#iam-example-runinstances-egpu)
+ [

### Plantillas de lanzamiento
](#iam-example-runinstances-launch-templates)

### AMI
<a name="iam-example-runinstances-ami"></a>

La siguiente política permite a los usuarios iniciar instancias utilizando únicamente las AMI especificadas, `ami-9e1670f7` y `ami-45cf5c3c`. Los usuarios no pueden lanzar una instancia con otras AMI (a menos que otra instrucción conceda a los usuarios permiso para ello).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:us-east-1::image/ami-9e1670f7",
        "arn:aws:ec2:us-east-1::image/ami-45cf5c3c",
        "arn:aws:ec2:us-east-1:111122223333:instance/*",
        "arn:aws:ec2:us-east-1:111122223333:volume/*",
        "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
        "arn:aws:ec2:us-east-1:111122223333:security-group/*",
        "arn:aws:ec2:us-east-1:111122223333:subnet/*",
        "arn:aws:ec2:us-east-1:111122223333:network-interface/*"
      ]
    }
   ]
}
```

------

Como alternativa, la siguiente política permite a los usuarios iniciar instancias desde todas las AMI propiedad de Amazon o de determinados socios verificados y de confianza. El elemento `Condition` de la primera instrucción prueba si `ec2:Owner` es `amazon`. Los usuarios no pueden lanzar una instancia con otras AMI (a menos que otra instrucción conceda a los usuarios permiso para ello).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "amazon"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Tipos de instancias
<a name="iam-example-runinstances-instance-type"></a>

La siguiente política permite a los usuarios iniciar instancias utilizando únicamente el tipo de instancia `t2.micro` o `t2.small`, que usted podría utilizar para controlar costos. Los usuarios no pueden iniciar instancias más grandes porque el elemento `Condition` de la primera instrucción prueba si `ec2:InstanceType` es `t2.micro` o `t2.small`. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:InstanceType": ["t2.micro", "t2.small"]
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

Como alternativa, puede crear una política que deniegue a los usuarios permisos para iniciar instancias, salvo los tipos de instancias `t2.micro` y `t2.small`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        { 
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringNotEquals": {
            "ec2:InstanceType": ["t2.micro", "t2.small"]
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Subredes
<a name="iam-example-runinstances-subnet"></a>

La siguiente política permite a los usuarios iniciar instancias utilizando únicamente la subred especificada, `subnet-12345678`. El grupo no puede iniciar instancias en cualquier otra subred (a menos que otra instrucción conceda a los usuarios permiso para ello).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-12345678",
        "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
        "arn:aws:ec2:us-east-1:111122223333:instance/*",
        "arn:aws:ec2:us-east-1:111122223333:volume/*",
        "arn:aws:ec2:us-east-1::image/ami-*",
        "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
        "arn:aws:ec2:us-east-1:111122223333:security-group/*"
      ]
    }
   ]
}
```

------

Como alternativa, puede crear una política que deniegue a los usuarios permisos para iniciar una instancia en cualquier otra subred. La instrucción actúa así denegando el permiso para crear una interfaz de red, salvo en la ubicación donde la subred `subnet-12345678` está especificada. Esta denegación anula cualquier otra política creada para permitir el lanzamiento de instancias en otras subredes.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*"
      ],
      "Condition": {
         "ArnNotEquals": {
            "ec2:Subnet": "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-12345678"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Volúmenes de EBS
<a name="iam-example-runinstances-volumes"></a>

La siguiente política permite a los usuarios iniciar instancias únicamente si los volúmenes EBS de la instancia están cifrados. El usuario debe iniciar una instancia desde una AMI que se creó con instantáneas cifradas para garantizar el cifrado del volumen raíz. Cualquier volumen adicional que el usuario adjunte a la instancia durante el lanzamiento también debe estar cifrado.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
                {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

------

### Etiquetas
<a name="iam-example-runinstances-tags"></a>

**Etiquetar instancias durante la creación**

La siguiente política permite a los usuarios iniciar instancias y etiquetarlas durante la creación. En las acciones de creación de recursos que aplican etiquetas, los usuarios deben tener permisos para utilizar la acción `CreateTags`. La segunda instrucción utiliza la clave de condición `ec2:CreateAction` para permitir a los usuarios crear etiquetas únicamente en el contexto de `RunInstances` y solo para instancias. Los usuarios no pueden etiquetar recursos ya existentes ni tampoco etiquetar volúmenes utilizando la solicitud `RunInstances`. 

Para obtener más información, consulte [Conceder permisos para etiquetar recursos de Amazon EC2 durante la creación](supported-iam-actions-tagging.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Etiquetar instancias y volúmenes durante la creación con etiquetas específicas**

La siguiente política contiene la clave de condición `aws:RequestTag` que exige a los usuarios que etiqueten todas las instancias que se creen con `RunInstances`, con las etiquetas `environment=production` y `purpose=webserver`. Si los usuarios no transmiten estas etiquetas en concreto o si no especifican ninguna etiqueta, la solicitud dará un error.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1::image/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
          "arn:aws:ec2:us-east-1:111122223333:volume/*",
          "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
             "aws:RequestTag/environment": "production" ,
             "aws:RequestTag/purpose": "webserver"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Etiquetar instancias y volúmenes durante la creación con al menos una etiqueta específica**

La siguiente política utiliza el modificador `ForAnyValue` en la condición `aws:TagKeys` para indicar que debe especificarse como mínimo una etiqueta en la solicitud y que esta debe contener la clave `environment` o `webserver`. La etiqueta debe aplicarse tanto a las instancias como a los volúmenes. Se puede especificar cualquier valor de etiqueta en la solicitud. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1::image/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
          "ec2:RunInstances"
      ],
      "Resource": [
          "arn:aws:ec2:us-east-1:111122223333:volume/*",
          "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
          "ForAnyValue:StringEquals": {
              "aws:TagKeys": ["environment","webserver"]
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
          "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
          "StringEquals": {
              "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Si las instancias se etiquetan durante la creación, deben etiquetarse con una etiqueta específica**

En la siguiente política, los usuarios no tienen que especificar etiquetas en la solicitud, pero si lo hacen, la etiqueta tiene que ser `purpose=test`. No se permite ninguna otra etiqueta. Los usuarios pueden aplicar etiquetas a todos los recursos de la solicitud `RunInstances` que lo admitan.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "aws:RequestTag/purpose": "test",
             "ec2:CreateAction" : "RunInstances"
          },
          "ForAllValues:StringEquals": {
              "aws:TagKeys": "purpose"
          }
       }
    }
  ]
}
```

------

Para no permitir ninguna etiqueta llamada al crear para RunInstances



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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

Permitir solo etiquetas específicas para spot-instances-request. La incoherencia sorpresa número 2 entra en juego aquí. En circunstancias normales, no especificar ninguna etiqueta dará como resultado No autenticado. En el caso de spot-instances-request, esta política no se evaluará si no hay etiquetas spot-instances-request, por lo que una solicitud Subasta en ejecución sin etiqueta tendrá éxito. 

### Etiquetas en una plantilla de lanzamiento
<a name="iam-example-tags-launch-template"></a>

En el siguiente ejemplo, los usuarios pueden lanzar instancias, pero solo si usan una plantilla de lanzamiento específica (`lt-09477bcd97b0d310e`). La clave de condición `ec2:IsLaunchTemplateResource` evita que los usuarios invaliden cualquiera de los recursos especificados en la plantilla de lanzamiento. La segunda parte de la instrucción permite a los usuarios etiquetar instancias en el momento de la creación — Esta parte es necesaria si se especifican las etiquetas para la instancia en la plantilla de lanzamiento.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

### GPU elásticas
<a name="iam-example-runinstances-egpu"></a>

En la siguiente política, los usuarios pueden iniciar una instancia y especificar la GPU elástica que se va a asociar a la instancia. Los usuarios pueden iniciar instancias en cualquier región, pero solo pueden conectar una GPU elástica durante un lanzamiento en la región `us-east-2`. 

La clave de condición `ec2:ElasticGpuType` garantiza que las instancias usen el tipo de GPU elástico `eg1.medium` o `eg1.large`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
             {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:111122223333:elastic-gpu/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-2",
                    "ec2:ElasticGpuType": [
                        "eg1.medium",
                        "eg1.large"
                    ]
                }  
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:111122223333:network-interface/*",
                "arn:aws:ec2:*:111122223333:instance/*",
                "arn:aws:ec2:*:111122223333:subnet/*",
                "arn:aws:ec2:*:111122223333:volume/*",
                "arn:aws:ec2:*:111122223333:key-pair/*",
                "arn:aws:ec2:*:111122223333:security-group/*"
            ]
        }
    ]
}
```

------

### Plantillas de lanzamiento
<a name="iam-example-runinstances-launch-templates"></a>

En el siguiente ejemplo, los usuarios pueden lanzar instancias, pero solo si usan una plantilla de lanzamiento específica (`lt-09477bcd97b0d310e`). Los usuarios pueden omitir parámetros de la plantilla de lanzamiento al especificarlos en la acción `RunInstances`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e" 
          }
       }
    }
  ]
}
```

------

En este ejemplo, los usuarios pueden iniciar instancias, pero solo si usan una plantilla de lanzamiento. La política usa la clave de condición `ec2:IsLaunchTemplateResource` para evitar que los usuarios invaliden cualquiera de los ARN preexistentes de la plantilla de lanzamiento.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    }
  ]
}
```

------

En el siguiente ejemplo, la política permite a los usuarios iniciar instancias, pero solo si usan una plantilla de lanzamiento. Los usuarios no pueden omitir los parámetros de subred y de interfaz de red de la solicitud; estos parámetros solo pueden especificarse en la plantilla de lanzamiento. La primera parte de la instrucción utiliza el elemento [NotResource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html) para permitir todos los demás recursos, excepto las subredes y las interfaces de red. La segunda parte de la instrucción permite los recursos de subred y de interfaz de red, pero solo si provienen de la plantilla de lanzamiento.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "NotResource": ["arn:aws:ec2:us-east-1:111122223333:subnet/*",
                      "arn:aws:ec2:us-east-1:111122223333:network-interface/*" ],
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          }
       }
    },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": ["arn:aws:ec2:us-east-1:111122223333:subnet/*",
                   "arn:aws:ec2:us-east-1:111122223333:network-interface/*" ],
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    }
  ]
}
```

------

En el siguiente ejemplo, se le permite a los usuarios iniciar instancias solo si usan una plantilla de lanzamiento que contenga la etiqueta `Purpose=Webservers`. Los usuarios no pueden omitir ninguno de los parámetros de la plantilla de lanzamiento en la acción `RunInstances`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "NotResource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
         "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
       "StringEquals": {
           "aws:ResourceTag/Purpose": "Webservers" 
        }
       }
     }
  ]
}
```

------

## Trabajar con Instancias de spot
<a name="iam-example-spot-instances"></a>

Puede utilizar la acción RunInstances para crear solicitudes de instancias de spot y etiquetarlas durante la creación. El recurso que se debe especificar para RunInstances es `spot-instances-request`.

El recurso `spot-instances-request` se evalúa en la política de IAM de la siguiente manera:
+ Si no etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 no evalúa el recurso `spot-instances-request` en la instrucción RunInstances.
+ Si etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 evalúa el recurso `spot-instances-request` en la instrucción RunInstances.

Por lo tanto, para el recurso `spot-instances-request`, se aplican las siguientes reglas a la política de IAM:
+ Si utiliza RunInstances para crear una solicitud de instancia de spot y no tiene la intención de etiquetar dicha solicitud durante la creación, no es necesario que permita explícitamente el recurso `spot-instances-request`; la llamada se realizará correctamente.
+ Si utiliza RunInstances para crear una solicitud de instancia de spot y tiene la intención de etiquetar dicha solicitud durante la creación, debe incluir el recurso `spot-instances-request` en la instrucción de permiso de RunInstances; de lo contrario, la llamada devolverá un error.
+ Si utiliza RunInstances para crear una solicitud de instancia de spot y tiene la intención de etiquetar dicha solicitud durante la creación, debe especificar el recurso `spot-instances-request` o incluir el comodín `*` en la instrucción de permiso de CreateTags; de lo contrario, la llamada devolverá un error. 

Puede solicitar Instancias de spot mediante RunInstances o RequestSpotInstances. Las siguientes políticas de IAM de ejemplo siguientes solo se aplican cuando se solicita Instancias de spot mediante RunInstances.

**Ejemplo: solicitud de Instancias de spot mediante RunInstances**

La siguiente política permite a los usuarios solicitar Instancias de spot mediante la acción RunInstances. El recurso `spot-instances-request`, creado por RunInstances, solicita Instancias de spot.

**nota**  
Si va a utilizar RunInstances para crear solicitudes de instancias de spot, puede omitir `spot-instances-request` de la lista `Resource` si no tiene la intención de etiquetar las solicitudes de instancias de spot durante la creación. Esto se debe a que Amazon EC2 no evalúa el recurso `spot-instances-request` en la instrucción RunInstances si la solicitud de instancia de spot no se etiqueta durante la creación.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        }
    ]
}
```

------

**aviso**  
**NO ADMITIDO: ejemplo: denegar permiso a los usuarios para solicitar Instancias de spot utilizando RunInstances**  
No se admite la política siguiente para el recurso `spot-instances-request`.  
La siguiente política tiene por objeto conceder a los usuarios el permiso para iniciar Instancias bajo demanda, pero denegar a los usuarios el permiso para solicitar Instancias de spot. El recurso `spot-instances-request`, creado por RunInstances, es el recurso que solicita Instancias de spot. La segunda instrucción tiene por objeto denegar la acción RunInstances para el recurso `spot-instances-request`. Sin embargo, no se admite esta condición porque Amazon EC2 no evalúa el recurso `spot-instances-request` en la instrucción RunInstances si la solicitud de instancia de spot no se etiqueta durante la creación.  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*"
            ]
        },
        {
            "Sid": "DenySpotInstancesRequestsNOTSUPPORTEDDONOTUSE",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
        }
    ]
}
```

**Ejemplo: etiquetar solicitudes de instancias de spot durante la creación**

La siguiente política permite a los usuarios etiquetar todos los recursos que se crean durante el lanzamiento de la instancia. La primera instrucción permite a RunInstances crear los recursos enumerados. El recurso `spot-instances-request`, creado por RunInstances, es el recurso que solicita Instancias de spot. La segunda instrucción proporciona un comodín `*` para permitir que se etiqueten todos los recursos cuando se crean durante el lanzamiento de la instancia.

**nota**  
Si etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 evalúa el recurso `spot-instances-request` en la instrucción RunInstances. Por lo tanto, debe permitir explícitamente el recurso `spot-instances-request` para la acción RunInstances; de lo contrario, la llamada devolverá un error.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

**Ejemplo: denegar el etiquetado durante la creación para solicitudes de instancias de spot**

La política siguiente deniega a los usuarios el permiso para etiquetar los recursos que se crean durante el lanzamiento de la instancia.

La primera instrucción permite a RunInstances crear los recursos enumerados. El recurso `spot-instances-request`, creado por RunInstances, es el recurso que solicita Instancias de spot. La segunda instrucción proporciona un comodín `*` para denegar todos los recursos que se etiquetan cuando se crean durante el lanzamiento de la instancia. Si `spot-instances-request` o cualquier otro recurso se etiqueta durante la creación, la llamada RunInstances devolverá un error.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "DenyTagResources",
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

**aviso**  
**NO ADMITIDO – Ejemplo: permitir la creación de una solicitud de instancia de spot solo si se le asigna una etiqueta específica**  
No se admite la política siguiente para el recurso `spot-instances-request`.  
La siguiente política tiene por objeto otorgar a RunInstances el permiso para crear una solicitud de instancia de spot solo si la solicitud se etiqueta con una etiqueta específica.   
La primera instrucción permite a RunInstances crear los recursos enumerados.  
La segunda instrucción tiene por objeto otorgar a los usuarios el permiso para crear una solicitud de instancia de spot solo si la solicitud tiene la etiqueta `environment=production`. Si esta condición se aplica a los demás recursos creados por RunInstances, si no se especifica ninguna etiqueta se producirá un error `Unauthenticated`. Sin embargo, si no se especifica ninguna etiqueta para la solicitud de instancia de spot, Amazon EC2 no evalúa el recurso `spot-instances-request` en la instrucción RunInstances, lo que da como resultado que RunInstances cree solicitudes de instancias de spot no etiquetadas.  
Tenga en cuenta que especificar una etiqueta que no sea `environment=production` da como resultado un error `Unauthenticated`, ya que si un usuario etiqueta una solicitud de instancia de spot, Amazon EC2 evalúa el recurso `spot-instances-request` en la instrucción RunInstances.  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*"
            ]
        },
        {
            "Sid": "RequestSpotInstancesOnlyIfTagIsEnvironmentProductionNOTSUPPORTEDDONOTUSE",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }

    ]
}
```

**Ejemplo: denegar la creación de una solicitud de instancia de spot si se le asigna una etiqueta específica**

La siguiente política deniega a RunInstances el permiso para crear una solicitud de instancia de spot si la solicitud está etiquetada con `environment=production`. 

La primera instrucción permite a RunInstances crear los recursos enumerados.

La segunda instrucción deniega a los usuarios el permiso para crear una solicitud de instancia de spot si la solicitud tiene la etiqueta `environment=production`. Si `environment=production` se especifica como etiqueta, se produce un error `Unauthenticated`. Especificar otras etiquetas o no especificar ninguna etiqueta dará como resultado la creación de una solicitud de instancia de spot.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "DenySpotInstancesRequests",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

## Ejemplo: Trabajar con Instancias reservadas
<a name="iam-example-reservedinstances"></a>

La siguiente política da a los usuarios permiso para ver, modificar y adquirir Instancias reservadas en su cuenta.

No se pueden establecer permisos de nivel de recursos para Instancias reservadas individuales. Esta política significa que los usuarios tienen acceso a todas las Instancias reservadas de la cuenta.

El elemento `Resource` utiliza un comodín \$1 para indicar que los usuarios pueden especificar todos los recursos con la acción; en dicho caso, pueden generar una lista y modificar todas las Instancias reservadas de la cuenta. También pueden adquirir Instancias reservadas utilizando las credenciales de cuenta. El carácter comodín \$1 también es necesario en los casos en los que la acción de la API no admita permisos de nivel de recursos.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeReservedInstances", 
        "ec2:ModifyReservedInstances",
        "ec2:PurchaseReservedInstancesOffering", 
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeReservedInstancesOfferings"
      ],
      "Resource": "*"
    }
   ]
}
```

------

Para permitir a los usuarios ver y modificar las Instancias reservadas de su cuenta, pero no adquirir otras Instancias reservadas nuevas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeReservedInstances", 
        "ec2:ModifyReservedInstances",
        "ec2:DescribeAvailabilityZones"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Ejemplo: Etiquetar recursos
<a name="iam-example-taggingresources"></a>

La siguiente política permite a los usuarios utilizar la acción `CreateTags` para aplicar etiquetas a una instancia solo si la etiqueta contiene la clave `environment` y el valor `production`. No se permite ninguna otra etiqueta y el usuario no puede etiquetar ningún otro tipo de recurso.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        }
    ]
}
```

------

La siguiente política permite a los usuarios etiquetar cualquier recurso etiquetable que ya tenga una etiqueta con una clave de `owner` y un valor del nombre de usuario. Asimismo, los usuarios deben especificar una etiqueta con una clave de `anycompany:environment-type` y un valor que sea `test` o `prod` en la solicitud. Los usuarios pueden especificar más etiquetas en la solicitud.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/anycompany:environment-type": ["test","prod"],
                    "aws:ResourceTag/owner": "${aws:username}"
                } 
            }
        }
    ]
}
```

------

Puede crear una política de IAM que permita a los usuarios eliminar etiquetas específicas de un recurso. Por ejemplo, la siguiente política permite a los usuarios eliminar etiquetas de un volumen si las claves de etiqueta especificadas en la solicitud son `environment` o `cost-center`. Se puede especificar cualquier valor para la etiqueta, pero la clave de etiqueta debe coincidir con una de las dos claves indicadas.

**nota**  
Si elimina un recurso, también se eliminarán todas las etiquetas que este tenga asociadas. Los usuarios no necesitan permisos para utilizar la acción `ec2:DeleteTags` para eliminar un recurso que tenga etiquetas; solo los necesitan para realizar la acción de eliminación.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Allow",
      "Action": "ec2:DeleteTags",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["environment","cost-center"]
        }
      }
    }
  ]
}
```

------

Esta política permite a los usuarios eliminar únicamente la etiqueta `environment=prod` en cualquier recurso solo si el recurso ya está etiquetado con la clave de `owner` y un valor del nombre de usuario. Los usuarios no pueden eliminar ninguna etiqueta de recurso más.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": "prod",
          "aws:ResourceTag/owner": "${aws:username}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["environment"]
        }
      }
    }
  ]
}
```

------

## Ejemplo: Trabajar con roles de IAM
<a name="iam-example-iam-roles"></a>

La siguiente política permite a los usuarios asociar, sustituir y desasociar un rol de IAM a instancias que tienen la etiqueta `department=test`. Para sustituir o desasociar un rol de IAM, se necesita un ID de asociación, por lo que la política también concede a los usuarios permiso para utilizar la acción `ec2:DescribeIamInstanceProfileAssociations`. 

Los usuarios deben tener permiso para utilizar la acción `iam:PassRole` con objeto de poder pasar el rol a la instancia. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateIamInstanceProfile",
        "ec2:ReplaceIamInstanceProfileAssociation",
        "ec2:DisassociateIamInstanceProfile"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/department":"test"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:DescribeIamInstanceProfileAssociations",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/DevTeam*"
    }
  ]
}
```

------

La siguiente política permite a los usuarios adjuntar o reemplazar un rol de IAM para cualquier instancia. Los usuarios solo pueden asociar o sustituir roles de IAM con nombres que empiecen por `TestRole-`. En el caso de la acción `iam:PassRole`, asegúrese de especificar el nombre del rol de IAM y no el perfil de instancia (si los nombres son diferentes). Para obtener más información, consulte [Perfiles de instancias](iam-roles-for-amazon-ec2.md#ec2-instance-profile).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssociateIamInstanceProfile",
                "ec2:ReplaceIamInstanceProfileAssociation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeIamInstanceProfileAssociations",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/TestRole-*"
        }
    ]
}
```

------

## Ejemplo: Trabajar con tablas de ruteo
<a name="iam-example-route-tables"></a>

La siguiente política permite a los usuarios añadir, eliminar y reemplazar rutas únicamente para las tablas de ruteo que están asociadas a la VPC `vpc-ec43eb89`. Para especificar una VPC para la clave de condición `ec2:Vpc`, debe especificar el ARN completo de la VPC.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteRoute",
                "ec2:CreateRoute",
                "ec2:ReplaceRoute"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:route-table/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-ec43eb89"
                }
            }
        }
    ]
}
```

------

## Ejemplo: Permitir que una instancia específica vea los recursos de otros servicios de AWS
<a name="iam-example-source-instance"></a>

El siguiente es un ejemplo de una política que puede asociar a un rol de IAM. La política permite que una instancia vea los recursos de diversos servicios de AWS. Usa la clave de condición `ec2:SourceInstanceARN` para especificar que la instancia desde la que se realiza la solicitud debe ser `i-093452212644b0dd6`. Si el mismo rol de IAM está asociado a otra instancia, la otra instancia no puede realizar ninguna de estas acciones.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVolumes",
                "s3:ListAllMyBuckets",
                "dynamodb:ListTables",
                "rds:DescribeDBInstances"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "ArnEquals": {
                    "ec2:SourceInstanceARN": "arn:aws:ec2:us-east-1:111122223333:instance/i-093452212644b0dd6"
                }
            }
        }
    ]
}
```

------

## Ejemplo: Trabajar con plantillas de lanzamiento
<a name="iam-example-launch-templates"></a>

La siguiente política permite a los usuarios crear una versión de una plantilla de lanzamiento y modificar una plantilla de lanzamiento, pero solo para la plantilla de lanzamien (`lt-09477bcd97b0d3abc`). Los usuarios no pueden trabajar con otras plantillas de lanzamiento.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
      "Action": [
        "ec2:CreateLaunchTemplateVersion",
        "ec2:ModifyLaunchTemplate"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d3abc"
    }
  ]
}
```

------

La siguiente política permite a los usuarios eliminar cualquier plantilla de lanzamiento o versión de la misma, siempre que contenga la etiqueta `Purpose`=`Testing`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Action": [
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteLaunchTemplateVersions"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Purpose": "Testing"
        }
      }
    }
  ]
}
```

------

## Trabajar con metadatos de instancias
<a name="iam-example-instance-metadata"></a>

Las políticas siguientes garantizan que los usuarios solo puedan recuperar [metadatos de instancias](ec2-instance-metadata.md) mediante Servicio de metadatos de instancia, versión 2 (IMDSv2). Puede combinar las cuatro políticas siguientes en una sola política con cuatro instrucciones. Cuando se combina como una sola política, puede utilizar la política como una política de control de servicios (SCP). Puede funcionar igual de bien que una política de *denegación* que se aplique a una política de IAM existente (quitando y limitando los permisos existentes) o como una SCP que se aplique globalmente a una cuenta, una unidad organizativa (UO) o una organización completa.

**nota**  
Las siguientes políticas de opciones de metadatos de RunInstances se deben utilizar junto con una política que conceda a la entidad principal permisos para iniciar una instancia con RunInstances. Si la entidad principal no tiene permisos RunInstances, no podrá iniciar una instancia. Para obtener más información, consulte las políticas en [Trabajar con instancias](#iam-example-instances) y [Iniciar instancias (RunInstances)](#iam-example-runinstances).

**importante**  
Si utiliza grupos de Auto Scaling y necesita exigir el uso de IMDSv2 en todas las instancias nuevas, los grupos de Auto Scaling deben usar *plantillas de lanzamiento*.  
Cuando un grupo de Auto Scaling utiliza una plantilla de lanzamiento, los permisos `ec2:RunInstances` de la entidad principal de IAM se comprueban cuando se crea un nuevo grupo de Auto Scaling. También se comprueban cuando se actualiza un grupo de Auto Scaling existente para utilizar una nueva plantilla de lanzamiento o una nueva versión de una plantilla de lanzamiento.  
Las restricciones sobre el uso de IMDSv1 en entidades principales de IAM para `RunInstances` solo se comprueban cuando se crea o actualiza un grupo de Auto Scaling que utiliza una plantilla de lanzamiento. Para un grupo de Auto Scaling configurado para usar la plantilla de lanzamiento `Latest` o `Default`, los permisos no se comprueban cuando se crea una nueva versión de la plantilla de lanzamiento. Para que se comprueben los permisos, debe configurar el grupo de Auto Scaling para que utilice una *versión específica* de la plantilla de lanzamiento.  
Deshabilite el uso de configuraciones de lanzamiento para todas las cuentas de la organización mediante políticas de control de servicios (SCP) o límites de permisos de IAM para las nuevas entidades principales que se crean. Para las entidades principales de IAM existentes con permisos de grupos de Auto Scaling, actualice sus políticas asociadas con esta clave de condición. Para deshabilitar el uso de configuraciones de lanzamiento, cree o modifique la SCP, el límite de permisos o la política de IAM correspondientes con la clave de condición `"autoscaling:LaunchConfigurationName"` con el valor especificado como `null`.
Para las nuevas plantillas de lanzamiento, configure las opciones de metadatos de la instancia en la plantilla de lanzamiento. Para las plantillas de lanzamiento existentes, cree una nueva versión de la plantilla de lanzamiento y configure las opciones de metadatos de la instancia en la nueva versión.
En la política que otorga a cualquier entidad principal el permiso para usar una plantilla de lanzamiento, restrinja la asociación de `$latest` y `$default` especificando `"autoscaling:LaunchTemplateVersionSpecified": "true"`. Al restringir el uso a una versión específica de una plantilla de lanzamiento, puede asegurarse de que las nuevas instancias se iniciarán con la versión en la que están configuradas las opciones de metadatos de la instancia. Para obtener más información, consulte [LaunchTemplateSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_LaunchTemplateSpecification.html) en la *Referencia de la API de Amazon EC2 Auto Scaling*, en concreto el parámetro `Version`.
Para un grupo de Auto Scaling que utilice una configuración de lanzamiento, reemplace la configuración de lanzamiento por una plantilla de lanzamiento. Para obtener más información, consulte [Migración de los grupos de escalado automático a plantillas de inicialización](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-to-launch-templates.html) en la *Guía del usuario de Amazon EC2 Auto Scaling*.
Para un grupo de Auto Scaling que utilice una plantilla de lanzamiento, asegúrese de que utiliza una nueva plantilla de lanzamiento con las opciones de metadatos de la instancia configuradas o una nueva versión de la plantilla de lanzamiento actual con las opciones de metadatos de la instancia configuradas. Para obtener más información, consulte [update-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html).

**Topics**
+ [

### Requerir el uso de IMDSv2
](#iam-example-instance-metadata-requireIMDSv2)
+ [

### Denegar la exclusión voluntaria de IMDSv2
](#iam-example-instance-metadata-denyoptoutIMDSv2)
+ [

### Especificar el límite máximo de saltos
](#iam-example-instance-metadata-maxHopLimit)
+ [

### Limitar quién puede modificar las opciones de metadatos de instancia
](#iam-example-instance-metadata-limit-modify-IMDS-options)
+ [

### Exigir que las credenciales de rol se recuperen de IMDSv2
](#iam-example-instance-metadata-require-roles-to-use-IMDSv2-credentials)

### Requerir el uso de IMDSv2
<a name="iam-example-instance-metadata-requireIMDSv2"></a>

La siguiente política especifica que no se puede llamar a la API RunInstances a menos que la instancia también requiera el uso de IMDSv2 (indicado por `"ec2:MetadataHttpTokens": "required"`). Si no especifica que la instancia requiere IMDSv2, obtendrá un error `UnauthorizedOperation` cuando llame a la API RunInstances.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireImdsV2",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "ec2:MetadataHttpTokens": "required"
                }
            }
        }
    ]
}
```

------

### Denegar la exclusión voluntaria de IMDSv2
<a name="iam-example-instance-metadata-denyoptoutIMDSv2"></a>

La siguiente política especifica que no se puede llamar a la API de `ModifyInstanceMetadataOptions` y se permite la opción IMDSv1 o IMDSv2. Si llama a la API de `ModifyInstanceMetadataOptions`, el atributo `HttpTokens` debe estar establecido en `required`. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyIMDSv1HttpTokensModification",
        "Effect": "Deny",
        "Action": "ec2:ModifyInstanceMetadataOptions",
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
            "StringNotEquals": {
                "ec2:Attribute/HttpTokens": "required"
            },
            "Null": {
                "ec2:Attribute/HttpTokens": false
            }
        }
    }]
}
```

------

### Especificar el límite máximo de saltos
<a name="iam-example-instance-metadata-maxHopLimit"></a>

La siguiente política especifica que no se puede llamar a la API RunInstances a menos que también especifique un límite de saltos y que el límite de saltos no sea superior a 3. Si no se cumplen estos requisitos, aparece un error `UnauthorizedOperation` al llamar a la API RunInstances.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "MaxImdsHopLimit",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "NumericGreaterThan": {
                    "ec2:MetadataHttpPutResponseHopLimit": "3"
                }
            }
        }
    ]
}
```

------

### Limitar quién puede modificar las opciones de metadatos de instancia
<a name="iam-example-instance-metadata-limit-modify-IMDS-options"></a>

La siguiente política solo permite que los usuarios con el rol `ec2-imds-admins` hagan cambios en las opciones de metadatos de instancia. Si alguna entidad principal que no sea el rol `ec2-imds-admins` intenta llamar a la API ModifyInstanceMetadataOptions, aparecerá un error `UnauthorizedOperation`. Esta instrucción podría utilizarse para controlar el uso de la API ModifyInstanceMetadataOptions; actualmente no hay controles de acceso detallados (condiciones) para la API ModifyInstanceMetadataOptions.

### Exigir que las credenciales de rol se recuperen de IMDSv2
<a name="iam-example-instance-metadata-require-roles-to-use-IMDSv2-credentials"></a>

La siguiente política especifica que si esta política se aplica a un rol y el servicio EC2 asume el rol y las credenciales resultantes se utilizan para firmar una solicitud, la solicitud debe estar firmada por las credenciales de rol EC2 recuperadas de IMDSv2. De lo contrario, todas sus llamadas a la API obtendrán un error `UnauthorizedOperation`. Esta instrucción/política se puede aplicar de manera general porque, si la solicitud no está firmada por las credenciales del rol de EC2, no tiene ningún efecto.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

## Uso de volúmenes e instantáneas de Amazon EBS
<a name="iam-example-ebs"></a>

Para obtener ejemplos de políticas para trabajar con volúmenes e instantáneas de Amazon EBS, consulte [Ejemplos de políticas basadas en identidad para Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/security_iam_id-based-policy-examples.html).

# Políticas de ejemplo para controlar el acceso a la consola de Amazon EC2
<a name="iam-policies-ec2-console"></a>

Puede utilizar las políticas de IAM para conceder a los usuarios los permisos necesarios para trabajar con Amazon EC2. Para obtener instrucciones paso a paso, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

La consola utiliza acciones de API adicionales para sus características, por lo que es posible que estas políticas no funcionen como es debido. Por ejemplo, un usuario que tenga permiso para utilizar únicamente la acción de API `DescribeVolumes` obtendrá errores cuando intente ver volúmenes en la consola. En esta sección se muestran políticas que permiten a los usuarios utilizar partes específicas de la consola. Para obtener más información acerca de cómo crear políticas para la consola de Amazon EC2, consulte la siguiente publicación del Blog de seguridad de AWS: [Granting Users Permission to Work in the Amazon EC2 Console](https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/).

Los siguientes ejemplos muestran instrucciones de política que puede utilizar para conceder permisos a los usuarios para utilizar Amazon EC2. Reemplace cada *marcador de posición de entrada del usuario* con información propia. Estas políticas están diseñadas para solicitudes que se realizan con la Consola de administración de AWS. La consola de Amazon EC2 puede llamar a varias acciones de API para mostrar un único recurso y puede ser que no sea evidente hasta que el usuario intente realizar una tarea y la consola muestre un error. Para obtener más información, consulte la siguiente entrada del blog de seguridad de AWS: [Concesión de permisos a los usuarios para trabajar en la consola de Amazon EC2](https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/).

**Topics**
+ [Acceso de solo lectura](#ex-read-only)
+ [Uso del asistente de inicialización de instancias de EC2](#ex-launch-wizard)
+ [Trabajar con grupos de seguridad](#ex-security-groups)
+ [Trabajar con direcciones IP elásticas](#ex-eip)
+ [Trabajar con Instancias reservadas](#ex-reservedinstances)

Para ayudarlo a establecer qué acciones de API son necesarias para realizar tareas en la consola, puede utilizar un servicio que registre llamadas, como AWS CloudTrail. Si su política no concede permiso para crear o modificar un recurso concreto, la consola muestra un mensaje codificado con información de diagnóstico. Puede descodificar el mensaje mediante la acción [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html) de la API para AWS STS o el comando [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html) de la AWS CLI.

## Ejemplo: Acceso de solo lectura
<a name="ex-read-only"></a>

Para permitir a los usuarios ver todos los recursos de la consola de Amazon EC2, puede utilizar la política del ejemplo siguiente: [Ejemplo: Acceso de solo lectura](ExamplePolicies_EC2.md#iam-example-read-only). Los usuarios no pueden realizar ninguna acción en dichos recursos ni crear recursos nuevos a menos que otra instrucción les conceda permiso para ello.

**Ver instancias, AMI e instantáneas**

Como alternativa, puede proporcionar acceso de solo lectura a un subconjunto de recursos. Para ello, reemplace el carácter comodín \$1 en la acción de API `ec2:Describe` con acciones `ec2:Describe` específicas para cada recurso. La siguiente política permite a los usuarios ver todas las instancias, AMI e instantáneas de la consola de Amazon EC2. La acción `ec2:DescribeTags` permite a los usuarios ver AMI públicas. La consola exige la información de etiquetado para mostrar las AMI públicas; sin embargo, puede eliminar esta acción para permitir que los usuarios vean únicamente AMI privadas.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances", 
         "ec2:DescribeImages",
         "ec2:DescribeTags", 
         "ec2:DescribeSnapshots"
      ],
      "Resource": "*"
   }
   ]
}
```

------

**nota**  
Las acciones de API `ec2:Describe*` de Amazon EC2 no admiten los permisos de nivel de recursos, por lo que no puede controlar qué recursos individuales pueden ver los usuarios en la consola. Por lo tanto, el carácter comodín \$1 es necesario en el elemento `Resource` de la instrucción anterior. Para obtener más información acerca de qué ARN puede usar con qué acciones de la API de Amazon EC2, consulte [Acciones, recursos y claves de condición para Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

**Ver instancias y métricas de CloudWatch**

La siguiente política permite a los usuarios ver instancias en la consola de Amazon EC2; así como alarmas y métricas de CloudWatch en la pestaña **Monitorización** de la página **Instancia**. La consola de Amazon EC2 utiliza la API de CloudWatch para visualizar las alarmas y las métricas, por lo que debe conceder a los usuarios permiso para utilizar las acciones `cloudwatch:DescribeAlarms`, `cloudwatch:DescribeAlarmsForMetric`, `cloudwatch:ListMetrics`, `cloudwatch:GetMetricStatistics` y `cloudwatch:GetMetricData`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances",
         "ec2:DescribeInstanceTypes",
         "cloudwatch:DescribeAlarms",
         "cloudwatch:DescribeAlarmsForMetric",
         "cloudwatch:ListMetrics",
         "cloudwatch:GetMetricStatistics",
         "cloudwatch:GetMetricData"
      ],
      "Resource": "*"
   }
   ]
}
```

------

## Ejemplo: uso del asistente de inicialización de instancias de EC2
<a name="ex-launch-wizard"></a>

El asistente de inicialización de instancias de Amazon EC2 consiste en una pantalla con opciones para configurar y iniciar una instancia. Su política debe incluir un permiso para utilizar acciones de la API que permitan a los usuarios trabajar con opciones del asistente. Si su política no incluye dicho permiso, algunos elementos del asistente no se podrán cargar correctamente y los usuarios no podrán completar el lanzamiento.

**Acceso al asistente básico de instancias de lanzamiento**

Para completar correctamente un lanzamiento, debe darse a los usuarios permiso para utilizar la acción de API `ec2:RunInstances` y, como mínimo, las acciones de API siguientes:
+ `ec2:DescribeImages`: ver y seleccionar una AMI.
+ `ec2:DescribeInstanceTypes`: permite ver y seleccionar un tipo de instancia.
+ `ec2:DescribeVpcs`: ver las opciones de red disponibles.
+ `ec2:DescribeSubnets`: ver todas las subredes disponibles de la VPC elegida. 
+ `ec2:DescribeSecurityGroups` o `ec2:CreateSecurityGroup`: para ver y seleccionar un grupo de seguridad existente o para crear uno nuevo. 
+ `ec2:DescribeKeyPairs` o `ec2:CreateKeyPair`: seleccionar un par de claves existente o para crear uno nuevo.
+ `ec2:AuthorizeSecurityGroupIngress`: añadir reglas de entrada.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:CreateSecurityGroup",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateKeyPair"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "*"
        }
    ]
}
```

------

Puede añadir acciones de API a su política para proporcionar más opciones para los usuarios; por ejemplo:
+ `ec2:DescribeAvailabilityZones`: ver y seleccionar una zona de disponibilidad específica.
+ `ec2:DescribeNetworkInterfaces`: ver y seleccionar interfaces de red existentes para la subred seleccionada.
+ Para añadir reglas de salida a grupos de seguridad de VPC, debe conceder permiso a los usuarios para utilizar la acción de API `ec2:AuthorizeSecurityGroupEgress`. Para modificar o eliminar reglas ya existentes, debe conceder permiso a los usuarios para utilizar la acción de API `ec2:RevokeSecurityGroup*` pertinente.
+ `ec2:CreateTags`: etiquetar los recursos que crea `RunInstances`. Para obtener más información, consulte [Conceder permisos para etiquetar recursos de Amazon EC2 durante la creación](supported-iam-actions-tagging.md). Si los usuarios no tienen permiso para utilizar esta acción e intentan aplicar etiquetas en la página de etiquetado del asistente de inicialización de instancias, el lanzamiento generará un error.
**importante**  
Especificar un valor en **Nombre** al iniciar una instancia crea una etiqueta y requiere la acción `ec2:CreateTags`. Tenga cuidado al conceder a los usuarios permiso para usar la acción `ec2:CreateTags`, ya que ello limita su capacidad de usar la clave de condición `aws:ResourceTag` para restringir el uso de otros recursos. Si concede permiso a los usuarios para usar la acción `ec2:CreateTags`, pueden cambiar la etiqueta de un recurso para omitir esas restricciones. Para obtener más información, consulte [Controle el acceso mediante acceso basado en atributos](iam-policies-for-amazon-ec2.md#control-access-with-tags).
+ Para utilizar parámetros de Systems Manager al seleccionar una AMI, debe agregar `ssm:DescribeParameters` y `ssm:GetParameters` a la política. `ssm:DescribeParameters` concede a los usuarios el permiso para ver y seleccionar parámetros de Systems Manager. `ssm:GetParameters` concede a los usuarios el permiso para obtener los valores de los parámetros de Systems Manager. También puede restringir el acceso a parámetros de Systems Manager específicos. Para obtener más información, vea **Restringir el acceso a parámetros específicos de Systems Manager** más adelante en esta sección.

Actualmente, las acciones `Describe*` de la API de Amazon EC2 no admiten los permisos de nivel de recursos, por lo que no puede restringir qué recursos individuales pueden ver los usuarios en el asistente de inicialización de instancias. Sin embargo, puede aplicar permisos de nivel de recursos en la acción de API `ec2:RunInstances` para restringir qué recursos pueden utilizar los usuarios para iniciar una instancia. El lanzamiento generará un error si los usuarios seleccionan opciones sobre las que no tienen permiso de uso. 

**Limitar el acceso a un tipo de instancia, subred y región específicos**

La política siguiente permite a los usuarios iniciar instancias `t2.micro` utilizando AMI propiedad de Amazon y únicamente en una subred concreta (`subnet-1a2b3c4d`). Los usuarios solo pueden realizar inicios en la región especificada. Si seleccionan otra región u otro tipo de instancia, AMI o subred en el asistente de inicialización de instancias, el lanzamiento generará un error. 

La primera instrucción concede a los usuarios permiso para ver las opciones del asistente de inicialización de instancias, tal y como se demuestra en el ejemplo anterior. La segunda instrucción concede a los usuarios permiso para utilizar recursos de la interfaz de red, el volumen, el par de claves, el grupo de seguridad y la subred para la acción `ec2:RunInstances`, necesarios para iniciar una instancia en una VPC. Para obtener información sobre cómo usar la acción `ec2:RunInstances`, consulte [Iniciar instancias (RunInstances)](ExamplePolicies_EC2.md#iam-example-runinstances). La tercera y la cuarta instrucción conceden a los usuarios permiso para utilizar la instancia y los recursos de la AMI respectivamente, pero solo si la instancia es una instancia `t2.micro` y solo si la AMI es propiedad de Amazon o de determinados socios verificados y de confianza.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances",
         "ec2:DescribeImages",
         "ec2:DescribeInstanceTypes",
         "ec2:DescribeKeyPairs", 
         "ec2:CreateKeyPair", 
         "ec2:DescribeVpcs", 
         "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", 
         "ec2:CreateSecurityGroup", 
         "ec2:AuthorizeSecurityGroupIngress"
	  ],
	  "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action":"ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-2:111122223333:volume/*",
         "arn:aws:ec2:us-east-2:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-2:111122223333:security-group/*",
         "arn:aws:ec2:us-east-2:111122223333:subnet/subnet-1a2b3c4d"
      ]
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:InstanceType": "t2.micro"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
            "arn:aws:ec2:us-east-2::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "amazon"
         }
      }
   }
   ]
}
```

------

**Restringir el acceso a parámetros específicos de Systems Manager**

La siguiente política concede acceso para utilizar parámetros de Systems Manager con un nombre específico.

La primera instrucción concede a los usuarios permiso para ver parámetros de Systems Manager al seleccionar una AMI en el asistente de lanzamiento de instancias. La segunda instrucción concede a los usuarios el permiso para utilizar solo parámetros con nombre `prod-*`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ssm:DescribeParameters"
      ],
      "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action": [
         "ssm:GetParameters"
      ],
     "Resource": "arn:aws:ssm:us-east-2:123456123456:parameter/prod-*"
   }
   ]
}
```

------

## Ejemplo: Trabajar con grupos de seguridad
<a name="ex-security-groups"></a>

**Ver los grupos de seguridad y añadir y eliminar reglas**

La siguiente política concede a los usuarios permiso para ver grupos de seguridad en la consola de Amazon EC2, así como para agregar y quitar reglas de entrada y salida y enumerar y modificar las descripciones de las reglas de los grupos de seguridad existentes que tengan la etiqueta `Department=Test`.

En la primera instrucción, la acción `ec2:DescribeTags` permite a los usuarios ver etiquetas en la consola, lo que les facilita la identificación de los grupos de seguridad sobre los que tienen permiso de modificación.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeSecurityGroups", 
         "ec2:DescribeSecurityGroupRules", 
         "ec2:DescribeTags"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:AuthorizeSecurityGroupIngress", 
         "ec2:RevokeSecurityGroupIngress", 
         "ec2:AuthorizeSecurityGroupEgress", 
         "ec2:RevokeSecurityGroupEgress", 
         "ec2:ModifySecurityGroupRules", 
         "ec2:UpdateSecurityGroupRuleDescriptionsIngress", 
         "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:security-group/*"
      ],
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/Department": "Test"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": [
         "ec2:ModifySecurityGroupRules"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:security-group-rule/*"
      ]
   }
]}
```

------

**Trabajar con el cuadro de diálogo Crear grupo de seguridad**

Puede crear una política que permita a los usuarios trabajar con el cuadro de diálogo **Crear grupo de seguridad** en la consola de Amazon EC2. Para utilizar este cuadro de diálogo, debe darse a los usuarios permiso para utilizar como mínimo las acciones de API siguientes:
+ `ec2:CreateSecurityGroup`: crear un nuevo grupo de seguridad. 
+ `ec2:DescribeVpcs`: ver una lista de las VPC existentes en la lista **VPC**.

Con estos permisos, los usuarios pueden crear correctamente un grupo de seguridad nuevo, pero no pueden añadirle reglas. Para trabajar con reglas en el cuadro de diálogo **Crear grupo de seguridad**, puede añadir las acciones de la API siguientes a una política:
+ `ec2:AuthorizeSecurityGroupIngress`: añadir reglas de entrada.
+ `ec2:AuthorizeSecurityGroupEgress`: añadir reglas de salida a grupos de seguridad de la VPC.
+ `ec2:RevokeSecurityGroupIngress`: modificar o eliminar reglas de entradas existentes. Esta acción es útil para permitir a los usuarios utilizar la característica **Copiar en uno nuevo** de la consola. La característica abre el cuadro de diálogo **Crear grupo de seguridad** y lo rellena con las mismas reglas que el grupo de seguridad que se seleccionó. 
+ `ec2:RevokeSecurityGroupEgress`: modificar o eliminar reglas de salida de grupos de seguridad de la VPC. Es útil para permitir a los usuarios modificar o eliminar la regla de salida predeterminada que permite todo el tráfico de salida.
+ `ec2:DeleteSecurityGroup`: responder cuando las reglas no válidas no se pueden guardar. La consola crea primero el grupo de seguridad y después añade las reglas especificadas. Si las reglas no son válidas, la acción genera un error y la consola intenta eliminar el grupo de seguridad. El usuario permanece en el cuadro de diálogo **Crear grupo de seguridad** para que se pueda corregir la regla no válida y volver a intentar crear el grupo de seguridad. Esta acción de API no es obligatoria, pero si no se concede a un usuario permiso para utilizarla y el usuario intenta crear un grupo de seguridad con reglas no válidas, el grupo de seguridad se creará sin reglas y el usuario deberá añadirlas después.
+ `ec2:UpdateSecurityGroupRuleDescriptionsIngress`: para agregar o actualizar descripciones de reglas de grupo de seguridad de entrada (entrantes).
+ `ec2:UpdateSecurityGroupRuleDescriptionsEgress`: para agregar o actualizar descripciones de reglas de grupo de seguridad de salida (salientes).
+ `ec2:ModifySecurityGroupRules`: para modificar reglas de grupo de seguridad.
+ `ec2:DescribeSecurityGroupRules`: para enumerar reglas de grupo de seguridad.

La siguiente política concede a los usuarios permiso para utilizar el cuadro de diálogo **Crear grupo de seguridad** y para crear reglas de entrada y de salida para los grupos de seguridad que están asociados a una VPC específica (`vpc-1a2b3c4d`). Los usuarios pueden crear grupos de seguridad para una VPC, pero no pueden agregarles reglas. Igualmente, los usuarios tampoco pueden añadir reglas a ningún grupo de seguridad que no esté asociado a la VPC `vpc-1a2b3c4d`. También se concede permiso a los usuarios para ver todos los grupos de seguridad de la consola. Esto facilita a los usuarios la identificación de los grupos de seguridad a los que pueden añadir reglas de entrada. Esta política también concede a los usuarios permiso para eliminar grupos de seguridad que estén asociados a la VPC `vpc-1a2b3c4d`. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeSecurityGroups", 
        "ec2:CreateSecurityGroup", 
        "ec2:DescribeVpcs"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSecurityGroup", 
        "ec2:AuthorizeSecurityGroupIngress", 
        "ec2:AuthorizeSecurityGroupEgress"
      ],
      "Resource": "arn:aws:ec2:us-east-2:111122223333:security-group/*",
      "Condition":{
         "ArnEquals": {
            "ec2:Vpc": "arn:aws:ec2:us-east-2:111122223333:vpc/vpc-1a2b3c4d"
         }
      }
    }
   ]
}
```

------

## Ejemplo: Trabajar con direcciones IP elásticas
<a name="ex-eip"></a>

Para permitir a los usuarios ver direcciones IP elásticas en la consola de Amazon EC2, debe concederles permiso para utilizar la acción `ec2:DescribeAddresses`.

Para permitir a los usuarios trabajar con direcciones IP elásticas, puede añadir las siguientes acciones a su política.
+ `ec2:AllocateAddress`: asignar una dirección IP elástica.
+ `ec2:ReleaseAddress`: liberar una dirección IP elástica.
+ `ec2:AssociateAddress`: asociar una dirección IP elástica a una instancia o una interfaz de red.
+ `ec2:DescribeNetworkInterfaces` y `ec2:DescribeInstances`: trabajar con la pantalla **Asociar dirección**. La pantalla muestra las instancias o las interfaces de red disponibles a las que se puede adjuntar una dirección IP elástica.
+ `ec2:DisassociateAddress`: desvincular una dirección IP elástica de una instancia o una interfaz de red.

La siguiente política permite a los usuarios ver, asignar y asociar direcciones IP elásticas a instancias. Los usuarios no pueden asociar direcciones IP elásticas a interfaces de red, desvincular direcciones IP elásticas ni liberarlas.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:AllocateAddress",
                "ec2:DescribeInstances",
                "ec2:AssociateAddress"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Ejemplo: Trabajar con Instancias reservadas
<a name="ex-reservedinstances"></a>

La siguiente política permite a los usuarios ver y modificar las instancias reservadas de su cuenta, así como adquirir nuevas instancias reservadas en la Consola de administración de AWS.

Esta política permite a los usuarios ver todas las Instancias reservadas, así como las Instancias bajo demanda, en la cuenta. No se pueden establecer permisos de nivel de recursos para Instancias reservadas individuales.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeReservedInstances", 
         "ec2:ModifyReservedInstances",
         "ec2:PurchaseReservedInstancesOffering", 
         "ec2:DescribeInstances",
         "ec2:DescribeInstanceTypes",
         "ec2:DescribeAvailabilityZones", 
         "ec2:DescribeReservedInstancesOfferings"
      ],
      "Resource": "*"
   }
   ]
}
```

------

La acción `ec2:DescribeAvailabilityZones` es necesaria para garantizar que la consola de Amazon EC2 pueda mostrar información sobre las zonas de disponibilidad en las que se pueden adquirir Instancias reservadas. La acción `ec2:DescribeInstances` no es obligatoria, pero permite asegurarse de que el usuario pueda ver las instancias de la cuenta y adquirir reservas para correlacionar las especificaciones correctas.

Puede ajustar las acciones de API para limitar el acceso de los usuarios; por ejemplo, si quita `ec2:DescribeInstances` y `ec2:DescribeAvailabilityZones`, el usuario tendrá acceso de solo lectura.

# Políticas administradas de AWS para Amazon EC2
<a name="security-iam-awsmanpol"></a>

Para agregar permisos a usuarios, grupos y roles, es más fácil utilizar las políticas administradas de AWS que escribirlas uno mismo. Se necesita tiempo y experiencia para [crear políticas administradas por el cliente de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) que le brinden a su equipo solo los permisos necesarios. Para comenzar a hacerlo con rapidez, puede utilizar nuestras políticas administradas de AWS. Estas políticas cubren casos de uso comunes y están disponibles en su cuenta de AWS. Para obtener más información sobre las políticas administradas de AWS, consulte [Políticas administradas de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) en la *Guía del usuario de IAM*.

Los servicios de AWS mantienen y actualizan las políticas administradas de AWS. No puede cambiar los permisos en las políticas gestionadas de AWS. En ocasiones, los servicios agregan permisos adicionales a una política administrada de AWS para admitir características nuevas. Este tipo de actualización afecta a todas las identidades (usuarios, grupos y roles) donde se asocia la política. Es más probable que los servicios actualicen una política administrada de AWScuando se lanza una nueva característica o cuando se ponen a disposición nuevas operaciones. Los servicios no quitan los permisos de una política administrada de AWS, por lo tanto, las actualizaciones de las políticas no deteriorarán los permisos existentes.

Además, AWS admite políticas administradas para funciones de trabajo que abarcan varios servicios. Por ejemplo, la política administrada de AWS ** ReadOnlyAccess** proporciona acceso de solo lectura a todos los servicios y los recursos de AWS. Cuando un servicio lanza una nueva característica, AWS agrega permisos de solo lectura para las operaciones y los recursos nuevos. Para obtener una lista y descripción de las políticas de funciones de trabajo, consulte [Políticas administradas de AWS para funciones de trabajo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía del usuario de IAM*.

## AWS Política administrada de: AmazonEC2FullAccess
<a name="security-iam-awsmanpol-AmazonEC2FullAccess"></a>

Puede adjuntar la política `AmazonEC2FullAccess` a las identidades de IAM. Esta política otorga permisos que permiten el acceso completo a Amazon EC2.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2FullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2FullAccess.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AmazonEC2ReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonEC2ReadOnlyAccess"></a>

Puede adjuntar la política `AmazonEC2ReadOnlyAccess` a las identidades de IAM. Esta política otorga permisos que brindan acceso de solo lectura a Amazon EC2.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AmazonEC2ImageReferencesAccessPolicy
<a name="security-iam-awsmanpol-AmazonEC2ImageReferencesAccessPolicy"></a>

Puede asociar la política `AmazonEC2ImageReferencesAccessPolicy` a las identidades de IAM. Esta política concede los permisos necesarios para utilizar la API DescribeImageReferences de EC2, incluido el permiso para ver las instancias de EC2, las plantillas de inicialización, los parámetros de Systems Manager y las recetas de Image Builder. La política es compatible con la marca `IncludeAllResourceTypes` y seguirá funcionando cuando AWS añada soporte para nuevos tipos de recursos, lo que eliminará la necesidad de futuras actualizaciones de la política.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AWSEC2CapacityReservationFleetRolePolicy
<a name="security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy"></a>

Esta política está asociada al rol vinculado a un servicio denominado **AWSServiceRoleForEC2CapacityReservationFleet** para permitir que el servicio cree, modifique y cancele reservas de capacidad en una flota de reservas de capacidad en su nombre. Para obtener más información, consulte [Uso de roles vinculados a servicios para la flota de reservas de capacidadUso de roles vinculados al servicio para EC2 Capacity Manager](using-service-linked-roles.md).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityReservationFleetRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityReservationFleetRolePolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AWSEC2FleetServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2FleetServiceRolePolicy"></a>

Esta política se adjunta al rol vinculado a un servicio denominado **AWSServiceRoleForEC2Fleet** para permitir que la flota de EC2 solicite, lance, termine y etiquete instancias en su nombre. Para obtener más información, consulte [Rol vinculado al servicio de flota de EC2](ec2-fleet-prerequisites.md#ec2-fleet-service-linked-role).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2FleetServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2FleetServiceRolePolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AWSEC2SpotFleetServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2SpotFleetServiceRolePolicy"></a>

Esta política se adjunta al rol vinculado a un servicio denominado **AWSServiceRoleForEC2SpotFleet** para permitir que la flota de spot lance y administre instancias en su nombre. Para obtener más información, consulte [Rol vinculado a servicios de flota de spot](spot-fleet-prerequisites.md#service-linked-roles-spot-fleet-requests).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotFleetServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotFleetServiceRolePolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AWSEC2SpotServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2SpotServiceRolePolicy"></a>

Esta política se adjunta al rol vinculado a un servicio denominado **AWSServiceRoleForEC2Spot** para permitir que Amazon EC2 lance y administre instancias de spot en su nombre. Para obtener más información, consulte [Rol vinculado al servicio para solicitudes de instancias de spot](service-linked-roles-spot-instance-requests.md).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotServiceRolePolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AWSEC2VssSnapshotPolicy
<a name="security-iam-awsmanpol-AWSEC2VssSnapshotPolicy"></a>

Puede adjuntar esta política administrada al rol de perfil de instancia de IAM que utiliza para sus instancias Windows de Amazon EC2. La política concede permisos que permiten a Amazon EC2 crear y administrar instantáneas de VSS en su nombre.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2VssSnapshotPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2VssSnapshotPolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: DeclarativePoliciesEC2Report
<a name="security-iam-awsmanpol-DeclarativePoliciesEC2Report"></a>

Esta política se asocia a la denominación del rol vinculado a servicios denominado `AWSServiceRoleForDeclarativePoliciesEC2Report` para brindar acceso a las API de solo lectura necesarias para generar el informe de estado de la cuenta para políticas declarativas.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DeclarativePoliciesEC2Report.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DeclarativePoliciesEC2Report.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: EC2FastLaunchFullAccess
<a name="security-iam-awsmanpol-EC2FastLaunchFullAccess"></a>

Puede asociar la política `EC2FastLaunchFullAccess` al perfil de instancia u otro rol de IAM. Esta política otorga acceso total a las acciones del lanzamiento rápido de EC2 y a los permisos específicos que se indican a continuación.

**Detalles sobre los permisos**
+ **Lanzamiento rápido de EC2**: se concede el acceso administrativo para que el rol pueda activar o desactivar el lanzamiento rápido de EC2 y describir las imágenes de lanzamiento rápido de EC2.
+ **Amazon EC2**: se concede acceso a las operaciones RunInstances, CreateTags, Describe y Create and Modify Launch Template de Amazon EC2. También se concede acceso para crear recursos de redes y grupos de seguridad, autorizar reglas de entrada y eliminar recursos creados por el lanzamiento rápido de EC2.
+ **IAM**: se concede acceso para obtener y utilizar los perfiles de instancia cuyos nombres contengan `ec2fastlaunch` para crear el rol vinculado a un servicio EC2FastLaunchServiceRolePolicy.
+ **CloudFormation** – se concede acceso al lanzamiento rápido de EC2 para describir y crear pilas de CloudFormation y para eliminar las pilas que haya creado.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchFullAccess.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: AWSEC2CapacityManagerServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2CapacityManagerServiceRolePolicy"></a>

Esta política está asociada al rol vinculado al servicio denominado **AWSServiceRoleForEC2CapacityManager**, el cual permite que EC2 Capacity Manager administre los recursos de capacidad y se integre con AWS Organizations en su nombre. Para obtener más información, consulte [Roles vinculados al servicio para EC2 Capacity Manager](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-service-linked-roles-cm.html).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityManagerServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityManagerServiceRolePolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: EC2FastLaunchServiceRolePolicy
<a name="security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy"></a>

Esta política está asociada al rol vinculado a un servicio denominado **AWSServiceRoleForEC2FastLaunch** para permitir que Amazon EC2 cree y administre un conjunto de instantáneas aprovisionadas previamente que reducen el tiempo que tarda en lanzar instancias desde la AMI con el lanzamiento rápido de EC2 habilitado. Para obtener más información, consulte [El rol vinculado a un servicio para el lanzamiento rápido de EC2](slr-windows-fast-launch.md).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchServiceRolePolicy.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: Ec2InstanceConnect
<a name="Ec2InstanceConnect"></a>

Puede asociar la política `Ec2InstanceConnect` a las identidades de IAM. Esta política otorga permisos que permiten que los clientes llamar a EC2 Instance Connect para publicar claves efímeras en sus instancias de EC2 y se conecten mediante ssh o la CLI de EC2 Instance Connect.

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceConnect.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceConnect.html) en la *Referencia de la política administrada de AWS*.

## AWS Política administrada de: Ec2InstanceConnectEndpoint
<a name="Ec2InstanceConnectEndpoint"></a>

Esta política se asocia al rol vinculado a un servicio denominado **AWSServiceRoleForEC2InstanceConnect** para permitir que el punto de conexión de EC2 Instance Connect realice acciones en su nombre. Para obtener más información, consulte [Rol vinculado a un servicio del punto de conexión de EC2 Instance Connect](eice-slr.md).

Para ver los permisos de esta política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2InstanceConnectEndpoint.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2InstanceConnectEndpoint.html) en la *Referencia de la política administrada de AWS*. Para obtener una descripción de las actualizaciones de esta política, consulte [Actualizaciones de Amazon EC2 en las políticas administradas por AWS](#security-iam-awsmanpol-updates).

## Actualizaciones de Amazon EC2 en las políticas administradas por AWS
<a name="security-iam-awsmanpol-updates"></a>

Es posible consultar los detalles sobre las actualizaciones de las políticas administradas por AWS para Amazon EC2 debido a que este servicio comenzó a realizar el seguimiento de estos cambios.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  [AWSEC2CapacityManagerServiceRolePolicy](#security-iam-awsmanpol-AWSEC2CapacityManagerServiceRolePolicy) – política nueva  | Amazon EC2 agregó esta política para permitirle administrar los recursos de capacidad e integrarse con AWS Organizations en su nombre. | 15 de octubre de 2025 | 
|  [AmazonEC2ImageReferencesAccessPolicy](#security-iam-awsmanpol-AmazonEC2ImageReferencesAccessPolicy) – nueva política  | Amazon EC2 agregó esta política para permitir escanear todos los tipos de recursos compatibles con la API DescribeImageReferences de EC2. | 26 de agosto de 2025 | 
| [Ec2InstanceConnectEndpoint](#Ec2InstanceConnectEndpoint) – política actualizada | Para admitir la modificación de los puntos de conexión existentes de Instance Connect, Amazon EC2 actualizó esta política para agregar permisos para asignar y desasignar direcciones IPv6 y modificar los grupos de seguridad en las interfaces de red creadas por el punto de conexión de EC2 Instance Connect. Amazon EC2 también actualizó esta política para sustituir el operador de condición Null por el operador de condición StringLike. | 31 de julio de 2025 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy) – política actualizada | Para contribuir a evitar recursos huérfanos, Amazon EC2 actualizó esta política para incluir permisos que permiten describir volúmenes, atributos de volúmenes e interfaces de red, así como eliminar volúmenes e interfaces de red creados mediante el lanzamiento rápido de EC2. | 17 de julio de 2025 | 
| [EC2FastLaunchFullAccess](#security-iam-awsmanpol-EC2FastLaunchFullAccess) – política actualizada | Amazon EC2 actualizó esta política y ahora incluye las operaciones Create and Modify Launch Template, la creación de recursos de redes y grupos de seguridad, la autorización de reglas de entrada y la eliminación de recursos creados por el lanzamiento rápido de EC2. Además, puede describir y crear pilas de CloudFormation y eliminar las pilas que creó el lanzamiento rápido de EC2. | 14 de mayo de 2025 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy) – política actualizada | Amazon EC2 actualizó esta política y ahora permite el acceso a Amazon EventBridge para crear y administrar reglas de eventos para el lanzamiento rápido de EC2. Además, el lanzamiento rápido de EC2 ahora puede describir pilas de CloudFormation, lanzar una instancia desde una AMI asociada a AWS License Manager, obtener una lista de concesiones de AWS KMS que creó y que se pueden retirar y eliminar las plantillas de lanzamiento que creó. | 14 de mayo de 2025 | 
| [AWSEC2CapacityReservationFleetRolePolicy](#security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy): permisos actualizados | Amazon EC2 actualizó la política administrada AWSEC2CapacityReservationFleetRolePolicy para utilizar el operador de condición ArnLike en lugar del operador de condición StringLike. | 3 de marzo de 2025 | 
| [AmazonEC2ReadOnlyAccess](#security-iam-awsmanpol-AmazonEC2ReadOnlyAccess) – permisos agregados | Amazon EC2 agregó un permiso que permite recuperar grupos de seguridad mediante la operación GetSecurityGroupsForVpc. | 27 de diciembre de 2024 | 
| [EC2FastLaunchFullAccess](#security-iam-awsmanpol-EC2FastLaunchFullAccess) – nueva política | Amazon EC2 agregó la política para realizar acciones de API relacionadas con la característica de lanzamiento rápido de EC2 desde una instancia. La política se puede adjuntar al perfil de instancia de una instancia que se lance desde una AMI con el lanzamiento rápido de EC2 habilitado. | 14 de mayo de 2024 | 
| [AWSEC2VssSnapshotPolicy](#security-iam-awsmanpol-AWSEC2VssSnapshotPolicy) – nueva política | Amazon EC2 agregó la política AWSEC2VssSnapshotPolicy que contiene los permisos para crear y añadir etiquetas a las instantáneas de Imagen de máquina de Amazon (AMI) y de EBS. | 28 de marzo de 2024 | 
| [Ec2InstanceConnectEndpoint](#Ec2InstanceConnectEndpoint) – nueva política | Amazon EC2 agregó la política Ec2InstanceConnectEndpoint. Esta política se asocia al rol vinculado a un servicio denominado AWSServiceRoleForEC2InstanceConnect para permitir que Amazon EC2 lleve a cabo acciones en su nombre al crear un punto de conexión de EC2 Instance Connect. | 24 de enero de 2023 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy) – nueva política | Amazon EC2 agregó la característica de lanzamiento rápido de EC2 para permitir que las AMI de Windows lancen instancias más rápido con la creación de un conjunto de instantáneas aprovisionadas previamente. | 26 de noviembre de 2021 | 
| Amazon EC2 comenzó a realizar el seguimiento de los cambios | Amazon EC2 comenzó a realizar el seguimiento de los cambios en sus políticas administradas de AWS | 1 de marzo de 2021 | 

# Roles de IAM para Amazon EC2
<a name="iam-roles-for-amazon-ec2"></a>

Las aplicaciones deben firmar sus solicitudes de API con credenciales de AWS. Por lo tanto, si es usted un desarrollador de aplicaciones, necesitará una estrategia para administrar las credenciales de sus aplicaciones que se ejecuten en instancias de EC2. Por ejemplo, puede distribuir con seguridad sus credenciales de AWS a las instancias, lo que habilita las aplicaciones que tiene en dichas instancias para que utilicen sus credenciales a fin de firmar solicitudes y, al mismo tiempo, proteger sus credenciales respecto a otros usuarios. Sin embargo, distribuir las credenciales a cada instancia de forma segura plantea ciertas dificultades, en especial cuando se trata de aquellas que AWS crea en su nombre, como las instancias de spot o las de los grupos de Auto Scaling. También debe poder actualizar las credenciales de cada instancia cuando rota sus credenciales de AWS.

Hemos diseñado los roles de IAM, para que sus aplicaciones puedan realizar solicitudes de API con seguridad desde sus instancias, sin que usted tenga que administrar las credenciales de seguridad que la aplicación utiliza. En lugar de crear y distribuir sus credenciales de AWS, puede delegar el permiso para realizar solicitudes de API mediante los roles de IAM, tal como se indica a continuación:

1. Cree de un rol de IAM.

1. Defina qué cuentas o servicios de AWS pueden asumir el rol.

1. Defina qué acciones y recursos de la API puede utilizar la aplicación después de asumir el rol.

1. Especifique el rol cuando lance su instancia, o asocie el rol a una instancia existente.

1. Haga que la aplicación recupere unas credenciales temporales y las use.

Por ejemplo, puede utilizar roles de IAM para conceder permisos a aplicaciones que se ejecutan en sus instancias y que necesitan utilizar un bucket en Amazon S3. Puede especificar permisos para roles de IAM, creando una política en formato JSON. Son parecidos a las políticas que crea para usuarios de . Si cambia un rol, el cambio se propaga a todas las instancias.

**nota**  
Las credenciales del rol de IAM de Amazon EC2 no están sujetas a la duración máxima de sesión configurada en el rol. Para obtener más información, consulte [Métodos para asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*.

Al crear roles de IAM, asocie las políticas de IAM con privilegios mínimos que restringen el acceso a las llamadas a la API específicas que requiere la aplicación. Para la comunicación de Windows a Windows, use grupos y roles de Windows bien definidos y bien documentados para conceder acceso a nivel de aplicación entre instancias de Windows. Los grupos y roles permiten que los clientes definan permisos de nivel de carpeta NTFS y aplicaciones con privilegios mínimos para limitar el acceso a los requisitos específicos de la aplicación.

Solo puede adjuntar un rol de IAM a una instancia, pero puede adjuntar el mismo rol a muchas instancias. Para obtener más información sobre la creación y el uso de roles de IAM, consulte [Roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*.

Puede aplicar permisos de nivel de recursos a sus políticas de IAM para controlar la capacidad de los usuarios de asociar, sustituir o desasociar roles de IAM de una instancia. Para obtener más información, consulte [Permisos de nivel de recurso admitidos para las acciones de la API de Amazon EC2](iam-policies-for-amazon-ec2.md#ec2-supported-iam-actions-resources) y el siguiente ejemplo: [Ejemplo: Trabajar con roles de IAM](ExamplePolicies_EC2.md#iam-example-iam-roles).

**Topics**
+ [

## Perfiles de instancias
](#ec2-instance-profile)
+ [

## Permisos para su caso de uso
](#generate-policy-for-iam-role)
+ [Recuperar credenciales de seguridad](instance-metadata-security-credentials.md)
+ [Permisos para asociar un rol a una instancia](permission-to-pass-iam-roles.md)
+ [Asociación de un rol a una instancia](attach-iam-role.md)
+ [Roles de identidad de instancia](#ec2-instance-identity-roles)

## Perfiles de instancias
<a name="ec2-instance-profile"></a>

Amazon EC2 utiliza un *perfil de instancia* como contenedor de un rol de IAM. Cuando se crea un rol de IAM utilizando la consola de IAM, esta crea automáticamente un perfil de instancia y le da el mismo nombre que el rol al que corresponde. Si utiliza la consola de Amazon EC2 para iniciar una instancia con un rol de IAM o para asociar un rol de IAM a una instancia, elija el rol en función de una lista de nombres de perfiles de instancias. 

Si utiliza la AWS CLI, la API o un SDK de AWS para crear un rol, cree el rol y el perfil de instancia de forma independiente, con nombres potencialmente diferentes. Si posteriormente usa la AWS CLI, la API o un AWS SDK para iniciar una instancia con un rol de IAM o para adjuntar un rol de IAM a una instancia, especifique el nombre del perfil de instancias. 

Un perfil de instancia solo puede contener un rol de IAM. Puede incluir un rol de IAM en varios perfiles de instancia.

Para actualizar los permisos de una instancia, sustituya su perfil de instancia. No recomendamos eliminar un rol de un perfil de instancia, ya que este cambio tarda hasta una hora en surtir efecto.

Para obtener más información, consulte [Uso de perfiles de instancias](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) en la *Guía del usuario de IAM*.

## Permisos para su caso de uso
<a name="generate-policy-for-iam-role"></a>

Cuando crea por primera vez un rol de IAM para las aplicaciones, a veces puede conceder permisos más allá de lo necesario. Antes de iniciar la aplicación en su entorno de producción, puede generar una política de IAM que esté basada en la actividad de acceso de un rol de IAM. El analizador de acceso de IAM revisa los registros de AWS CloudTrail y genera una plantilla de política que contiene los permisos que ha utilizado el rol en el intervalo de fechas especificado. Puede utilizar la plantilla para crear una política administrada con permisos detallados y, a continuación, adjuntarla al rol de IAM. De esta forma, solo concede los permisos que el rol necesita para interactuar con los recursos de AWS para su caso de uso específico. Esto le ayuda a cumplir con la mejor práctica de [otorgar privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Para obtener más información, consulte [Generación de políticas del Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html) en la *Guía de usuario de IAM*.

# Recuperar credenciales de seguridad de los metadatos de la instancia
<a name="instance-metadata-security-credentials"></a>

Una aplicación de una instancia recupera las credenciales de seguridad que proporciona el rol en el elemento `iam/security-credentials/`*role-name* de los metadatos de la instancia. Se conceden a la aplicación los permisos para las acciones y los recursos que usted ha definido para el rol mediante las credenciales de seguridad asociadas al rol. Estas credenciales de seguridad son temporales y las rotamos automáticamente. Activamos la disponibilidad de las nuevas credenciales al menos cinco minutos antes del vencimiento de las antiguas.

Para obtener más información acerca de los metadatos de instancias, consulte [Uso de los metadatos de la instancia para administrar su instancia de EC2](ec2-instance-metadata.md).

**aviso**  
Si utiliza servicios que utilizan metadatos de las instancias con los roles de IAM, asegúrese de que no revela sus credenciales cuando los servicios realizan llamadas HTTP en su nombre. Los tipos de servicios que pueden llegar a revelar sus credenciales son, entre otros, proxies HTTP, servicios de validador HTML/CSS y procesadores XML que admiten la inclusión de XML.

Para sus cargas de trabajo de Amazon EC2, le recomendamos que recupere las credenciales de sesión mediante el método que se describe a continuación. Estas credenciales deberían permitir a su carga de trabajo realizar solicitudes de API de AWS, sin necesidad de usar `sts:AssumeRole` para asumir el mismo rol que ya está asociado a la instancia. A menos que necesite pasar etiquetas de sesión para el control de acceso basado en atributos (ABAC) o pasar una política de sesión para restringir aún más los permisos del rol, estas llamadas de asunción de roles no son necesarias, ya que crean un nuevo conjunto de las mismas credenciales temporales de sesión de rol.

Si su carga de trabajo usa un rol para asumirse a sí mismo, debe crear una política de confianza que permita explícitamente que ese rol se asuma a sí mismo. Si no crea la política de confianza, aparece el error `AccessDenied`. Para obtener más información, consulte [Actualización de una política de confianza de rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html) en la *Guía del usuario de IAM*.

------
#### [ IMDSv2 ]

**Linux**  
Ejecute el siguiente comando desde la instancia de Linux para recuperar las credenciales de seguridad de un rol de IAM.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Ejecute el siguiente cmdlet desde la instancia de Windows para recuperar las credenciales de seguridad de un rol de IAM.

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------
#### [ IMDSv1 ]

**Linux**  
Ejecute el siguiente comando desde la instancia de Linux para recuperar las credenciales de seguridad de un rol de IAM.

```
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Ejecute el siguiente cmdlet desde la instancia de Windows para recuperar las credenciales de seguridad de un rol de IAM.

```
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------

A continuación, se muestra un ejemplo del resultado. Si no puede recuperar las credenciales de seguridad, consulte [No puedo obtener acceso a las credenciales de seguridad temporales de mi instancia EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_no-keys) en la *Guía del usuario de IAM*.

```
{
  "Code" : "Success",
  "LastUpdated" : "2012-04-26T16:39:16Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
  "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  "Token" : "token",
  "Expiration" : "2017-05-17T15:09:54Z"
}
```

Para las aplicaciones, la AWS CLI y los comandos de las herramientas para Windows PowerShell que se ejecutan en la instancia, no es necesario obtener de forma explícita las credenciales de seguridad temporales, dado que los AWS SDK, la AWS CLI y las herramientas para Windows PowerShell obtienen automáticamente las credenciales del servicio de metadatos de la instancia de EC2 y las utilizan. Para llamar fuera de la instancia utilizando credenciales de seguridad temporales (por ejemplo, para probar políticas de IAM), debe proporcionar la clave de acceso, la clave secreta y el token de la sesión. Para obtener más información, consulte [Uso de credenciales de seguridad temporales para solicitar acceso a los recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) en la *Guía del usuario de IAM*.

# Concesión de permisos para asociar un rol de IAM a una instancia
<a name="permission-to-pass-iam-roles"></a>

Las identidades de su Cuenta de AWS, como los usuarios de IAM, deben tener permisos específicos para inicializar una instancia de Amazon EC2 con un rol de IAM, asociar un rol de IAM a una instancia, reemplazar el rol de IAM de una instancia o separar un rol de IAM de una instancia. Debe concederles permiso para utilizar las siguientes acciones de la API según sea necesario:
+ `iam:PassRole`
+ `ec2:AssociateIamInstanceProfile`
+ `ec2:DisassociateIamInstanceProfile`
+ `ec2:ReplaceIamInstanceProfileAssociation`

**nota**  
Si especifica el recurso de `iam:PassRole` como `*`, se otorgará acceso para transferir cualquiera de los roles de IAM a una instancia. Para seguir la práctica recomendada de [privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), especifique los ARN de roles de IAM específicos con `iam:PassRole`, tal y como se muestra en el ejemplo de política que aparece a continuación.

**Ejemplo de política para el acceso mediante programación**  
La siguiente política de IAM concede permisos para inicializar instancias con un rol de IAM, asociar un rol de IAM a una instancia o sustituir el rol de IAM para una instancia existente mediante la AWS CLI o la API de Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances",
         "ec2:AssociateIamInstanceProfile",
         "ec2:DisassociateIamInstanceProfile",
         "ec2:ReplaceIamInstanceProfileAssociation"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/DevTeam*"
    }
  ]
}
```

------

**Requisito adicional para el acceso con la consola**  
Si quiere conceder permisos para realizar las mismas tareas con la consola de Amazon EC2, debe incluir también la acción de la API `iam:ListInstanceProfiles`.

# Asociar un rol de IAM a una instancia
<a name="attach-iam-role"></a>

Puede crear un rol de IAM y adjuntarlo a una instancia durante el lanzamiento o después. También puede desasociar o sustituir roles de IAM.

**Crear y adjuntar un rol de IAM durante el lanzamiento de la instancia (recomendado)**

1. Durante el lanzamiento de la instancia EC2, amplíe la sección **Detalles avanzados.**

1. En la sección del **perfil de instancia de IAM**, elija **Crear un nuevo rol de IAM**.

1. Se abre un formulario de creación de roles en línea que le permite:
   + Especificar **el nombre del rol** (por ejemplo, `EC2-S3-Access-Role`)
   + Definir los permisos seleccionando políticas administradas de AWS o creando políticas personalizadas para su instancia

     Por ejemplo, para conceder acceso a S3, selecciona la política administrada de `AmazonS3ReadOnlyAccess`
   + Una política de confianza que permita a `ec2.amazonaws.com` asumir el rol
   + Añada etiquetas opcionales para los metadatos.

1. Elija **Creación de rol**.

   El rol recién creado se selecciona automáticamente y se adjuntará a la instancia mediante un perfil de instancia cuando se lance la instancia.

**nota**  
Cuando crea el rol para con la consola durante el lanzamiento d ela instancia, se crea automáticamente el perfil de instancia con el mismo nombre. Un perfil de instancia es un contenedor que pasa información del rol de IAM a una instancia en el momento del lanzamiento.

**importante**  
Solo puede adjuntar un rol de IAM a una instancia, pero puede adjuntar el mismo rol a muchas instancias.
Asocie las políticas de IAM con privilegios mínimos que restringen el acceso a las llamadas a la API específicas que requiere la aplicación.

Para obtener más información sobre la creación y el uso de roles de IAM, consulte [Roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*.

**Adjuntar un rol de IAM existente durante el lanzamiento de la instancia**  
Para asociar un rol de IAM existente a una instancia en el momento del lanzamiento mediante la consola de Amazon EC2, amplíe **Detalles avanzados**. En **perfil de instancia de IAM**, seleccione el rol de IAM de la lista desplegable.

**nota**  
Si creó su rol de IAM con la consola de IAM, el perfil de instancia se creó en su nombre y se le dio el mismo nombre que el rol. Si creó el rol de IAM con la AWS CLI, la API o un SDK de AWS, es posible que le haya dado un nombre distinto al del rol a su perfil de instancias.

Puede asociar un rol de IAM a una instancia que esté en ejecución o detenida. Si la instancia ya tiene un rol de IAM asociado, debes sustituirlo por el nuevo rol de IAM.

------
#### [ Console ]<a name="attach-iam-role-console"></a>

**Para asociar un rol de IAM con una instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instancias**.

1. Seleccione la instancia.

1. Elija **Actions** (Acciones), **Security** (Seguridad), **Modify IAM role** (Modificar rol de IAM).

1. En **Rol de IAM**, seleccione el perfil de instancia de IAM.

1. Elija **Actualizar rol de IAM**.

------
#### [ AWS CLI ]
<a name="attach-iam-role-instance-cli"></a>
**Para asociar un rol de IAM con una instancia**  
Use el comando [associate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-iam-instance-profile.html) para asociar el rol de IAM a la instancia. Cuando especifique el perfil de instancia, puede utilizar el nombre de recurso de Amazon (ARN) del perfil de instancia o bien puede usar el nombre de este.

```
aws ec2 associate-iam-instance-profile \
    --instance-id i-1234567890abcdef0 \
    --iam-instance-profile Name="TestRole-1"
```

------
#### [ PowerShell ]

**Para asociar un rol de IAM con una instancia**  
Utilice el cmdlet [Register-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2IamInstanceProfile.html).

```
Register-EC2IamInstanceProfile `
    -InstanceId i-1234567890abcdef0 `
    -IamInstanceProfile_Name TestRole-1
```

------

Para reemplazar el rol de IAM en una instancia que ya tiene un rol de IAM asociado, la instancia debe estar ejecutándose . Puede hacerlo si desea cambiar el rol de IAM de una instancia sin disociar primero el existente. Por ejemplo, puede hacer esto para asegurarse de que no se interrumpan las acciones de API realizadas por las aplicaciones que se ejecutan en la instancia.

------
#### [ Console ]<a name="replace-iam-role-console"></a>

**Para reemplazar un rol de IAM de una instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instancias**.

1. Seleccione la instancia.

1. Elija **Actions** (Acciones), **Security** (Seguridad), **Modify IAM role** (Modificar rol de IAM).

1. En **Rol de IAM**, seleccione el perfil de instancia de IAM.

1. Elija **Actualizar rol de IAM**.

------
#### [ AWS CLI ]<a name="replace-iam-role-cli"></a>

**Para reemplazar un rol de IAM de una instancia**

1. Si es necesario, utilice el comando [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) para obtener el ID de asociación.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Utilice el comando [replace-iam-instance-profile-association](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-iam-instance-profile-association.html). Especifique el ID de asociación del perfil de instancia existente y el ARN o el nombre del nuevo perfil de instancia.

   ```
   aws ec2 replace-iam-instance-profile-association \
       --association-id iip-assoc-0044d817db6c0a4ba \
       --iam-instance-profile Name="TestRole-2"
   ```

------
#### [ PowerShell ]

**Para reemplazar un rol de IAM de una instancia**

1. Si es necesario, utilice el cmdlet [Get-EC2IAMInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html) para obtener el ID de asociación.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Utilice el cmdlet [Set-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2IamInstanceProfileAssociation.html). Especifique el ID de asociación del perfil de instancia existente y el ARN o el nombre del nuevo perfil de instancia.

   ```
   Set-EC2IamInstanceProfileAssociation `
       -AssociationId iip-assoc-0044d817db6c0a4ba `
       -IamInstanceProfile_Name TestRole-2
   ```

------

Puede separar un rol IAM de una instancia que está en ejecución o detenida.

------
#### [ Console ]<a name="detach-iam-role-console"></a>

**Para separar un rol de IAM de una instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instancias**.

1. Seleccione la instancia.

1. Elija **Actions** (Acciones), **Security** (Seguridad), **Modify IAM role** (Modificar rol de IAM).

1. En **Rol de IAM**, elija **Sin rol de IAM**.

1. Elija **Actualizar rol de IAM**.

1. Cuando se le pida confirmación, introduzca **Desconectar** y, a continuación, elija **Desconectar**.

------
#### [ AWS CLI ]<a name="detach-iam-role-cli"></a>

**Para separar un rol de IAM de una instancia**

1. Si es necesario, utilice [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) para obtener el ID de asociación del perfil de instancia de IAM que quiere desasociar.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Utilice el comando [disassociate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-iam-instance-profile.html).

   ```
   aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0044d817db6c0a4ba
   ```

------
#### [ PowerShell ]

**Para separar un rol de IAM de una instancia**

1. Si es necesario, utilice [Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html) para obtener el ID del perfil de instancia de IAM que quiere desasociar.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Utilice el cmdlet [Unregister-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2IamInstanceProfile.html).

   ```
   Unregister-EC2IamInstanceProfile -AssociationId iip-assoc-0044d817db6c0a4ba
   ```

------

## Roles de identidad de instancia para instancias de Amazon EC2
<a name="ec2-instance-identity-roles"></a>

Cada instancia de Amazon EC2 que inicie tiene un *rol de identidad de instancia* que representa su identidad. Un rol de identidad de instancia es un tipo de rol de IAM. Los servicios y las características de AWS integrados para usar el rol de identidad de instancia pueden usarlo para identificar la instancia en el servicio.

Las credenciales de rol de identidad de instancia están disponibles en el servicio de metadatos de instancia (IMDS) en `/identity-credentials/ec2/security-credentials/ec2-instance`. Las credenciales incluyen un par de claves de acceso temporal de AWS y un token de sesión. Se utilizan para firmar las solicitudes de Sigv4 de AWS a los servicios de AWS que utilizan el rol de identidad de instancia. Las credenciales están presentes en los metadatos de la instancia independientemente de si un servicio o una característica que utiliza los roles de identidad de la instancia está habilitado en la instancia.

Los roles de identidad de instancia se crean automáticamente cuando se inicia una instancia, no tienen ningún documento de política de confianza de roles y no están sujetos a ninguna política de identidad o recursos.

### Servicios admitidos
<a name="iir-supported-services"></a>

Los siguientes servicios de AWS utilizan el rol de identidad de instancia:
+ **Amazon EC2**: [EC2 Instance Connect](connect-linux-inst-eic.md) utiliza el rol de identidad de instancia para actualizar las claves de host de una instancia de Linux.
+ **Amazon GuardDuty**: la [Supervisión de tiempo de ejecución de GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html) utiliza el rol de identidad de instancia para permitir que el agente de tiempo de ejecución envíe telemetría de seguridad al punto de conexión de VPC de GuardDuty.
+ **AWS Lambda**: las [Instancias administradas de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-managed-instances.html) utilizan el rol de identidad de la instancia para los enlaces de ciclo de vida, la telemetría y la distribución de artefactos.
+ **AWS Security Token Service (AWS STS)**: las credenciales del rol de identidad de instancia se pueden usar con la acción [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html)de AWS STS.
+ **AWS Systems Manager**: cuando se utiliza la [configuración de la administración de host predeterminada](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-default-host-management-configuration.html), AWS Systems Manager utiliza la identidad proporcionada por el rol de identidad de instancia para registrar las instancias de EC2. Tras identificar la instancia, Systems Manager puede pasar el rol de IAM de `AWSSystemsManagerDefaultEC2InstanceManagementRole` a la instancia.

Los roles de identidad de instancia no se pueden usar con otros servicios o características de AWS porque no están integrados con los roles de identidad de instancia.

### ARN de rol de identidad de instancia
<a name="iir-arn"></a>

El ARN de rol de identidad de instancia tiene el siguiente formato:

```
arn:aws-partition:iam::account-number:assumed-role/aws:ec2-instance/instance-id
```

Por ejemplo:

```
arn:aws:iam::0123456789012:assumed-role/aws:ec2-instance/i-1234567890abcdef0
```

Para más información acerca de los ARN, consulte [Nombres de recursos de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) en la *guía de referencia de usuario de IAM*.