

# Rol vinculado al servicio para solicitudes de instancias de spot
<a name="service-linked-roles-spot-instance-requests"></a>

Amazon EC2 utiliza roles vinculados a un servicio para los permisos que necesita para llamar a otros servicios de AWS en su nombre. Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a un Servicio de AWS. Los roles vinculados a servicios ofrecen una manera segura de delegar permisos a Servicios de AWS, ya que solo los servicios vinculados pueden asumir roles vinculados a servicios. Para obtener más información, consulte [Roles vinculados al servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) en la *Guía del usuario de IAM*.

Amazon EC2 usa el rol vinculado a un servicio denominado **AWSServiceRoleForEC2Spot** para iniciar y administrar instancias de spot en su nombre.

## Permisos concedidos por AWSServiceRoleForEC2Spot
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2Spot"></a>

Amazon EC2 usa **AWSServiceRoleForEC2Spot** para ejecutar las acciones siguientes:
+ `ec2:DescribeInstances`: describir instancias de spot
+ `ec2:StopInstances`: detener instancias de spot
+ `ec2:StartInstances`: iniciar instancias de spot

## Creación del rol vinculado a servicio
<a name="service-linked-role-creating-for-spot"></a>

En la mayoría de los casos, no es necesario crear manualmente roles vinculados a servicios. Amazon EC2 crea el rol vinculado a un servicio **AWSServiceRoleForEC2Spot** la primera vez que se solicita una instancia de spot mediante la consola.

Si tenía una solicitud de instancia de spot activa antes de octubre de 2017, cuando Amazon EC2 empezó a admitir este rol vinculado a servicio, Amazon EC2 creó el rol **AWSServiceRoleForEC2Spot** en su cuenta de AWS. Para obtener más información, consulte [Un nuevo rol ha aparecido en mi cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared) en la *Guía del usuario de IAM*

Si utiliza la AWS CLI o una API para realizar una solicitud de instancias de spot, debe asegurarse de que este rol exista.

**Cómo crear **AWSServiceRoleForEC2Spot** mediante la consola**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleccione **Roles** en el panel de navegación.

1. Elija **Create role**.

1. En la página **Seleccionar el tipo de entidad de confianza**, elija **EC2**, **EC2: instancias de spot** y **Siguiente: Permisos**.

1. En la siguiente página, elija **Next:Review (Siguiente: Revisión)**.

1. En la página **Review (Revisión)**, elija **Create role (Crear rol)**.

**Cómo crear **AWSServiceRoleForEC2Spot** con la AWS CLI**  
Utilice el comando [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) de la siguiente manera.

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```

Si ya no tiene que utilizar instancias de spot, le recomendamos que elimine el rol **AWSServiceRoleForEC2Spot**. Después de eliminar este rol de la cuenta, Amazon EC2 volverá a crearlo cuando solicite instancias de spot.

## Conceder acceso a las claves administradas por el cliente para su uso con AMI cifradas e instantáneas de EBS
<a name="spot-instance-service-linked-roles-access-to-cmks"></a>

Si especifica una [AMI cifrada](AMIEncryption.md) o una instantánea de Amazon EBS cifrada en sus instancias de spot y usa una clave administrada por el cliente para el cifrado, debe conceder permiso al rol **AWSServiceRoleForEC2Spot** para que use esa clave a fin de que Amazon EC2 pueda iniciar instancias de spot en su nombre. Para ello, debe agregar una concesión a la clave administrada por el cliente, como se muestra en el siguiente procedimiento.

Al proporcionar permisos, las concesiones son una alternativa a las políticas de claves. Para obtener más información, consulte [Uso de concesiones](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) y [Uso de políticas de claves en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) en la * Guía para desarrolladores de AWS Key Management Service*.

**Para conceder permisos al rol **AWSServiceRoleForEC2Spot** a fin de que utilice la clave administrada por el cliente**
+ Use el comando [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) para agregar una concesión a la clave administrada por el cliente y para especificar la entidad principal (el rol vinculado a un servicio **AWSServiceRoleForEC2Fleet**) que recibe permiso para realizar las operaciones que permite la concesión. La clave administrada por el cliente se especifica mediante el parámetro `key-id` y el ARN de la clave administrada por el cliente. La entidad principal se especifica con el parámetro `grantee-principal` y el ARN del rol vinculado a un servicio **AWSServiceRoleForEC2Spot**.

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```