

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

# Funciones de IAM para los experimentos de AWS FIS
<a name="getting-started-iam-service-role"></a>

AWS Identity and Access Management (IAM) es un AWS servicio que ayuda al administrador a controlar de forma segura el acceso a los recursos. AWS Para utilizar el AWS FIS, debe crear un rol de IAM que conceda al AWS FIS los permisos necesarios para que el AWS FIS pueda realizar experimentos en su nombre. Este rol de experimento se especifica al crear una plantilla de experimento. En el caso de un experimento con una sola cuenta, la política de IAM del rol de experimento debe conceder permiso para modificar los recursos que especifique como destinos de la plantilla de experimento. En el caso de un experimento con varias cuentas, el rol del experimento debe conceder permiso al rol de orquestador para que asuma el rol de IAM para cada cuenta de destino. Para obtener más información, consulte [Permisos para experimentos con varias cuentas](multi-account-prerequisites.md#permissions).

Le recomendamos que siga la práctica de seguridad estándar para conceder privilegios mínimos. Puede hacerlo especificando un recurso ARNs o etiquetas específicos en sus políticas.

Para ayudarle a empezar a utilizar el AWS FIS rápidamente, le ofrecemos políticas AWS gestionadas que puede especificar al crear un rol de experimento. Como alternativa, también puede utilizar estas políticas como modelo al crear sus propios documentos de políticas insertadas.

**Topics**
+ [Requisitos previos](#create-fis-role-prereqs)
+ [Opción 1: crear un rol experimental y adjuntar una política AWS gestionada](#fis-role-managed-policy)
+ [Opción 2: Crear un rol de experimento y agregar un documento de política insertada](#fis-role-inline-policy-document)

## Requisitos previos
<a name="create-fis-role-prereqs"></a>

Antes de empezar, instale AWS CLI y cree la política de confianza necesaria.

**Instale el AWS CLI**  
Antes de comenzar, instale y configure la AWS CLI. Al configurar el AWS CLI, se le solicitarán las AWS credenciales. En los ejemplos de este procedimiento se asume que configuró una región predeterminada. De lo contrario, agregue la opción `--region` para cada comando. Para obtener más información, consulte [Installing or updating the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) and [Configuring the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) (Instalación o actualización de la CLI y Configuración de la CLI).

**Creación de una política de relación de confianza**  
Un rol de experimento debe tener una relación de confianza que permita al servicio AWS FIS asumir el rol. Cree un archivo de texto denominado `fis-role-trust-policy.json` y añada la siguiente política de relación de confianza.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                  "fis.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```
Le recomendamos que utilice las claves de condición `aws:SourceAccount` y `aws:SourceArn` para protegerse contra el [problema del suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). La cuenta de origen es la propietaria del experimento, y el ARN de origen es el ARN del experimento. Por ejemplo, debería agregar el siguiente bloque de condición a su política de confianza:  

```
"Condition": {
    "StringEquals": {
        "aws:SourceAccount": "{{account_id}}"
    },
    "ArnLike": {
        "aws:SourceArn": "arn:aws:fis:{{region}}:{{account_id}}:experiment/*"
    }
}
```

**Agregue permisos para asumir roles de cuentas de destino (solo en experimentos con varias cuentas)**  
En el caso de los experimentos con varias cuentas, se necesitan permisos que autoricen a la cuenta del orquestador a asumir roles de cuentas de destino. Puede modificar el siguiente ejemplo y agregarlo como documento de política integrado para asumir roles de cuentas de destino:  

```
{
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource":[
        "arn:aws:iam::{{target_account_id}}:role/{{role_name}}"
    ]
}
```

## Opción 1: crear un rol experimental y adjuntar una política AWS gestionada
<a name="fis-role-managed-policy"></a>

Utilice una de las políticas AWS gestionadas de AWS FIS para empezar rápidamente.

**Para crear un rol experimental y adjuntar una política AWS gestionada**

1. Compruebe que haya una política gestionada para las acciones del AWS FIS en su experimento. De lo contrario, tendrá que crear su propio documento de política insertada. Para obtener más información, consulte [AWS políticas gestionadas para el servicio de inyección de fallos AWS](security-iam-awsmanpol.md).

1. Utilice el siguiente comando [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) para crear un rol y agregar la política de confianza que ha creado en los requisitos previos.

   ```
   aws iam create-role --role-name {{my-fis-role}} --assume-role-policy-document file://{{fis-role-trust-policy.json}}
   ```

1. Utilice el siguiente [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)comando para adjuntar la política AWS gestionada.

   ```
   aws iam attach-role-policy --role-name {{my-fis-role}} --policy-arn {{fis-policy-arn}}
   ```

   Dónde {{fis-policy-arn}} está una de las siguientes opciones:
   + arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEC2Access
   + arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorECSAccess
   + arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEKSAccess
   + arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess
   + arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorRDSAccess
   + arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorSSMAccess

## Opción 2: Crear un rol de experimento y agregar un documento de política insertada
<a name="fis-role-inline-policy-document"></a>

Use esta opción para las acciones que no tengan una política administrada o para incluir solo los permisos necesarios para su experimento específico.

**Para crear un rol de experimento y agregar un documento de política insertada**

1. Utilice el siguiente comando [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) para crear un rol y agregar la política de confianza que ha creado en los requisitos previos.

   ```
   aws iam create-role --role-name {{my-fis-role}} --assume-role-policy-document file://{{fis-role-trust-policy.json}}
   ```

1. Cree un archivo de texto denominado `fis-role-permissions-policy.json` y agregar una política de permisos. Como ejemplo que puede utilizar como punto de partida, consulte lo siguiente.
   + **Acciones de inyección de errores**: comience con la siguiente política.

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "AllowFISExperimentRoleFaultInjectionActions",
                 "Effect": "Allow",
                 "Action": [
                     "fis:InjectApiInternalError",
                     "fis:InjectApiThrottleError",
                     "fis:InjectApiUnavailableError"
                 ],
                 "Resource": "arn:*:fis:*:*:experiment/*"
             }
         ]
     }
     ```

------
   + **Acciones de Amazon EBS**: comience con la siguiente política.

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:DescribeVolumes"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:PauseVolumeIO"
                 ],
                 "Resource": "arn:aws:ec2:*:*:volume/*"
             }
         ]
     }
     ```

------
   + **Acciones de Amazon EC2**: comience por la política de [AWSFaultInjectionSimulatorEC2acceso](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html).
   + **Acciones de Amazon ECS**: comience por la [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorECSAccess.html)política.
   + **Acciones de Amazon EKS**: comience por la [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html)política.
   + **Acciones de red**: comience desde la [AWSFaultInjectionSimulatorNetworkAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorNetworkAccess.html)política.
   + **Acciones de Amazon RDS**: comience por la [AWSFaultInjectionSimulatorRDSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorRDSAccess.html)política.
   + **Acciones de Systems Manager**: comience desde la [AWSFaultInjectionSimulatorSSMAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorSSMAccess.html)política.

1. Use el siguiente [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)comando para agregar la política de permisos que creó en el paso anterior.

   ```
   aws iam put-role-policy --role-name {{my-fis-role}} --policy-name {{my-fis-policy}} --policy-document file://{{fis-role-permissions-policy.json}}
   ```