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.
Référence des rôles et autorisations IAM
Rôle de l'IAM en matière d'évaluation
Pour exécuter une évaluation, la prochaine génération de Resilience Hub doit être en mesure d'assumer un rôle IAM avec un certain nombre d'autorisations en lecture seule pour découvrir et comprendre la configuration de vos ressources. AWS
Vous pouvez créer un rôle IAM dans la console AWS IAM. Choisissez une 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, choisissez la stratégie AWSResilienceHubAsssessmentExecutionPolicy gérée et la stratégie ReadOnlyAccess gérée. La ReadOnlyAccess politique est requise pour optimiser les performances de l'évaluation du mode de défaillance.
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. Ce rôle n'est requis que pour le support AWS des Organisations.
Autorisations d'accès aux fichiers d'état de 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 autoriser le Resilience Hub de nouvelle génération à 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 donne à Next Generation Resilience Hub un accès 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 : associer le rôle IAM au groupe Kubernetes
Mappez 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ées) 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 du cluster. 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 le ConfigMap :
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"