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

IAM-Rolle für die Bewertung

Um eine Bewertung durchführen zu können, muss die nächste Generation von Resilience Hub in der Lage sein, eine IAM-Rolle mit einer Reihe von Leseberechtigungen zu übernehmen, um die Konfiguration Ihrer Ressourcen zu ermitteln und zu verstehen. AWS

Sie können eine IAM-Rolle in der IAM-Konsole erstellen. AWS Wählen Sie Benutzerdefinierte Vertrauensrichtlinie und verwenden Sie eine Vertrauensrichtlinie wie die folgende:

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

Wählen Sie für Berechtigungen die AWSResilienceHubAsssessmentExecutionPolicy verwaltete Richtlinie und die ReadOnlyAccess verwaltete Richtlinie aus. Die ReadOnlyAccess Richtlinie ist erforderlich, um die Fehlermodusbeurteilung optimal durchführen zu können.

IAM-Rolle Service-Linked

Resilience Hub der nächsten Generation erstellt automatisch eine Service-Linked Rolle mit der AWSResilienceHubServiceRolePolicy verwalteten Richtlinie. Diese Rolle ist nur für den Support von AWS Organizations erforderlich.

Dateizugriffsberechtigungen im Terraform-Status

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 S3-Bucket mit einer Richtlinie wie der folgenden:

{ "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 3-stufigen 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 wird Resilience Hub der nächsten Generation schreibgeschützten Zugriff auf die benötigten Kubernetes-Ressourcen in allen Namespaces gewährt:

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: Verwendung von aws-auth ConfigMap

Wenn Ihr Cluster den 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üge das unter mapRoles dem Datenbereich hinzu:

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

Schritt 3: Überprüfen

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

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

Wenn Sie Zugriffseinträge verwenden (Option A):

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

Bei Verwendung von aws-auth ConfigMap (Option B):

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