

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Habilitar el AWS Resilience Hub acceso a su clúster de Amazon Elastic Kubernetes Service
<a name="enabling-eks-in-arh"></a>

AWS Resilience Hub evalúa la resiliencia de un clúster de Amazon Elastic Kubernetes Service (Amazon EKS) mediante el análisis de la infraestructura de su clúster de Amazon EKS. AWS Resilience Hub utiliza la configuración de control de acceso basado en roles (RBAC) de Kubernetes para evaluar otras cargas de trabajo de Kubernetes (K8), que se implementan como parte del clúster de Amazon EKS. AWS Resilience Hub Para consultar su clúster de Amazon EKS para analizar y evaluar la carga de trabajo, debe completar lo siguiente:
+ Cree o utilice un rol AWS Identity and Access Management (IAM) existente en la misma cuenta que el clúster de Amazon EKS.
+ Permitir el acceso de los roles y usuarios de IAM a su clúster de Amazon EKS y conceder permisos adicionales de solo lectura a los recursos de K8 incluidos en el clúster de Amazon EKS. Para obtener más información sobre cómo habilitar el acceso de los roles y usuarios de IAM a su clúster de Amazon EKS, consulte [Habilitar el acceso de roles y usuarios de IAM](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) a su clúster: Amazon EKS.

