View a markdown version of this page

Autorizzazioni e ruoli IAM richiesti - AWS Resilience Hub

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à.

Autorizzazioni e ruoli IAM richiesti

AWS policy gestita

Puoi collegarli AWSResilienceHubV2AssessmentExecutionPolicy alle tue identità IAM. Durante l'esecuzione di una valutazione, questa policy concede autorizzazioni di accesso in sola lettura ad altri AWS servizi per la scoperta, la valutazione e la gestione della resilienza. Per dettagli sulle autorizzazioni incluse in questa policy, consulta AWSResilienceHubV2AssessmentExecutionPolicy.

Nota

AWSResilienceHubV2AssessmentExecutionPolicySostituisce il precedente AWSResilienceHubAsssessmentExecutionPolicy per l'uso con la nuova generazione di Resilience Hub.

Se utilizzi i test di resilienza, allega anche la AWSResilienceHubResilienceTestingPolicy policy gestita. Questa policy concede a Resilience Hub le autorizzazioni AWS Fault Injection Service (AWS FIS) necessarie per avviare e gestire gli esperimenti per tuo conto. Per dettagli sulle autorizzazioni incluse in questa policy, consulta AWSResilienceHubResilienceTestingPolicy.

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

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 assumere un ruolo IAM con le autorizzazioni richieste. Questo ruolo rileva e legge la configurazione delle tue AWS risorse e, quando il test di resilienza è abilitato, avvia e gestisce AWS FIS gli esperimenti per tuo conto.

Esistono due modi per creare o configurare questo ruolo:

  • Crea un nuovo ruolo di servizio (consigliato): quando crei o modifichi un servizio nella console Resilience Hub di nuova generazione, puoi scegliere Crea nuovo ruolo nel modello di autorizzazione. La console crea automaticamente un ruolo IAM con la policy di fiducia corretta e allega la policy AWSResilienceHubV2AssessmentExecutionPolicy gestita.

  • Usa un ruolo di servizio esistente: se hai già un ruolo configurato o se preferisci creare ruoli all'esterno della console, scegli Usa un ruolo di servizio esistente. Quindi scegli il ruolo dall'elenco e assicurati che il ruolo disponga della politica di fiducia e delle autorizzazioni richieste descritte di seguito.

Creazione manuale del ruolo

Per creare il ruolo manualmente, apri la console 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. Se utilizzi i test di resilienza, allega anche la policy AWSResilienceHubResilienceTestingPolicy gestita.

Ruolo IAM Service-Linked

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

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-name cluster-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 \ --cluster cluster-name \ --region region \ --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-name cluster-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"