Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Riferimento ai ruoli e alle autorizzazioni IAM
Ruolo IAM per la valutazione e i test di resilienza
Per eseguire una valutazione o un test di resilienza, la prossima generazione di Resilience Hub deve essere in grado di assumere un ruolo IAM. Le valutazioni richiedono autorizzazioni di sola lettura per scoprire e comprendere la configurazione delle risorse. AWS I test di resilienza richiedono inoltre le autorizzazioni per avviare e gestire AWS Fault Injection Service ()AWS FIS esperimenti per conto dell'utente.
Puoi creare un ruolo IAM nella console AWS IAM. Scegli una politica di fiducia personalizzata e utilizza una politica di fiducia come questa:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resiliencehub.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
Per le autorizzazioni, allega la politica AWSResilienceHubV2AssessmentExecutionPolicy gestita. Questa policy garantisce l'accesso in sola lettura ai AWS servizi per l'individuazione, la valutazione e la gestione della resilienza.
Nota
AWSResilienceHubV2AssessmentExecutionPolicySostituisce il precedente AWSResilienceHubAsssessmentExecutionPolicy per l'uso con la nuova generazione di Resilience Hub. Per dettagli sulle autorizzazioni incluse in questa policy, consulta AWSResilienceHubV2AssessmentExecutionPolicy.
Se utilizzi i test di resilienza, allega anche la AWSResilienceHubResilienceTestingPolicy policy gestita. Questa policy concede a Resilience Hub le AWS FIS autorizzazioni necessarie per avviare e gestire gli esperimenti per tuo conto.
Nota
Se la policy gestita non è disponibile nel tuo account, crea una policy in linea con le stesse autorizzazioni. Per i contenuti della politica, consulta. AWSResilienceHubResilienceTestingPolicy
Service-Linked Ruolo IAM
Resilience Hub di nuova generazione crea automaticamente un Service-Linked ruolo con la policy AWSResilienceHubServiceRolePolicy gestita.
Autorizzazioni di accesso ai file di stato Terraform
Se includi file di stato Terraform nel tuo servizio Resilience Hub di nuova generazione, fornisci le autorizzazioni per leggere i file Terraform dal tuo bucket Amazon S3 con una politica come questa:
{ "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" } ] }
Ruolo di esecuzione IAM per i test di resilienza
I test di resilienza vengono eseguiti nell'ambito di un ruolo IAM che AWS Fault Injection Service presuppone l'inserimento di errori nelle risorse. Le autorizzazioni richieste dipendono dal modello di test e i test con account singolo e multiaccount utilizzano strutture di ruolo diverse. Per le politiche di attendibilità e autorizzazioni per ogni test, consulta. Ruoli di esecuzione IAM per i test di resilienza
Autorizzazioni Amazon EKS
Se includi cluster Amazon EKS nel tuo servizio Resilience Hub di nuova generazione, segui la seguente procedura in 3 fasi per fornire le autorizzazioni Resilience Hub di nuova generazione per leggere i dati di configurazione per i tuoi cluster Amazon EKS utilizzando il controllo degli accessi basato sui ruoli di Kubernetes (RBAC).
Fase 1: Applica quanto segue al tuo cluster Amazon EKS
Ciò garantisce al Resilience Hub di nuova generazione l'accesso in sola lettura alle risorse Kubernetes di cui ha bisogno in tutti i namespace:
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
Fase 2: Associa il ruolo IAM al gruppo Kubernetes
Associa il ruolo IAM che hai creato al gruppo Kubernetes. resilience-hub-eks-access-group Puoi utilizzare le voci di accesso di Amazon EKS (consigliato) o il. aws-auth ConfigMap
Opzione A: utilizzo delle voci di accesso EKS (consigliata)
Le voci di accesso EKS sono il metodo preferito per gestire l'autenticazione del cluster. Il cluster deve utilizzare la API nostra modalità di API_AND_CONFIG_MAP autenticazione.
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"]'
Opzione B: utilizzo di aws-auth ConfigMap
Se il tuo cluster utilizza CONFIG_MAP la nostra modalità di API_AND_CONFIG_MAP autenticazione, puoi invece modificare aws-auth: ConfigMap
Usando eksctl:
eksctl create iamidentitymapping \ --clustercluster-name\ --regionregion\ --arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole \ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole
Oppure modifica manualmente: ConfigMap
kubectl edit -n kube-system configmap/aws-auth
Aggiungilo mapRoles nella sezione dati:
- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole username: AwsResilienceHubAssessmentEKSAccessRole
Fase 3: Verifica
Conferma che le risorse RBAC esistono e che la mappatura dei ruoli sia attiva:
kubectl get clusterrole resilience-hub-eks-access-cluster-role kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding
Se si utilizzano le voci di accesso (opzione A):
aws eks describe-access-entry \ --cluster-namecluster-name\ --principal-arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole
Se si utilizza aws-auth ConfigMap (opzione B):
kubectl get configmap aws-auth -n kube-system -o yaml | grep -A 3 "ResilienceHubRole"