AWS Resilience Hub Zugriff auf Ressourcen in Ihrem Amazon EKS-Cluster gewähren - AWS Zentrum für Resilienz

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.

AWS Resilience Hub Zugriff auf Ressourcen in Ihrem Amazon EKS-Cluster gewähren

AWS Resilience Hub ermöglicht Ihnen den Zugriff auf Ressourcen, die sich auf Amazon EKS-Clustern befinden, sofern Sie die erforderlichen Berechtigungen konfiguriert haben.

Um die erforderlichen Berechtigungen AWS Resilience Hub für die Erkennung und Bewertung von Ressourcen innerhalb des Amazon EKS-Clusters zu erteilen
  1. Konfigurieren Sie eine IAM-Rolle für den Zugriff auf den Amazon EKS-Cluster.

    Wenn Sie Ihre Anwendung mit rollenbasiertem Zugriff konfiguriert haben, können Sie diesen Schritt überspringen und mit Schritt 2 fortfahren und die Rolle verwenden, die Sie für die Erstellung der Anwendung verwendet haben. Weitere Informationen zur AWS Resilience Hub Verwendung von IAM-Rollen finden Sie unter. So funktioniert AWS Resilience Hub mit IAM

    Wenn Sie Ihre Anwendung mit aktuellen IAM-Benutzerberechtigungen konfiguriert haben, müssen Sie die AwsResilienceHubAssessmentEKSAccessRole IAM-Rolle in demselben Konto wie das des Amazon EKS-Clusters erstellen. Diese IAM-Rolle wird dann beim Zugriff auf Ihren Amazon EKS-Cluster verwendet.

    AWS Resilience Hub Verwendet beim Import und der Bewertung Ihrer Anwendung eine IAM-Rolle, um auf die Ressourcen in Ihrem Amazon EKS-Cluster zuzugreifen. Diese Rolle sollte in demselben Konto wie Ihr Amazon EKS-Cluster erstellt werden. Sie wird einer Kubernetes-Gruppe zugeordnet, die die für die Bewertung Ihres Amazon EKS-Clusters erforderlichen Berechtigungen enthält. AWS Resilience Hub

    Wenn sich Ihr Amazon EKS-Cluster in demselben Konto wie das AWS Resilience Hub aufrufende Konto befindet, sollte die Rolle mithilfe der folgenden IAM-Vertrauensrichtlinie erstellt werden. In dieser IAM-Vertrauensrichtlinie caller_IAM_role wird im Girokonto verwendet, um die APIs für aufzurufen. AWS Resilience Hub

    Anmerkung

    Das caller_IAM_role ist die Rolle, die Ihrem AWS Benutzerkonto zugeordnet ist.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/caller_IAM_role" }, "Action": "sts:AssumeRole" } ] }

    Wenn sich Ihr Amazon EKS-Cluster in einem Cross-Konto befindet (ein anderes Konto als das AWS Resilience Hub anrufende Konto), müssen Sie die AwsResilienceHubAssessmentEKSAccessRole IAM-Rolle mithilfe der folgenden IAM-Vertrauensrichtlinie erstellen:

    Anmerkung

    Als Voraussetzung für den Zugriff auf den Amazon EKS-Cluster, der in einem anderen Konto als dem Konto des AWS Resilience Hub Benutzers bereitgestellt wird, müssen Sie den Zugriff mit mehreren Konten konfigurieren. Weitere Informationen finden Sie unter

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen Sie Rollen ClusterRole und ClusterRoleBinding (oderRoleBinding) für die AWS Resilience Hub Anwendung.

    Erstellt ClusterRole und gewährt ClusterRoleBinding die erforderlichen Leseberechtigungen für AWS Resilience Hub die Analyse und Bewertung von Ressourcen, die Teil bestimmter Namespaces in Ihrem Amazon EKS-Cluster sind.

    AWS Resilience Hub ermöglicht es Ihnen, den Zugriff auf Ihre Namespaces für die Erstellung von Resilienzanalysen zu beschränken, indem Sie einen der folgenden Schritte ausführen:

    1. Gewähren Sie der Anwendung Lesezugriff auf alle Namespaces. AWS Resilience Hub

      AWS Resilience Hub Um die Resilienz von Ressourcen in allen Namespaces innerhalb eines Amazon EKS-Clusters zu bewerten, müssen Sie das folgende und erstellen. ClusterRole ClusterRoleBinding

      • resilience-hub-eks-access-cluster-role(ClusterRole) — Definiert die Berechtigungen, die für AWS Resilience Hub die Bewertung Ihres Amazon EKS-Clusters erforderlich sind.

      • resilience-hub-eks-access-cluster-role-binding(ClusterRoleBinding) — Definiert eine resilience-hub-eks-access-group in Ihrem Amazon EKS-Cluster benannte Gruppe, die ihren Benutzern die erforderlichen Berechtigungen zur Durchführung von Resilienzanalysen gewährt. AWS Resilience Hub

      Die Vorlage, um der AWS Resilience Hub Anwendung Lesezugriff für alle Namespaces zu gewähren, lautet wie folgt:

      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 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 verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates 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
    2. Gewährung AWS Resilience Hub des Zugriffs auf das Lesen bestimmter Namespaces.

      Sie können AWS Resilience Hub den Zugriff auf Ressourcen innerhalb eines bestimmten Satzes von Namespaces einschränken, indem Sie. RoleBinding Um dies zu erreichen, müssen Sie die folgenden Rollen erstellen:

      • ClusterRole— AWS Resilience Hub Um auf die Ressourcen in bestimmten Namespaces innerhalb eines Amazon EKS-Clusters zuzugreifen und dessen Resilienz zu bewerten, müssen Sie die folgenden Rollen erstellen. ClusterRole

        • resilience-hub-eks-access-cluster-role— Gibt die erforderlichen Berechtigungen an, um die Ressourcen in bestimmten Namespaces zu bewerten.

        • resilience-hub-eks-access-global-cluster-role— Gibt die erforderlichen Berechtigungen an, um clusterbezogene Ressourcen, die keinem bestimmten Namespace zugeordnet sind, innerhalb Ihrer Amazon EKS-Cluster zu bewerten. AWS Resilience Hub erfordert Berechtigungen für den Zugriff auf Ressourcen im Clusterbereich (z. B. Knoten) in Ihrem Amazon EKS-Cluster, um die Ausfallsicherheit Ihrer Anwendung zu bewerten.

        Die Vorlage zum Erstellen ClusterRole einer Rolle lautet wie folgt:

        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 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 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: resilience-hub-eks-access-global-cluster-role rules: - apiGroups: - "" resources: - nodes verbs: - get - list - apiGroups: - karpenter.sh resources: - provisioners verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates verbs: - get - list --- EOF
      • RoleBindingRolle — Diese Rolle gewährt die erforderlichen Berechtigungen für den AWS Resilience Hub Zugriff auf Ressourcen in bestimmten Namespaces. Das heißt, Sie müssen in jedem Namespace RoleBinding eine Rolle erstellen, um auf Ressourcen innerhalb des angegebenen AWS Resilience Hub Namespaces zugreifen zu können.

        Anmerkung

        Wenn Sie Autoscaling verwendenClusterAutoscaler, müssen Sie zusätzlich in der erstellenRoleBinding. kube-system Dies ist notwendig, um IhrenClusterAutoscaler, der Teil des kube-system Namespace ist, zu beurteilen.

        Auf diese Weise gewähren Sie AWS Resilience Hub die erforderlichen Berechtigungen, um Ressourcen innerhalb des kube-system Namespace zu bewerten und gleichzeitig Ihren Amazon EKS-Cluster zu bewerten.

        Die Vorlage zum Erstellen einer RoleBinding Rolle lautet wie folgt:

        cat << EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: resilience-hub-eks-access-cluster-role-binding namespace: <namespace> 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
      • ClusterRoleBindingRolle — Diese Rolle gewährt die erforderlichen Berechtigungen für den Zugriff AWS Resilience Hub auf Ressourcen im Clusterbereich.

        Die Vorlage zum Erstellen einer ClusterRoleBinding Rolle lautet wie folgt:

        cat << EOF | kubectl apply -f - --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: resilience-hub-eks-access-global-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-global-cluster-role apiGroup: rbac.authorization.k8s.io --- EOF
  3. Aktualisieren Sie dasaws-auth ConfigMap, um das der resilience-hub-eks-access-group IAM-Rolle zuzuordnen, die für den Zugriff auf den Amazon EKS-Cluster verwendet wird.

    In diesem Schritt wird eine Zuordnung zwischen der in Schritt 1 verwendeten IAM-Rolle und der in Schritt 2 erstellten Kubernetes-Gruppe erstellt. Diese Zuordnung gewährt IAM-Rollen Berechtigungen für den Zugriff auf Ressourcen innerhalb des Amazon EKS-Clusters.

    Anmerkung
    • ROLE-NAMEbezieht sich auf die IAM-Rolle, die für den Zugriff auf den Amazon EKS-Cluster verwendet wird.

      • Wenn Ihre Anwendung für den rollenbasierten Zugriff konfiguriert ist, sollte es sich bei der Rolle entweder um die Rolle des Aufrufers oder um die Rolle des sekundären Kontos handeln, an die AWS Resilience Hub beim Erstellen der Anwendung übergeben wurde.

      • Wenn Ihre Anwendung so konfiguriert ist, dass sie den aktuellen IAM-Benutzer für den Zugriff auf Ressourcen verwendet, muss es der sein. AwsResilienceHubAssessmentEKSAccessRole

    • ACCOUNT-IDsollte die AWS Konto-ID des Amazon EKS-Clusters sein.

    Sie können das auf aws-auth ConfigMap eine der folgenden Arten erstellen:

    • Verwenden von eksctl

      Verwenden Sie den folgenden Befehl, um das zu aktualisieren aws-authConfigMap:

      eksctl create iamidentitymapping \ --cluster <cluster-name> \ --region=<region-code> \ --arn arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>\ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole
    • Sie können sie manuell bearbeiten, aws-auth ConfigMap indem Sie die IAM-Rollendetails zum mapRoles Abschnitt ConfigMap unter den Daten hinzufügen. Verwenden Sie den folgenden Befehl, um das zu bearbeiten. aws-auth ConfigMap

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

      mapRolesAbschnitt besteht aus den folgenden Parametern:

      • rolearn— Der Amazon-Ressourcenname (ARN) der IAM-Rolle, die hinzugefügt werden soll.

        • ARN-Syntax —arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>.

      • username— Der Benutzername in Kubernetes, der der IAM-Rolle () zugeordnet werden soll. AwsResilienceHubAssessmentEKSAccessRole

      • groups— Die Gruppennamen sollten mit den in Schritt 2 () erstellten Gruppennamen übereinstimmen. resilience-hub-eks-access-group

      Anmerkung

      Wenn der mapRoles Abschnitt nicht existiert, müssen Sie diesen Abschnitt manuell hinzufügen.

      Verwenden Sie die folgende Vorlage, um die IAM-Rollendetails zum mapRoles Abschnitt ConfigMap unter Daten hinzuzufügen.

      - groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME> username: AwsResilienceHubAssessmentEKSAccessRole