

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Habilitando o AWS Resilience Hub acesso ao seu cluster do Amazon Elastic Kubernetes Service
<a name="enabling-eks-in-arh"></a>

AWS Resilience Hub avalia a resiliência de um cluster do Amazon Elastic Kubernetes Service (Amazon EKS) analisando a infraestrutura do seu cluster Amazon EKS. AWS Resilience Hub usa a configuração de controle de acesso baseado em função (RBAC) do Kubernetes para avaliar outras cargas de trabalho do Kubernetes (K8s), que são implantadas como parte do cluster Amazon EKS. AWS Resilience Hub Para consultar seu cluster Amazon EKS para analisar e avaliar a carga de trabalho, você deve concluir o seguinte:
+ Crie ou use uma função existente AWS Identity and Access Management (IAM) na mesma conta do cluster Amazon EKS.
+ Habilite o acesso de usuários e perfis do IAM ao seu cluster do Amazon EKS e conceda permissões adicionais somente de leitura aos recursos K8s dentro do cluster Amazon EKS. Para obter mais informações sobre como habilitar o acesso de usuários e perfis do IAM ao seu cluster Amazon EKS, consulte [Habilitar o acesso de usuários e perfis do IAM ao seu cluster: Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html).

O acesso ao seu cluster do Amazon EKS usando as entidades do IAM é habilitado pelo [Autenticador IAM da AWS para Kubernetes](https://github.com/kubernetes-sigs/aws-iam-authenticator#readme), que é executado no ambiente de gerenciamento do Amazon EKS. O autenticador obtém suas informações de configuração de `aws-auth ConfigMap`.

**nota**  
Para obter mais informações sobre todas as `aws-auth ConfigMap` configurações, consulte [Formato de configuração completo](https://github.com/kubernetes-sigs/aws-iam-authenticator#full-configuration-format) ativado GitHub.
Para obter mais informações sobre diferentes identidades do IAM, consulte [Identidades: usuários, grupos e funções](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no Guia do usuário do IAM.
Para obter mais informações sobre a configuração de controle de acesso baseado em função (RBAC) do Kubernetes, consulte [Usar autorização RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/).

AWS Resilience Hub consulta recursos dentro do seu cluster Amazon EKS usando uma função do IAM em sua conta. AWS Resilience Hub Para acessar recursos dentro do seu cluster Amazon EKS, a função do IAM usada por AWS Resilience Hub deve ser mapeada para um grupo Kubernetes com permissões suficientes de somente leitura para recursos dentro do seu cluster Amazon EKS.

AWS Resilience Hub permite acessar seus recursos de cluster do Amazon EKS usando uma das seguintes opções de função do IAM:
+ Se seu aplicativo estiver configurado para usar acesso baseado em funções para acessar recursos, a função de invocador ou a função de conta secundária transmitida para o AWS Resilience Hub durante a criação de um aplicativo será usada para acessar seu cluster do Amazon EKS durante a avaliação. 

  O diagrama conceitual a seguir mostra como AWS Resilience Hub acessa os clusters do Amazon EKS quando o aplicativo é configurado como um aplicativo baseado em funções.  
![\[Diagram showing AWS Resilience Hub accessing EKS clusters in primary and secondary accounts.\]](http://docs.aws.amazon.com/pt_br/resilience-hub/latest/userguide/images/EKS-accounts.png)
+ Se seu aplicativo estiver configurado para usar o usuário atual do IAM para acessar o recurso, você deverá criar um novo perfil do IAM com o nome `AwsResilienceHubAssessmentEKSAccessRole` na mesma conta do cluster do Amazon EKS. Esse perfil do IAM será então usado para acessar seu cluster do Amazon EKS.

  O diagrama conceitual a seguir mostra como AWS Resilience Hub acessa os clusters do Amazon EKS implantados em sua conta principal quando o aplicativo está configurado para usar as permissões de usuário atuais do IAM.  
![\[Icons representing login, current IAM role, assume role, and AWS Resilience Hub options.\]](http://docs.aws.amazon.com/pt_br/resilience-hub/latest/userguide/images/SingleAccountEKS.png)

  O diagrama conceitual a seguir mostra como AWS Resilience Hub acessa os clusters do Amazon EKS implantados em uma conta secundária quando o aplicativo está configurado para usar as permissões de usuário atuais do IAM.  
![\[Icons representing Conta da AWS access roles and permissions for primary and secondary accounts.\]](http://docs.aws.amazon.com/pt_br/resilience-hub/latest/userguide/images/MultiAccountEKS.png)

# Concedendo AWS Resilience Hub acesso a recursos em seu cluster Amazon EKS
<a name="grant-permissions-to-eks-in-arh"></a>

AWS Resilience Hub permite que você acesse recursos localizados nos clusters do Amazon EKS, desde que você tenha configurado as permissões necessárias.

**Conceder as permissões necessárias AWS Resilience Hub para descobrir e avaliar recursos dentro do cluster Amazon EKS**

1. Configure um perfil do IAM para acessar o cluster do Amazon EKS.

   Se você configurou seu aplicativo usando o acesso baseado em função, você pode pular esta etapa e prosseguir para a etapa 2 e usar a função que você usou para criar o aplicativo. Para obter mais informações sobre como o AWS Resilience Hub usa os perfis do IAM, consulte [Como o AWS Resilience Hub funciona com o IAM](security_iam_service-with-iam.md).

   Se você configurou seu aplicativo usando as permissões atuais de usuário do IAM, você deve criar um perfil do IAM `AwsResilienceHubAssessmentEKSAccessRole` na mesma conta do cluster do Amazon EKS. Esse perfil do IAM será então usado ao acessar seu cluster do Amazon EKS.

   Ao importar e avaliar seu aplicativo, AWS Resilience Hub usa uma função do IAM para acessar os recursos em seu cluster Amazon EKS. Essa função deve ser criada na mesma conta do seu cluster Amazon EKS e será mapeada com um grupo Kubernetes que inclui as permissões exigidas AWS Resilience Hub para avaliar seu cluster Amazon EKS.

   Se o seu cluster Amazon EKS estiver na mesma conta da conta de AWS Resilience Hub chamada, a função deverá ser criada usando a seguinte política de confiança do IAM. Nesta política de confiança do IAM, `caller_IAM_role` é usado na conta corrente para chamar o APIs for AWS Resilience Hub.
**nota**  
Essa `caller_IAM_role` é a função associada à sua conta de AWS usuário.

   Se o seu cluster Amazon EKS estiver em uma conta cruzada (uma conta diferente da conta de AWS Resilience Hub chamada), você deverá criar a função do `AwsResilienceHubAssessmentEKSAccessRole` IAM usando a seguinte política de confiança do IAM:
**nota**  
Como pré-requisito, para acessar o cluster Amazon EKS que é implantado em uma conta diferente da conta do AWS Resilience Hub usuário, você deve configurar o acesso de várias contas. Para obter mais informações, consulte . 

1. Crie `ClusterRole` e `ClusterRoleBinding` (ou`RoleBinding`) funções para o AWS Resilience Hub aplicativo.

   `ClusterRoleBinding`Criará `ClusterRole` e concederá as permissões de somente leitura necessárias AWS Resilience Hub para analisar e avaliar recursos que fazem parte de determinados namespaces em seu cluster Amazon EKS.

   AWS Resilience Hub permite que você limite o acesso aos seus namespaces para gerar avaliações de resiliência preenchendo uma das seguintes opções:

   1. Conceda acesso de leitura em todos os namespaces ao aplicativo do AWS Resilience Hub .

       AWS Resilience Hub Para avaliar a resiliência dos recursos em todos os namespaces em um cluster do Amazon EKS, você deve criar o seguinte e. `ClusterRole` `ClusterRoleBinding`
      + `resilience-hub-eks-access-cluster-role`(`ClusterRole`) — Define as permissões necessárias AWS Resilience Hub para avaliar seu cluster Amazon EKS.
      +  `resilience-hub-eks-access-cluster-role-binding` (`ClusterRoleBinding`): define um grupo nomeado de `resilience-hub-eks-access-group` em seu cluster do Amazon EKS, concedendo a seus usuários as permissões necessárias para executar avaliações de resiliência no AWS Resilience Hub.

      O modelo para conceder acesso de leitura em todos os namespaces ao aplicativo do AWS Resilience Hub é o seguinte:

      ```
      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
          - 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
      ```

   1. Concedendo AWS Resilience Hub acesso para ler namespaces específicos.

      Você pode limitar o acesso AWS Resilience Hub a recursos dentro de um conjunto específico de namespaces usando. `RoleBinding` Para isso, você deve criar as seguintes funções:
      + `ClusterRole`— AWS Resilience Hub Para acessar os recursos em namespaces específicos dentro de um cluster do Amazon EKS e avaliar sua resiliência, você deve criar as seguintes funções. `ClusterRole`
        + `resilience-hub-eks-access-cluster-role`: especifica as permissões necessárias para avaliar os recursos em namespaces específicos.
        + `resilience-hub-eks-access-global-cluster-role`— Especifica as permissões necessárias para avaliar recursos com escopo de cluster, que não estão associados a um namespace específico, em seus clusters do Amazon EKS. AWS Resilience Hub exige permissões para acessar recursos com escopo de cluster (como nós) em seu cluster Amazon EKS para avaliar a resiliência do seu aplicativo.

        O modelo para criar a função `ClusterRole` é o seguinte:

        ```
        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
              - nodepools
            verbs:
              - get
              - list
          - apiGroups:
              - karpenter.k8s.aws
            resources:
              - awsnodetemplates
              - ec2nodeclasses
            verbs:
              - get
              - list
        
        ---
        EOF
        ```
      + `RoleBinding`função — Essa função concede as permissões necessárias AWS Resilience Hub para acessar recursos em namespaces específicos. Ou seja, você deve criar uma `RoleBinding` função em cada namespace para permitir o acesso AWS Resilience Hub a recursos dentro de um determinado namespace. 
**nota**  
Se você estiver usando `ClusterAutoscaler` para escalonamento automático, você também deve criar `RoleBinding` em `kube-system`. Isso é necessário para avaliar o seu `ClusterAutoscaler`, que faz parte do namespace `kube-system`.  
Ao fazer isso, você AWS Resilience Hub concederá as permissões necessárias para avaliar recursos dentro do `kube-system` namespace enquanto avalia seu cluster Amazon EKS.

        O modelo para criar a função `RoleBinding` é o seguinte:

        ```
        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
        ```
      + `ClusterRoleBinding`função — Essa função concede as permissões necessárias AWS Resilience Hub para acessar recursos com escopo de cluster.

        O modelo para criar a função `ClusterRoleBinding` é o seguinte:

        ```
        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
        ```

1. Atualize `aws-auth ConfigMap` para mapear `resilience-hub-eks-access-group` com o perfil do IAM que é usado para acessar o cluster do Amazon EKS.

   Essa etapa cria um mapeamento entre o perfil do IAM usado na etapa 1 com o grupo do Kubernetes criado na etapa 2. Esse mapeamento concede permissões a perfis do IAM para acessar recursos dentro do cluster do Amazon EKS.
**nota**  
O `ROLE-NAME` refere-se ao perfil do IAM usado para acessar o cluster do Amazon EKS.  
Se seu aplicativo estiver configurado para usar acesso baseado em funções, a função deverá ser a função de invocador ou a função de conta secundária que é passada AWS Resilience Hub durante a criação do aplicativo.
Se seu aplicativo estiver configurado para usar o usuário atual do IAM para acessar recursos, ele deverá ser `AwsResilienceHubAssessmentEKSAccessRole`.
`ACCOUNT-ID`deve ser o ID da AWS conta do cluster Amazon EKS.

   É possível criar `aws-auth` `ConfigMap` usando uma das seguintes maneiras:
   + Usar o `eksctl`

     Use o comando a seguir para atualizar `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
     ```
   + Você pode editar manualmente `aws-auth` `ConfigMap` adicionando os detalhes do perfil do IAM à seção `mapRoles` de `ConfigMap` nos dados. Use o comando a seguir para editar o `aws-auth` `ConfigMap`.

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

     A seção `mapRoles` consiste nos seguintes parâmetros:
     + `rolearn`: o [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) do perfil do IAM a ser adicionado. 
       + Sintaxe do ARN: `arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>`.
     + `username`: o username dentro do Kubernetes a ser mapeado para o perfil do IAM (`AwsResilienceHubAssessmentEKSAccessRole`).
     + `groups`: os nomes dos grupos devem corresponder aos nomes dos grupos criados na **Etapa 2** (`resilience-hub-eks-access-group`).
**nota**  
Se a seção `mapRoles` não existir, você deverá adicioná-la manualmente.

     Use o modelo a seguir para adicionar os detalhes do perfil do IAM à seção `mapRoles` de `ConfigMap` nos dados.

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