Octroi de l' AWS Resilience Hub accès aux ressources de votre cluster Amazon EKS - AWS Centre de résilience

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Octroi de l' AWS Resilience Hub accès aux ressources de votre cluster Amazon EKS

AWS Resilience Hub vous permet d'accéder aux ressources situées sur les clusters Amazon EKS à condition que vous ayez configuré les autorisations requises.

Pour accorder les autorisations nécessaires à la découverte et AWS Resilience Hub à l'évaluation des ressources au sein du cluster Amazon EKS
  1. Configurez un rôle IAM pour accéder au cluster Amazon EKS.

    Si vous avez configuré votre application à l'aide d'un accès basé sur les rôles, vous pouvez ignorer cette étape et passer à l'étape 2 et utiliser le rôle que vous avez utilisé pour créer l'application. Pour plus d'informations sur l' AWS Resilience Hub utilisation des rôles IAM, consultezComment AWS Resilience Hub fonctionne avec IAM.

    Si vous avez configuré votre application à l'aide des autorisations utilisateur IAM actuelles, vous devez créer le rôle AwsResilienceHubAssessmentEKSAccessRole IAM dans le même compte que celui du cluster Amazon EKS. Ce rôle IAM sera ensuite utilisé lors de l'accès à votre cluster Amazon EKS.

    Lors de l'importation et de l'évaluation de votre application, AWS Resilience Hub utilise un rôle IAM pour accéder aux ressources de votre cluster Amazon EKS. Ce rôle doit être créé dans le même compte que votre cluster Amazon EKS et il sera mappé à un groupe Kubernetes incluant les autorisations requises pour AWS Resilience Hub évaluer votre cluster Amazon EKS.

    Si votre cluster Amazon EKS se trouve sur le même compte que le compte d' AWS Resilience Hub appel, le rôle doit être créé selon la politique de confiance IAM suivante. Dans cette politique de confiance IAM, caller_IAM_role il est utilisé dans le compte courant pour AWS Resilience Hub appeler les API.

    Note

    caller_IAM_roleIl s'agit du rôle associé à votre compte AWS utilisateur.

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

    Si votre cluster Amazon EKS se trouve sur un compte croisé (un compte différent du compte d' AWS Resilience Hub appel), vous devez créer le rôle AwsResilienceHubAssessmentEKSAccessRole IAM en appliquant la politique de confiance IAM suivante :

    Note

    Comme condition préalable, pour accéder au cluster Amazon EKS déployé dans un compte différent de celui de l' AWS Resilience Hub utilisateur, vous devez configurer l'accès multicompte. Pour plus d'informations, veuillez consulter la rubrique

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
  2. Créez ClusterRole et/ou des ClusterRoleBinding rôles pour AWS Resilience Hub l'application. RoleBinding

    Création ClusterRole et ClusterRoleBinding octroi des autorisations de lecture seule requises AWS Resilience Hub pour analyser et évaluer les ressources faisant partie de certains espaces de noms de votre cluster Amazon EKS.

    AWS Resilience Hub vous permet de limiter son accès à vos espaces de noms pour générer des évaluations de résilience en effectuant l'une des opérations suivantes :

    1. Accordez un accès en lecture à tous les espaces de noms à AWS Resilience Hub l'application.

      AWS Resilience Hub Pour évaluer la résilience des ressources dans tous les espaces de noms d'un cluster Amazon EKS, vous devez créer les éléments suivants ClusterRole et. ClusterRoleBinding

      • resilience-hub-eks-access-cluster-role(ClusterRole) — Définit les autorisations requises AWS Resilience Hub pour évaluer votre cluster Amazon EKS.

      • resilience-hub-eks-access-cluster-role-binding(ClusterRoleBinding) — Définit un groupe nommé resilience-hub-eks-access-group dans votre cluster Amazon EKS qui accorde à ses utilisateurs les autorisations requises pour effectuer des évaluations de résilience. AWS Resilience Hub

      Le modèle permettant d'accorder un accès en lecture à tous les espaces de noms à AWS Resilience Hub l'application est le suivant :

      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. Accorder AWS Resilience Hub l'accès à la lecture d'espaces de noms spécifiques.

      Vous pouvez limiter AWS Resilience Hub l'accès aux ressources au sein d'un ensemble spécifique d'espaces de noms en utilisantRoleBinding. Pour ce faire, vous devez créer les rôles suivants :

      • ClusterRole— Pour accéder AWS Resilience Hub aux ressources dans des espaces de noms spécifiques au sein d'un cluster Amazon EKS et évaluer sa résilience, vous devez créer les rôles suivantsClusterRole.

        • resilience-hub-eks-access-cluster-role— Spécifie les autorisations nécessaires pour évaluer les ressources au sein d'espaces de noms spécifiques.

        • resilience-hub-eks-access-global-cluster-role— Spécifie les autorisations nécessaires pour évaluer les ressources délimitées au cluster, qui ne sont pas associées à un espace de noms spécifique, au sein de vos clusters Amazon EKS. AWS Resilience Hub nécessite des autorisations pour accéder aux ressources du cluster (telles que les nœuds) de votre cluster Amazon EKS afin d'évaluer la résilience de votre application.

        Le modèle pour créer un ClusterRole rôle est le suivant :

        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
      • RoleBindingrôle — Ce rôle accorde les autorisations requises pour accéder AWS Resilience Hub aux ressources dans des espaces de noms spécifiques. En d'autres termes, vous devez créer un RoleBinding rôle dans chaque espace de noms pour permettre d'accéder AWS Resilience Hub aux ressources de l'espace de noms donné.

        Note

        Si vous utilisez ClusterAutoscaler pour la mise à l'échelle automatique, vous devez également créer RoleBinding dans lekube-system. Cela est nécessaire pour évaluer votreClusterAutoscaler, qui fait partie de l'espace de kube-system noms.

        Ce faisant, vous accorderez AWS Resilience Hub les autorisations requises pour évaluer les ressources au sein de l'espace de kube-system noms lors de l'évaluation de votre cluster Amazon EKS.

        Le modèle pour créer un RoleBinding rôle est le suivant :

        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
      • ClusterRoleBindingrôle — Ce rôle accorde les autorisations requises pour accéder AWS Resilience Hub aux ressources délimitées au cluster.

        Le modèle pour créer un ClusterRoleBinding rôle est le suivant :

        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. Mettez à jour le aws-auth ConfigMap pour le mapper resilience-hub-eks-access-group avec le rôle IAM utilisé pour accéder au cluster Amazon EKS.

    Cette étape crée un mappage entre le rôle IAM utilisé à l'étape 1 et le groupe Kubernetes créé à l'étape 2. Ce mappage accorde des autorisations aux rôles IAM pour accéder aux ressources du cluster Amazon EKS.

    Note
    • ROLE-NAMEfait référence au rôle IAM utilisé pour accéder au cluster Amazon EKS.

      • Si votre application est configurée pour utiliser l'accès basé sur les rôles, le rôle doit être soit le rôle d'invocateur, soit le rôle de compte secondaire transmis AWS Resilience Hub lors de la création de l'application.

      • Si votre application est configurée pour utiliser l'utilisateur IAM actuel pour accéder aux ressources, il doit s'agir duAwsResilienceHubAssessmentEKSAccessRole.

    • ACCOUNT-IDdoit être l'ID de AWS compte du cluster Amazon EKS.

    Vous pouvez créer le aws-auth ConfigMap en utilisant l'une des méthodes suivantes :

    • Utiliser eksctl

      Utilisez la commande suivante pour mettre à jour aws-auth ConfigMap :

      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
    • Vous pouvez les modifier manuellement aws-auth ConfigMap en ajoutant les détails du rôle IAM dans la mapRoles ConfigMap section des données sous-jacentes. Utilisez la commande suivante pour modifier le aws-authConfigMap.

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

      mapRolescette section comprend les paramètres suivants :

      • rolearn— Le nom de ressource Amazon (ARN) du rôle IAM à ajouter.

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

      • username— Le nom d'utilisateur dans Kubernetes à associer au rôle IAM (). AwsResilienceHubAssessmentEKSAccessRole

      • groups— Les noms des groupes doivent correspondre aux noms des groupes créés à l'étape 2 (resilience-hub-eks-access-group).

      Note

      Si mapRoles la section n'existe pas, vous devez l'ajouter manuellement.

      Utilisez le modèle suivant pour ajouter les détails du rôle IAM à la mapRoles ConfigMap section des données sous-jacentes.

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