Concessione dell' AWS Resilience Hub accesso alle risorse nel cluster Amazon EKS - AWS Hub di resilienza

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à.

Concessione dell' AWS Resilience Hub accesso alle risorse nel cluster Amazon EKS

AWS Resilience Hub consente di accedere alle risorse situate nei cluster Amazon EKS a condizione che siano state configurate le autorizzazioni richieste.

Per concedere le autorizzazioni necessarie AWS Resilience Hub per la scoperta e la valutazione delle risorse all'interno del cluster Amazon EKS
  1. Configura un ruolo IAM per accedere al cluster Amazon EKS.

    Se hai configurato l'applicazione utilizzando l'accesso basato sui ruoli, puoi saltare questo passaggio e procedere al passaggio 2 e utilizzare il ruolo che avevi usato per creare l'applicazione. Per ulteriori informazioni su come vengono AWS Resilience Hub utilizzati i ruoli IAM, consulta. Come funziona AWS Resilience Hub con IAM

    Se hai configurato la tua applicazione utilizzando le attuali autorizzazioni utente AwsResilienceHubAssessmentEKSAccessRole IAM, devi creare il ruolo IAM nello stesso account del cluster Amazon EKS. Questo ruolo IAM verrà quindi utilizzato durante l'accesso al cluster Amazon EKS.

    Durante l'importazione e la valutazione dell'applicazione, AWS Resilience Hub utilizza un ruolo IAM per accedere alle risorse nel cluster Amazon EKS. Questo ruolo deve essere creato nello stesso account del cluster Amazon EKS e verrà mappato con un gruppo Kubernetes che include le autorizzazioni richieste per AWS Resilience Hub valutare il cluster Amazon EKS.

    Se il tuo cluster Amazon EKS si trova nello stesso account dell'account AWS Resilience Hub chiamante, il ruolo deve essere creato utilizzando la seguente policy di fiducia IAM. In questa policy di fiducia IAM, caller_IAM_role viene utilizzato nell'account corrente per richiamare le API. AWS Resilience Hub

    Nota

    caller_IAM_roleÈ il ruolo associato al tuo account AWS utente.

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

    Se il tuo cluster Amazon EKS si trova in un account incrociato (un account diverso dall'account AWS Resilience Hub chiamante), devi creare il ruolo AwsResilienceHubAssessmentEKSAccessRole IAM utilizzando la seguente politica di fiducia IAM:

    Nota

    Come prerequisito, per accedere al cluster Amazon EKS distribuito in un account diverso da quello dell' AWS Resilience Hub utente, devi configurare l'accesso multiaccount. Per ulteriori informazioni, consulta la pagina

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
  2. Crea ClusterRole e ClusterRoleBinding (oRoleBinding) ruoli per l'applicazione. AWS Resilience Hub

    Stai creando ClusterRole e ClusterRoleBinding concederai le autorizzazioni di sola lettura necessarie AWS Resilience Hub per analizzare e valutare le risorse che fanno parte di determinati namespace nel tuo cluster Amazon EKS.

    AWS Resilience Hub ti consente di limitarne l'accesso ai tuoi namespace per la generazione di valutazioni di resilienza completando una delle seguenti operazioni:

    1. Concedi all'applicazione l'accesso in lettura su tutti i namespace. AWS Resilience Hub

      AWS Resilience Hub Per valutare la resilienza delle risorse in tutti i namespace all'interno di un cluster Amazon EKS, devi creare quanto segue e. ClusterRole ClusterRoleBinding

      • resilience-hub-eks-access-cluster-role(ClusterRole) — Definisce le autorizzazioni richieste AWS Resilience Hub per valutare il tuo cluster Amazon EKS.

      • resilience-hub-eks-access-cluster-role-binding(ClusterRoleBinding) — Definisce un gruppo denominato resilience-hub-eks-access-group nel cluster Amazon EKS che concede ai suoi utenti le autorizzazioni necessarie per eseguire valutazioni della resilienza. AWS Resilience Hub

      Il modello per concedere l'accesso in lettura su tutti i namespace all'applicazione è il seguente: AWS Resilience Hub

      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. Concessione AWS Resilience Hub dell'accesso alla lettura di namespace specifici.

      È possibile limitare AWS Resilience Hub l'accesso alle risorse all'interno di un set specifico di namespace utilizzando. RoleBinding A tal fine, è necessario creare i seguenti ruoli:

      • ClusterRole— Per accedere AWS Resilience Hub alle risorse in namespace specifici all'interno di un cluster Amazon EKS e valutarne la resilienza, devi creare i seguenti ruoli. ClusterRole

        • resilience-hub-eks-access-cluster-role— Speciifica le autorizzazioni necessarie per valutare le risorse all'interno di namespace specifici.

        • resilience-hub-eks-access-global-cluster-role: specifica le autorizzazioni necessarie per valutare le risorse con ambito cluster, che non sono associate a uno spazio dei nomi specifico, all'interno dei cluster Amazon EKS. AWS Resilience Hub richiede le autorizzazioni per accedere a risorse con ambito cluster (come i nodi) sul cluster Amazon EKS per valutare la resilienza dell'applicazione.

        Il modello per creare il ruolo è il seguenteClusterRole:

        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
      • RoleBindingruolo: questo ruolo concede le autorizzazioni necessarie per accedere alle risorse all'interno AWS Resilience Hub di namespace specifici. Cioè, è necessario creare un RoleBinding ruolo in ogni spazio dei nomi per consentire AWS Resilience Hub l'accesso alle risorse all'interno dello spazio dei nomi specificato.

        Nota

        Se si utilizza ClusterAutoscaler la scalabilità automatica, è necessario creare anche in. RoleBinding kube-system Questo è necessario per valutare il tuoClusterAutoscaler, che fa parte del namespace. kube-system

        In questo modo, concederai AWS Resilience Hub le autorizzazioni necessarie per valutare le risorse all'interno del kube-system namespace durante la valutazione del tuo cluster Amazon EKS.

        Il modello per creare il RoleBinding ruolo è il seguente:

        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
      • ClusterRoleBindingruolo: questo ruolo concede le autorizzazioni necessarie per accedere AWS Resilience Hub alle risorse con ambito cluster.

        Il modello per creare il ruolo è il seguenteClusterRoleBinding:

        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. Aggiorna il aws-auth ConfigMap per mappare il resilience-hub-eks-access-group ruolo IAM utilizzato per accedere al cluster Amazon EKS.

    Questo passaggio crea una mappatura tra il ruolo IAM utilizzato nella fase 1 e il gruppo Kubernetes creato nella fase 2. Questa mappatura concede le autorizzazioni ai ruoli IAM per l'accesso alle risorse all'interno del cluster Amazon EKS.

    Nota
    • ROLE-NAMEsi riferisce al ruolo IAM utilizzato per accedere al cluster Amazon EKS.

      • Se l'applicazione è configurata per utilizzare l'accesso basato sui ruoli, il ruolo deve essere il ruolo di invoker o il ruolo di account secondario a cui viene passato AWS Resilience Hub durante la creazione dell'applicazione.

      • Se l'applicazione è configurata per utilizzare l'utente IAM corrente per accedere alle risorse, deve essere il. AwsResilienceHubAssessmentEKSAccessRole

    • ACCOUNT-IDdovrebbe essere l'ID dell' AWS account del cluster Amazon EKS.

    Puoi crearlo aws-auth ConfigMap utilizzando uno dei seguenti modi:

    • Uso di eksctl

      Utilizzate il seguente comando per aggiornare 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
    • Puoi modificare manualmente aws-auth ConfigMap aggiungendo i dettagli del ruolo IAM alla mapRoles ConfigMap sezione dei dati sottostanti. Usa il seguente comando per modificare il aws-authConfigMap.

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

      mapRolesla sezione è composta dai seguenti parametri:

      • rolearn— L'Amazon Resource Name (ARN) del ruolo IAM da aggiungere.

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

      • username— Il nome utente all'interno di Kubernetes da mappare al ruolo IAM (). AwsResilienceHubAssessmentEKSAccessRole

      • groups— I nomi dei gruppi devono corrispondere ai nomi dei gruppi creati nella Fase 2 (). resilience-hub-eks-access-group

      Nota

      Se la mapRoles sezione non esiste, è necessario aggiungerla manualmente.

      Utilizza il seguente modello per aggiungere i dettagli del ruolo IAM alla mapRoles ConfigMap sezione dei dati sottostanti.

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