View a markdown version of this page

Erforderliche IAM-Berechtigungen und -Rollen - AWS Resilience Hub

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erforderliche IAM-Berechtigungen und -Rollen

AWS Verwaltete Richtlinie

Sie können die AWSResilienceHubV2AssessmentExecutionPolicy an Ihre IAM-Identitäten anhängen. Während der Durchführung einer Bewertung gewährt diese Richtlinie Lesezugriffsberechtigungen für andere AWS Dienste zur Erkennung, Bewertung und Verwaltung der Resilienz. Details zu Berechtigungen dieser Richtlinie finden Sie unter AWSResilienceHubV2AssessmentExecutionPolicy.

Anmerkung

Der AWSResilienceHubV2AssessmentExecutionPolicy ersetzt den vorherigen AWSResilienceHubAsssessmentExecutionPolicy und wird mit der nächsten Generation des Resilience Hubs verwendet.

Wenn Sie Resilienztests verwenden, fügen Sie auch die AWSResilienceHubResilienceTestingPolicy verwaltete Richtlinie hinzu. Diese Richtlinie gewährt Resilience Hub die AWS Fault Injection Service (AWS FIS) Berechtigungen, die erforderlich sind, um Experimente in Ihrem Namen zu starten und zu verwalten. Details zu Berechtigungen dieser Richtlinie finden Sie unter AWSResilienceHubResilienceTestingPolicy.

Anmerkung

Wenn die verwaltete Richtlinie in Ihrem Konto nicht verfügbar ist, erstellen Sie eine Inline-Richtlinie mit denselben Berechtigungen. Den Inhalt der Richtlinie finden Sie unterAWSResilienceHubResilienceTestingPolicy.

Die Rolle des IAM bei Bewertungen und Resilienztests

Um eine Bewertung oder einen Resilienztest durchzuführen, muss die nächste Generation von Resilience Hub eine IAM-Rolle mit den erforderlichen Berechtigungen übernehmen. Diese Rolle erkennt und liest die Konfiguration Ihrer AWS Ressourcen und — wenn Resilienztests aktiviert sind — startet und verwaltet sie in AWS FIS Ihrem Namen.

Es gibt zwei Möglichkeiten, diese Rolle zu erstellen oder zu konfigurieren:

  • Eine neue Servicerolle erstellen (empfohlen) — Wenn Sie einen Dienst in der Resilience Hub-Konsole der nächsten Generation erstellen oder bearbeiten, können Sie unter Berechtigungsmodell die Option Neue Rolle erstellen auswählen. Die Konsole erstellt automatisch eine IAM-Rolle mit der richtigen Vertrauensrichtlinie und hängt die AWSResilienceHubV2AssessmentExecutionPolicy verwaltete Richtlinie an.

  • Eine vorhandene Servicerolle verwenden — Wenn Sie bereits eine Rolle konfiguriert haben oder Rollen lieber außerhalb der Konsole erstellen möchten, wählen Sie Eine vorhandene Servicerolle verwenden. Wählen Sie dann die Rolle aus der Liste aus und stellen Sie sicher, dass die Rolle über die unten beschriebenen erforderlichen Vertrauensrichtlinien und Berechtigungen verfügt.

Manuelles Erstellen der Rolle

Um die Rolle manuell zu erstellen, öffnen Sie die IAM-Konsole. Wählen Sie Benutzerdefinierte Vertrauensrichtlinie und verwenden Sie eine Vertrauensrichtlinie wie diese:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resiliencehub.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }

Hängen Sie die AWSResilienceHubV2AssessmentExecutionPolicy verwaltete Richtlinie an, um Berechtigungen zu erhalten. Wenn Sie Resilienztests verwenden, hängen Sie auch die AWSResilienceHubResilienceTestingPolicy verwaltete Richtlinie an.

IAM-Rolle Service-Linked

Resilience Hub der nächsten Generation erstellt automatisch eine Service-Linked Rolle mit der AWSResilienceHubServiceRolePolicy verwalteten Richtlinie.

Zugriffsberechtigungen für Terraform-Statusdateien

Wenn Sie Terraform-Statusdateien in Ihren Resilience Hub-Service der nächsten Generation aufnehmen, gewähren Sie Berechtigungen zum Lesen der Terraform-Dateien aus Ihrem Amazon S3-Bucket mit einer Richtlinie wie dieser:

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

Amazon EKS-Berechtigungen

Wenn Sie Amazon EKS-Cluster in Ihren Resilience Hub-Service der nächsten Generation aufnehmen, folgen Sie dem folgenden dreistufigen Prozess, um Resilience Hub-Berechtigungen der nächsten Generation zum Lesen von Konfigurationsdaten für Ihre Amazon EKS-Cluster mithilfe der rollenbasierten Zugriffskontrolle (RBAC) von Kubernetes bereitzustellen.

Schritt 1: Wenden Sie Folgendes auf Ihren Amazon EKS-Cluster an

Dadurch erhält Resilience Hub der nächsten Generation schreibgeschützten Zugriff auf die Kubernetes-Ressourcen, die er in allen Namespaces benötigt:

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

Schritt 2: Ordnen Sie die IAM-Rolle der Kubernetes-Gruppe zu

Ordnen Sie die von Ihnen erstellte IAM-Rolle der Kubernetes-Gruppe zu. resilience-hub-eks-access-group Sie können entweder Amazon EKS-Zugriffseinträge (empfohlen) oder die verwenden. aws-auth ConfigMap

Option A: Verwendung von EKS-Zugriffseinträgen (empfohlen)

EKS-Zugriffseinträge sind die bevorzugte Methode zur Verwaltung der Cluster-Authentifizierung. Ihr Cluster muss unseren API_AND_CONFIG_MAP Authentifizierungsmodus verwendenAPI.

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

Option B: Verwenden von aws-auth ConfigMap

Wenn Ihr Cluster unseren API_AND_CONFIG_MAP Authentifizierungsmodus verwendetCONFIG_MAP, können Sie stattdessen aws-auth bearbeiten: ConfigMap

Mit 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

Oder bearbeiten Sie manuell: ConfigMap

kubectl edit -n kube-system configmap/aws-auth

Fügen Sie dies mapRoles im Datenbereich hinzu:

- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole username: AwsResilienceHubAssessmentEKSAccessRole

Schritt 3: Verifizieren

Vergewissern Sie sich, dass die RBAC-Ressourcen vorhanden sind und die Rollenzuordnung vorhanden ist:

kubectl get clusterrole resilience-hub-eks-access-cluster-role kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding

Bei Verwendung von Zugriffseinträgen (Option A):

aws eks describe-access-entry \ --cluster-name cluster-name \ --principal-arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole

Wenn Sie aws-auth verwenden ConfigMap (Option B):

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