

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Autorisations et rôles IAM requis
<a name="next-gen-iam-permissions"></a>

**AWS stratégie gérée**

Vous pouvez les associer `AWSResilienceHubV2AssessmentExecutionPolicy` à vos identités IAM. Lors de l'exécution d'une évaluation, cette politique accorde des autorisations d'accès en lecture seule à d'autres AWS services pour la découverte, l'évaluation et la gestion de la résilience. Pour obtenir des détails sur les autorisations incluses dans cette politique, consultez [AWSResilienceHubV2AssessmentExecutionPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-v2-assessment-policy).

**Note**  
Il `AWSResilienceHubV2AssessmentExecutionPolicy` remplace le précédent `AWSResilienceHubAsssessmentExecutionPolicy` pour être utilisé avec la prochaine génération de Resilience Hub.

Si vous utilisez des tests de résilience, joignez également la politique `AWSResilienceHubResilienceTestingPolicy` gérée. Cette politique accorde à Resilience Hub les autorisations AWS Fault Injection Service (AWS FIS) nécessaires pour démarrer et gérer des expériences en votre nom. Pour obtenir des détails sur les autorisations incluses dans cette politique, consultez [AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**Note**  
Si la politique gérée n'est pas disponible dans votre compte, créez une politique en ligne avec les mêmes autorisations. Pour le contenu de la politique, voir[AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**Rôle de l'IAM dans l'évaluation et les tests de résilience **

Pour exécuter une évaluation ou un test de résilience, la prochaine génération de Resilience Hub doit assumer un rôle IAM avec les autorisations requises. Ce rôle découvre et lit la configuration de vos AWS ressources et, lorsque les tests de résilience sont activés, lance et gère les AWS FIS expériences en votre nom.

Il existe deux manières de créer ou de configurer ce rôle :
+ **Créer un nouveau rôle de service (recommandé) ** — Lorsque vous créez ou modifiez un service dans la console Resilience Hub de nouvelle génération, vous pouvez choisir ** Créer un nouveau rôle ** dans Modèle ** d'autorisation**. La console crée automatiquement un rôle IAM avec la politique de confiance appropriée et y associe la politique `AWSResilienceHubV2AssessmentExecutionPolicy` gérée.
+ **Utiliser un rôle de service existant ** : si vous avez déjà configuré un rôle ou si vous préférez créer des rôles en dehors de la console, choisissez ** Utiliser un rôle de service existant**. Choisissez ensuite le rôle dans la liste et assurez-vous qu'il dispose de la politique de confiance et des autorisations requises décrites ci-dessous.

Pour créer le rôle manuellement, ouvrez la console IAM. Choisissez Politique de confiance ** personnalisée ** et utilisez une politique de confiance comme celle-ci :

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

Pour les autorisations, joignez la politique `AWSResilienceHubV2AssessmentExecutionPolicy` gérée. Si vous utilisez des tests de résilience, joignez également la politique `AWSResilienceHubResilienceTestingPolicy` gérée.

**Rôle IAM Service-Linked **

Le Resilience Hub de nouvelle génération crée automatiquement un Service-Linked rôle avec la politique `AWSResilienceHubServiceRolePolicy` gérée.

**Autorisations d'accès aux fichiers d'état Terraform **

Si vous incluez des fichiers d'état Terraform dans votre service Resilience Hub de nouvelle génération, accordez les autorisations nécessaires pour lire les fichiers Terraform depuis votre compartiment Amazon S3 avec une politique comme celle-ci :

```
{
  "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}}"
    }
  ]
}
```

**Autorisations Amazon EKS **

Si vous incluez des clusters Amazon EKS dans votre service Resilience Hub de nouvelle génération, suivez le processus en 3 étapes suivant pour fournir les autorisations Resilience Hub de nouvelle génération afin de lire les données de configuration de vos clusters Amazon EKS à l'aide du contrôle d'accès basé sur les rôles (RBAC) Kubernetes.

**Étape 1 : appliquez ce qui suit à votre cluster Amazon EKS **

Cela permet à Resilience Hub de nouvelle génération d'accéder en lecture seule aux ressources Kubernetes dont il a besoin dans tous les espaces de noms :

```
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
```

**Étape 2 : associez le rôle IAM au groupe Kubernetes **

Associez le rôle IAM que vous avez créé au groupe `resilience-hub-eks-access-group` Kubernetes. Vous pouvez utiliser les entrées d'accès Amazon EKS (recommandé) ou le `aws-auth` ConfigMap.

**Option A : Utilisation des entrées d'accès EKS (recommandé) **

Les entrées d'accès EKS constituent la méthode préférée pour gérer l'authentification des clusters. Votre cluster doit utiliser le mode `API` d'`API_AND_CONFIG_MAP`authentification.

```
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"]'
```

**Option B : utilisation de aws-auth ConfigMap **

Si votre cluster utilise le mode `API_AND_CONFIG_MAP` d'authentification `CONFIG_MAP` ou, vous pouvez modifier l' ConfigMap aws-auth à la place :

En utilisant 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
```

Ou modifiez manuellement les éléments ConfigMap suivants :

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

Ajoutez ceci `mapRoles` dans la section des données :

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

**Étape 3 : Vérifier **

Vérifiez que les ressources RBAC existent et que le mappage des rôles est en place :

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

Si vous utilisez des entrées d'accès (option A) :

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

Si vous utilisez aws-auth ConfigMap (option B) :

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