El acceso al clúster Amazon EKS mediante las entidades de [AWS IAM está habilitado por el Autenticador de IAM para Kubernetes](https://github.com/kubernetes-sigs/aws-iam-authenticator#readme), que se ejecuta en el plano de control de Amazon EKS. El autenticador obtiene la información de la configuración de `aws-auth ConfigMap`.

**nota**  
Para obtener más información sobre todos los `aws-auth ConfigMap` ajustes, consulte [Formato de configuración completo](https://github.com/kubernetes-sigs/aws-iam-authenticator#full-configuration-format) en GitHub.
Para obtener más información acerca de las diferentes identidades de IAM, consulte [Identidades (usuarios, grupos y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) en la Guía del usuario de IAM.
Para obtener más información sobre la configuración del control de acceso basado en roles (RBAC) de Kubernetes, consulte [Uso de la autorización de RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/).

AWS Resilience Hub consulta los recursos de su clúster de Amazon EKS mediante un rol de IAM en su cuenta. Para acceder AWS Resilience Hub a los recursos de su clúster de Amazon EKS, la función de IAM utilizada por AWS Resilience Hub debe asignarse a un grupo de Kubernetes con suficientes permisos de solo lectura para los recursos de su clúster de Amazon EKS.

AWS Resilience Hub permite acceder a los recursos de su clúster de Amazon EKS mediante una de las siguientes opciones de rol de IAM:
+ Si su aplicación está configurada para utilizar el acceso basado en roles para acceder a los recursos, el rol de invocador o el rol de cuenta secundaria transferido a AWS Resilience Hub al crear una aplicación se utilizarán para acceder a su clúster de Amazon EKS durante la evaluación. 

  El siguiente diagrama conceptual muestra cómo AWS Resilience Hub accede a los clústeres de Amazon EKS cuando la aplicación está configurada como una aplicación basada en roles.  
![\[Diagram showing AWS Resilience Hub accessing EKS clusters in primary and secondary accounts.\]](http://docs.aws.amazon.com/es_es/resilience-hub/latest/userguide/images/EKS-accounts.png)
+ Si su aplicación está configurada para utilizar el usuario de IAM actual para acceder al recurso, debe crear un nuevo rol de IAM con el nombre `AwsResilienceHubAssessmentEKSAccessRole` en la misma cuenta que el del clúster de Amazon EKS. Este rol de IAM se utilizará entonces para acceder a su clúster de Amazon EKS.

  El siguiente diagrama conceptual muestra cómo AWS Resilience Hub accede a los clústeres de Amazon EKS implementados en su cuenta principal cuando la aplicación está configurada para usar los permisos de usuario de IAM actuales.  
![\[Icons representing login, current IAM role, assume role, and AWS Resilience Hub options.\]](http://docs.aws.amazon.com/es_es/resilience-hub/latest/userguide/images/SingleAccountEKS.png)

  El siguiente diagrama conceptual muestra cómo se AWS Resilience Hub accede a los clústeres de Amazon EKS implementados en una cuenta secundaria cuando la aplicación está configurada para usar los permisos de usuario de IAM actuales.  
![\[Icons representing Cuenta de AWS access roles and permissions for primary and secondary accounts.\]](http://docs.aws.amazon.com/es_es/resilience-hub/latest/userguide/images/MultiAccountEKS.png)

# Otorgar AWS Resilience Hub acceso a los recursos de su clúster de Amazon EKS
<a name="grant-permissions-to-eks-in-arh"></a>

AWS Resilience Hub le permite acceder a los recursos ubicados en los clústeres de Amazon EKS siempre que haya configurado los permisos necesarios.

**Para conceder los permisos necesarios AWS Resilience Hub para descubrir y evaluar los recursos del clúster Amazon EKS**

1. Configure un rol de IAM para acceder al clúster de Amazon EKS.

   Si ha configurado la aplicación mediante el acceso basado en roles, puede omitir este paso y continuar con el paso 2 y usar el rol que utilizó para crear la aplicación. Para obtener más información acerca de cómo AWS Resilience Hub utiliza roles de IAM, consulte [Cómo funciona AWS Resilience Hub con IAM](security_iam_service-with-iam.md).

   Si ha configurado la aplicación con los permisos de usuario de IAM actuales, debe crear el rol de IAM `AwsResilienceHubAssessmentEKSAccessRole` en la misma cuenta que la del clúster de Amazon EKS. Este rol de IAM se utilizará entonces al acceder a su clúster de Amazon EKS.

   Al importar y evaluar su aplicación, AWS Resilience Hub utiliza una función de IAM para acceder a los recursos de su clúster de Amazon EKS. Esta función debe crearse en la misma cuenta que su clúster de Amazon EKS y se asignará a un grupo de Kubernetes que incluya los permisos necesarios AWS Resilience Hub para evaluar su clúster de Amazon EKS.

   Si su clúster de Amazon EKS está en la misma cuenta que la cuenta de AWS Resilience Hub llamada, el rol debe crearse mediante la siguiente política de confianza de IAM. En esta política de confianza de IAM, `caller_IAM_role` se utiliza en la cuenta corriente para solicitar la APIs solicitud. AWS Resilience Hub
**nota**  
`caller_IAM_role`Es el rol que está asociado a su cuenta AWS de usuario.

   Si su clúster de Amazon EKS está en una cuenta cruzada (una cuenta diferente AWS Resilience Hub a la cuenta de llamada), debe crear el rol de `AwsResilienceHubAssessmentEKSAccessRole` IAM mediante la siguiente política de confianza de IAM:
**nota**  
Como requisito previo, para acceder al clúster de Amazon EKS que está desplegado en una cuenta diferente a la cuenta del AWS Resilience Hub usuario, debe configurar el acceso a varias cuentas. Para obtener más información, consulte 

1. Cree `ClusterRole` `ClusterRoleBinding` (o`RoleBinding`) roles para la AWS Resilience Hub aplicación.

   Creando `ClusterRole` y `ClusterRoleBinding` concediendo los permisos de solo lectura necesarios AWS Resilience Hub para analizar y evaluar los recursos que forman parte de determinados espacios de nombres de su clúster de Amazon EKS.

   AWS Resilience Hub le permite limitar su acceso a sus espacios de nombres para generar evaluaciones de resiliencia realizando una de las siguientes acciones:

   1. Conceder a la aplicación de AWS Resilience Hub acceso de lectura a todos los espacios de nombres.

       AWS Resilience Hub Para evaluar la resiliencia de los recursos en todos los espacios de nombres de un clúster de Amazon EKS, debe crear los siguientes y. `ClusterRole` `ClusterRoleBinding`
      + `resilience-hub-eks-access-cluster-role`(`ClusterRole`): define los permisos necesarios AWS Resilience Hub para evaluar su clúster de Amazon EKS.
      +  `resilience-hub-eks-access-cluster-role-binding` (`ClusterRoleBinding`): define un grupo denominado `resilience-hub-eks-access-group` en su clúster de Amazon EKS que concede a sus usuarios los permisos necesarios para ejecutar evaluaciones de resiliencia en AWS Resilience Hub.

      La plantilla para conceder a la aplicación de AWS Resilience Hub acceso de lectura en todos los espacios de nombres es la siguiente:

      ```
      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.  AWS Resilience Hub Otorga el acceso para leer espacios de nombres específicos.

      Puede limitar el acceso AWS Resilience Hub a los recursos dentro de un conjunto específico de espacios de nombres utilizando. `RoleBinding` Para ello, debe crear los siguientes roles:
      + `ClusterRole`— Para acceder AWS Resilience Hub a los recursos en espacios de nombres específicos dentro de un clúster de Amazon EKS y evaluar su resiliencia, debe crear las siguientes funciones. `ClusterRole`
        + `resilience-hub-eks-access-cluster-role`: especifica los permisos necesarios para evaluar los recursos dentro de espacios de nombres específicos.
        + `resilience-hub-eks-access-global-cluster-role`— Especifica los permisos necesarios para evaluar los recursos con ámbito de clúster, que no están asociados a un espacio de nombres específico, dentro de sus clústeres de Amazon EKS. AWS Resilience Hub requiere permisos para acceder a los recursos del ámbito del clúster (como los nodos) de su clúster de Amazon EKS a fin de evaluar la resiliencia de la aplicación.

        La plantilla para crear el rol de `ClusterRole` es la siguiente:

        ```
        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`rol: este rol otorga los permisos necesarios para acceder AWS Resilience Hub a los recursos dentro de espacios de nombres específicos. Es decir, debes crear un `RoleBinding` rol en cada espacio de nombres para poder acceder AWS Resilience Hub a los recursos dentro del espacio de nombres determinado. 
**nota**  
Si utiliza `ClusterAutoscaler` para el ajuste de escala automático, también debe crear `RoleBinding` en el `kube-system`. Esto es necesario para evaluar su `ClusterAutoscaler`, que forma parte del espacio de nombres de `kube-system`.  
De este modo, concederá AWS Resilience Hub los permisos necesarios para evaluar los recursos dentro del espacio de `kube-system` nombres mientras evalúa su clúster de Amazon EKS.

        La plantilla para crear el rol de `RoleBinding` es la siguiente:

        ```
        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`rol: este rol otorga los permisos necesarios para acceder AWS Resilience Hub a los recursos del ámbito del clúster.

        La plantilla para crear el rol de `ClusterRoleBinding` es la siguiente:

        ```
        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. Actualice `aws-auth ConfigMap` para asignar el `resilience-hub-eks-access-group` al rol de IAM utilizado para acceder al clúster de Amazon EKS.

   Este paso crea una asignación entre el rol de IAM utilizado en el paso 1 y el grupo de Kubernetes creado en el paso 2. Esta asignación otorga permisos a los roles de IAM para acceder a los recursos del clúster de Amazon EKS.
**nota**  
`ROLE-NAME` hace referencia al rol de IAM que se utiliza para acceder al clúster de Amazon EKS.  
Si la aplicación está configurada para usar el acceso basado en roles, el rol debe ser el rol de invocador o el rol de cuenta secundaria al que se transfiere al crear la aplicación. AWS Resilience Hub 
Si su aplicación está configurada para utilizar el usuario de IAM actual para acceder a los recursos, debe ser el de `AwsResilienceHubAssessmentEKSAccessRole`.
`ACCOUNT-ID`debe ser el ID de AWS cuenta del clúster de Amazon EKS.

   Puede crear el `aws-auth` `ConfigMap` utilizando una de las siguientes maneras:
   + Uso de `eksctl`

     Use el siguiente comando para actualizar el `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
     ```
   + Puede editar manualmente `aws-auth` `ConfigMap` añadiendo los datos del rol de IAM a la sección `mapRoles` de los datos secundarios de `ConfigMap`. Utilice el siguiente comando para editar el archivo `aws-auth` `ConfigMap`.

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

     La sección `mapRoles` consta de los siguientes parámetros:
     + `rolearn`: el [nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) del rol de IAM que se agregará. 
       + Sintaxis del ARN: `arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>`.
     + `username`: nombre del usuario de Kubernetes al que se mapea el rol de IAM (`AwsResilienceHubAssessmentEKSAccessRole`).
     + `groups`: los nombres de los grupos deben coincidir con los nombres de los grupos creados en el **Paso 2** (`resilience-hub-eks-access-group`).
**nota**  
Si la sección `mapRoles` no existe, debe añadirla manualmente.

     Utilice la siguiente plantilla para añadir la información del rol de IAM a la sección `mapRoles` de los datos secundarios de `ConfigMap`.

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