View a markdown version of this page

Riferimento ai ruoli e alle autorizzazioni IAM - 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à.

Riferimento ai ruoli e alle autorizzazioni IAM

Ruolo IAM per la valutazione

Per eseguire una valutazione, la nuova generazione di Resilience Hub deve essere in grado di assumere un ruolo IAM con una serie di autorizzazioni di sola lettura per scoprire e comprendere la configurazione delle risorse. AWS

Puoi creare un ruolo IAM nella console IAM. AWS 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, scegli la politica AWSResilienceHubAsssessmentExecutionPolicy gestita e la politica ReadOnlyAccess gestita. La ReadOnlyAccess policy è necessaria per garantire le migliori prestazioni della valutazione della modalità di errore.

Service-Linked Ruolo IAM

Resilience Hub di nuova generazione crea automaticamente un Service-Linked ruolo con la policy AWSResilienceHubServiceRolePolicy gestita. Questo ruolo è richiesto solo per il supporto di AWS Organizations.

Autorizzazioni di accesso ai file dello stato di 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 policy 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 tre fasi per fornire le autorizzazioni di 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 (RBAC) di Kubernetes.

Fase 1: applica quanto segue al tuo cluster Amazon EKS

Ciò garantisce a Resilience Hub di nuova generazione l'accesso in sola lettura alle risorse Kubernetes di cui ha bisogno su 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: mappare il ruolo IAM al gruppo Kubernetes

Mappa il ruolo IAM che hai creato sul 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 (consigliato)

Le voci di accesso EKS sono il metodo preferito per gestire l'autenticazione del cluster. Il cluster deve utilizzare la modalità di API_AND_CONFIG_MAP autenticazione API o.

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 la modalità di API_AND_CONFIG_MAP autenticazione CONFIG_MAP o, 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

Verifica che le risorse RBAC esistano 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 usi aws-auth ConfigMap (Opzione B):

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