

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.

# Permisos y funciones de IAM necesarios
<a name="next-gen-iam-permissions"></a>

**AWS política administrada**

Puede adjuntar la `AWSResilienceHubV2AssessmentExecutionPolicy` a las identidades de IAM. Al ejecutar una evaluación, esta política otorga permisos de acceso de solo lectura a otros AWS servicios para el descubrimiento, la evaluación y la administración de la resiliencia. Para obtener más detalles acerca de los permisos incluidos en esta política, consulte [AWSResilienceHubV2AssessmentExecutionPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-v2-assessment-policy).

**nota**  
`AWSResilienceHubV2AssessmentExecutionPolicy`Sustituye al anterior `AWSResilienceHubAsssessmentExecutionPolicy` para su uso por el de la próxima generación de Resilience Hub.

Si utilizas pruebas de resiliencia, adjunta también la política `AWSResilienceHubResilienceTestingPolicy` gestionada. Esta política otorga a Resilience Hub los AWS Fault Injection Service (AWS FIS) permisos necesarios para iniciar y gestionar experimentos en tu nombre. Para obtener más detalles acerca de los permisos incluidos en esta política, consulte [AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**nota**  
Si la política gestionada no está disponible en tu cuenta, crea una política integrada con los mismos permisos. Para ver el contenido de la política, consulte[AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**El papel de la IAM en la evaluación y las pruebas de resiliencia **

Para realizar una evaluación o una prueba de resiliencia, la próxima generación de Resilience Hub debe asumir una función de IAM con los permisos necesarios. Este rol descubre y lee la configuración de sus AWS recursos y, cuando las pruebas de resiliencia están habilitadas, inicia y administra AWS FIS los experimentos en su nombre.

Hay dos maneras de crear o configurar este rol:
+ **Crear un nuevo rol de servicio (recomendado)**: al crear o editar un servicio en la consola de próxima generación de Resilience Hub, puede elegir ** Crear nuevo rol ** en el modelo de ** permisos**. La consola crea automáticamente un rol de IAM con la política de confianza correcta y adjunta la política `AWSResilienceHubV2AssessmentExecutionPolicy` administrada.
+ **Use un rol de servicio existente**: si ya tiene un rol configurado o si prefiere crear roles fuera de la consola, elija ** Usar un rol de servicio existente. ** A continuación, elija el rol de la lista y asegúrese de que tenga la política de confianza y los permisos necesarios que se describen a continuación.

Para crear el rol manualmente, abra la consola de IAM. Elija una política de confianza ** personalizada ** y utilice una política de confianza como la siguiente:

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

Para los permisos, adjunte la política `AWSResilienceHubV2AssessmentExecutionPolicy` gestionada. Si utilizas pruebas de resiliencia, adjunta también la política `AWSResilienceHubResilienceTestingPolicy` gestionada.

**Función de IAM Service-Linked **

La próxima generación de Resilience Hub crea automáticamente un Service-Linked rol con la política `AWSResilienceHubServiceRolePolicy` administrada.

**Permisos de acceso a los archivos estatales de Terraform **

Si va a incluir los archivos de estado de Terraform en su servicio Resilience Hub de próxima generación, conceda permisos para leer los archivos de Terraform desde su bucket de Amazon S3 con una política como la siguiente:

```
{
  "Version": "2012-10-17"		 	 	 ,
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::{{s3-bucket-name}}/{{path-to-state-file}}"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::{{s3-bucket-name}}"
    }
  ]
}
```

**Permisos de Amazon EKS **

Si va a incluir clústeres de Amazon EKS en su servicio de Resilience Hub de próxima generación, siga el siguiente proceso de 3 pasos para conceder permisos a Resilience Hub de próxima generación para leer los datos de configuración de sus clústeres de Amazon EKS mediante el control de acceso basado en roles (RBAC) de Kubernetes.

**Paso 1: aplique lo siguiente a su clúster de Amazon EKS **

Esto otorga a Resilience Hub de última generación acceso de solo lectura a los recursos de Kubernetes que necesita en todos los espacios de nombres:

```
cat << EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: resilience-hub-eks-access-cluster-role
rules:
- apiGroups:
    - ""
  resources:
    - pods
    - replicationcontrollers
    - nodes
    - services
  verbs:
    - get
    - list
- apiGroups:
    - apps
  resources:
    - deployments
    - replicasets
  verbs:
    - get
    - list
- apiGroups:
    - policy
  resources:
    - poddisruptionbudgets
  verbs:
    - get
    - list
- apiGroups:
    - autoscaling.k8s.io
  resources:
    - verticalpodautoscalers
  verbs:
    - get
    - list
- apiGroups:
    - autoscaling
  resources:
    - horizontalpodautoscalers
  verbs:
    - get
    - list
- apiGroups:
    - karpenter.sh
  resources:
    - provisioners
    - nodepools
  verbs:
    - get
    - list
- apiGroups:
    - karpenter.k8s.aws
  resources:
    - awsnodetemplates
    - ec2nodeclasses
  verbs:
    - get
    - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: resilience-hub-eks-access-cluster-role-binding
subjects:
  - kind: Group
    name: resilience-hub-eks-access-group
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: resilience-hub-eks-access-cluster-role
  apiGroup: rbac.authorization.k8s.io
---
EOF
```

**Paso 2: Asigne la función de IAM al grupo de Kubernetes **

Asigne el rol de IAM que creó al grupo de Kubernetes. `resilience-hub-eks-access-group` Puede utilizar las entradas de acceso de Amazon EKS (recomendado) o las. `aws-auth` ConfigMap

**Opción A: usar las entradas de acceso de EKS (recomendado) **

Las entradas de acceso EKS son el método preferido para administrar la autenticación de clústeres. El clúster debe utilizar el modo de `API_AND_CONFIG_MAP` autenticación `API` o.

```
aws eks create-access-entry \
  --cluster-name {{cluster-name}} \
  --principal-arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole \
  --type STANDARD \
  --kubernetes-groups '["resilience-hub-eks-access-group"]'
```

**Opción B: usar aws-auth ConfigMap **

Si su clúster usa el modo de `API_AND_CONFIG_MAP` autenticación `CONFIG_MAP` o, puede editar el aws-auth en su lugar: ConfigMap 

Con eksctl:

```
eksctl create iamidentitymapping \
  --cluster {{cluster-name}} \
  --region {{region}} \
  --arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole \
  --group resilience-hub-eks-access-group \
  --username AwsResilienceHubAssessmentEKSAccessRole
```

O edite manualmente: ConfigMap

```
kubectl edit -n kube-system configmap/aws-auth
```

Añada esto `mapRoles` en la sección de datos:

```
- groups:
    - resilience-hub-eks-access-group
  rolearn: arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole
  username: AwsResilienceHubAssessmentEKSAccessRole
```

**Paso 3: Verificar **

Confirme que los recursos de RBAC existen y que la asignación de funciones está establecida:

```
kubectl get clusterrole resilience-hub-eks-access-cluster-role
kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding
```

Si utiliza entradas de acceso (opción A):

```
aws eks describe-access-entry \
  --cluster-name {{cluster-name}} \
  --principal-arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole
```

Si usa aws-auth ConfigMap (opción B):

```
kubectl get configmap aws-auth -n kube-system -o yaml | grep -A 3 "ResilienceHubRole"
```