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
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.
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.
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, voirAWSResilienceHubResilienceTestingPolicy.
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
AWSResilienceHubV2AssessmentExecutionPolicygé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.
Création manuelle du rôle
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_MAPauthentification.
aws eks create-access-entry \ --cluster-namecluster-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 \ --clustercluster-name\ --regionregion\ --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-namecluster-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"