

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.

# Autenticación de entradas de acceso a Amazon E
<a name="eks-access-entries"></a>

Amazon EKS admite dos mecanismos para conceder a un director de IAM permiso para llamar a la API del clúster: la Kubernetes API de entrada de acceso antigua `aws-auth` ConfigMap y la más reciente[. ](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) Una entrada de acceso otorga acceso a una Kubernetes API principal de IAM sin necesidad de editar una. ConfigMap AWS Batch puede autenticarse en su clúster a través de cualquiera de los dos mecanismos.

Cuando lo `eksConfiguration.accessEntry.desiredState` configuras `ENABLED` en un entorno de procesamiento, AWS Batch puedes administrar la entrada de acceso para ese entorno de procesamiento en el clúster. Ya no es necesario editar manualmente el `aws-auth` ConfigMap.

El AWS Batch aprovisionamiento de una entrada de acceso depende de su entorno AWS Batch informático y de la configuración del clúster de Amazon EKS. Para obtener más información, consulte [Interacción con el modo de autenticación del clúster ``](#eks-access-entries-matrix).

## Valores de `acceso Entry.desiredState`
<a name="eks-access-entries-desired-state"></a>

El `desiredState` campo on `EksAccessEntry` declara el estado de entrada de acceso deseado para el entorno informático. Los valores válidos son los siguientes:

`ENABLED`  
AWS Batch crea una entrada AWS Batch de acceso administrado en el clúster para el entorno informático. AWS Batch solo creará una entrada de acceso AWS Batch administrado si todos los entornos informáticos del clúster están configurados en `ENABLED` (consulte `desiredState` [Cómo AWS Batch reconcilia el estado `deseado en todos los entornos informáticos`](#eks-access-entries-reconciliation) para obtener más información).

`DISABLED`  
AWS Batch elimina la entrada de acceso AWS Batch administrado del clúster. AWS Batch solo eliminará una entrada de acceso AWS Batch administrado si todos los entornos informáticos del clúster están configurados en `DISABLED` (consulte `desiredState` [Cómo AWS Batch reconcilia el estado `deseado en todos los entornos informáticos`](#eks-access-entries-reconciliation) para obtener más información). El acceso al clúster debe configurarse a través del `aws-auth` ConfigMap.

`INHERIT_FROM_CLUSTER`  
AWS Batch se refiere a la entrada `status` de acceso actual del clúster. En un clúster de Amazon EKS cuyo modo de autenticación es`API`, AWS Batch crea y administra una entrada de acceso, ya que el clúster no tiene `aws-auth` ConfigMap a qué recurrir. En un clúster cuyo modo de autenticación es `CONFIG_MAP` o`API_AND_CONFIG_MAP`, AWS Batch no agrega ni elimina una entrada de acceso.

El entorno informático también muestra un `accessEntry.status` campo de solo lectura en las respuestas. [ DescribeComputeEnvironments ](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeComputeEnvironments.html) `ACTIVE`significa que existe una entrada de acceso AWS Batch administrado para el entorno informático en el clúster y tiene prioridad sobre. `aws-auth` ConfigMap `INACTIVE`significa que no hay ninguna entrada AWS Batch de acceso administrado. Esto puede deberse a que los entornos informáticos que `desiredState` se `DISABLED` dirigen al clúster aún no están de acuerdo o a que la entrada aún no se ha aprovisionado. `desiredState` Si `accessEntry.status` es así`INACTIVE`, Batch lo usa `aws-auth` ConfigMap para acceder al clúster.

**nota**  
Una entrada de acceso se `ACTIVE` notifica tan pronto como existe en el clúster, incluso si no AWS Batch ha terminado de asociar la política de acceso que la hace utilizable. Si el estado del entorno de procesamiento cambia a `INVALID` while `accessEntry.status` is`ACTIVE`, consulte[La configuración de la entrada de acceso a Amazon EKS está incompleta](batch_eks_invalid_compute_environment.md#batch_eks_access_entry_incomplete).

**nota**  
Si omites el `accessEntry` campo, AWS Batch no se registra un `desiredState` para el entorno de procesamiento y `DescribeComputeEnvironments` no se devuelve ninguno. Con el fin de aprovisionar la entrada de acceso, AWS Batch se comporta de la misma manera que lo hace para. `INHERIT_FROM_CLUSTER`

## Interacción con el modo de autenticación del clúster ``
<a name="eks-access-entries-matrix"></a>

El AWS Batch comportamiento de un determinado usuario `desiredState` depende del modo de autenticación del clúster. La siguiente tabla se aplica tanto a como`CreateComputeEnvironment`. `UpdateComputeEnvironment`


<table>
<thead>
  <tr><th>Clúster <code>authenticationMode</code></th><th>Entorno informático <code>accessEntry.desiredState=ENABLED</code></th><th>Entorno informático <code>accessEntry.desiredState=DISABLED</code></th><th>Entorno informático <code>accessEntry.desiredState=INHERIT_FROM_CLUSTER</code></th></tr>
</thead>
<tbody>
  <tr><td><code>CONFIG_MAP</code></td><td colspan="3">Las entradas de acceso no están disponibles en el clúster, por lo que AWS Batch no crea ni elimina ninguna. AWS Batch sigue registrando el valor que especifiques. Tras cambiar el modo de autenticación del clúster, el valor registrado surtirá efecto en la próxima <code>UpdateComputeEnvironment</code> llamada <code>CreateComputeEnvironment</code> o llamada que especifique<code>desiredState</code>.</td></tr>
  <tr><td><code>API_AND_CONFIG_MAP</code></td><td colspan="2">AWS Batch compara los valores registrados en los entornos informáticos que comparten el clúster; consulte<a href="#eks-access-entries-reconciliation">Cómo AWS Batch reconcilia el estado `deseado en todos los entornos informáticos`</a>.</td><td>Se conserva el modo de acceso existente. AWS Batch no agrega ni elimina una entrada de acceso.</td></tr>
  <tr><td><code>API</code></td><td>La entrada de acceso se crea y se mantiene en el clúster.</td><td>La solicitud se rechaza. Un clúster en este modo no admite la autenticación y el <code>aws-auth</code> ConfigMap ConfigMap método no se puede habilitar después de la creación del clúster, por lo que el entorno informático no <code>DISABLED</code> tendría ninguna forma de autenticarse.</td><td>La entrada de acceso se crea y se mantiene en el clúster. Cuando el clúster es <code>API</code> solo, heredar equivale a. <code>ENABLED</code></td></tr>
</tbody>
</table>


## Cómo AWS Batch reconcilia el estado `deseado en todos los entornos informáticos`
<a name="eks-access-entries-reconciliation"></a>

Dado que un solo clúster de Amazon EKS puede respaldar varios entornos AWS Batch informáticos, la configuración de acceso de un clúster es un recurso compartido. AWS Batch por lo tanto, reconcilia o compara y resuelve los `desiredState` valores registrados en esos entornos informáticos.

Cuando `authenticationMode` es el del clúster`API_AND_CONFIG_MAP`, AWS Batch compara los datos `desiredState` registrados para cada entorno informático de la misma AWS cuenta y AWS región a la que se dirige el clúster. AWS Batch usa esta comparación para determinar si se debe agregar o eliminar la entrada de acceso en cada `CreateComputeEnvironment` `UpdateComputeEnvironment` operación que especifique`desiredState`.

Todos los entornos informáticos tienen `desiredState=ENABLED`  
AWS Batch crea la entrada de acceso en el clúster.

Todos los entornos informáticos tienen `desiredState=DISABLED`  
AWS Batch elimina la entrada de acceso del clúster, si existe.

No todos `desiredState` los valores registrados coinciden  
AWS Batch conserva el modo de acceso existente. La entrada de acceso no se agrega ni se quita. Esto incluye cualquier combinación de `ENABLED``DISABLED`, y`INHERIT_FROM_CLUSTER`, y también incluye cualquier entorno informático que no tenga ningún `desiredState` registro.

**nota**  
Para hacer la transición de un clúster cuyo modo de autenticación sea `API_AND_CONFIG_MAP` de `aws-auth` ConfigMap a la autenticación de entrada, `desiredState=ENABLED` configúrala en cada entorno AWS Batch informático que tenga como destino el clúster. Para volver a hacer la transición, `desiredState=DISABLED` configúralos en cada uno de ellos.

## Qué AWS Batch crea en tu clúster
<a name="eks-access-entries-what-batch-creates"></a>

AWS Batch crea una entrada de acceso por clúster que cumpla las condiciones anteriores y, a continuación, asocia la política de acceso de `AWSBatchClusterPolicy` Amazon EKS a esa entrada de acceso. La entrada de acceso es por clúster y no por entorno de procesamiento, por lo que todos los entornos de AWS Batch procesamiento que se dirigen al mismo clúster la comparten.

**nota**  
La eliminación de un entorno de procesamiento no elimina la entrada de acceso, incluso si se trata del último entorno de AWS Batch procesamiento del clúster. Para eliminar una entrada de acceso AWS Batch administrado, llama `UpdateComputeEnvironment` a todos los entornos de AWS Batch procesamiento que tengan como destino el clúster antes de eliminarlos. `desiredState=DISABLED`

Una entrada de acceso no es suficiente por sí sola para ejecutar trabajos en el clúster. Para conocer los Kubernetes permisos y el acceso a los nodos que debe configurar usted mismo, consulte[La configuración de clúster que aún debe proporcionar](#eks-access-entries-additional-configuration).

## Permisos necesarios
<a name="eks-access-entries-permissions"></a>

AWS Batch administra la entrada de acceso mediante las credenciales de la identidad de IAM que llama a la `UpdateComputeEnvironment` operación `CreateComputeEnvironment` o. Esa identidad debe poder realizar las siguientes acciones de Amazon EKS:
+ `eks:DescribeCluster`
+ `eks:DescribeAccessEntry`
+ `eks:CreateAccessEntry`
+ `eks:AssociateAccessPolicy`
+ `eks:DeleteAccessEntry`

## Configure la entrada de acceso
<a name="eks-access-entries-configure"></a>

Puede configurar la entrada de acceso en un entorno informático a través del `eksConfiguration.accessEntry` campo de la [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) API [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) o.

------
#### [ AWS CLI ]

**Habilita una entrada AWS Batch de acceso administrado al crear un entorno de procesamiento **

```
$ aws batch create-compute-environment \
    --compute-environment-name {{my-eks-ce}} \
    --type MANAGED \
    --eks-configuration 'eksClusterArn={{arn:aws:eks:us-east-1:123456789012:cluster/my-cluster}},kubernetesNamespace={{my-aws-batch-namespace}},accessEntry={desiredState=ENABLED}' \
    --compute-resources 'type=EC2,maxvCpus=128,subnets={{subnet-a123456b}},securityGroupIds={{sg-a12b3456}},instanceRole={{arn:aws:iam::123456789012:instance-profile/my-node-instance-profile}}'
```

**Habilite una entrada AWS Batch de acceso administrado en un entorno informático existente **

```
$ aws batch update-compute-environment \
    --compute-environment {{my-eks-ce}} \
    --eks-configuration 'accessEntry={desiredState=ENABLED}'
```

**Compruebe el estado **

```
$ aws batch describe-compute-environments \
    --compute-environments {{my-eks-ce}} \
    --query "computeEnvironments[0].eksConfiguration.accessEntry"
```

La respuesta incluye tanto lo `desiredState` que especificó como lo observado`status`:

```
{
    "desiredState": "ENABLED",
    "status": "ACTIVE"
}
```

**nota**  
AWS Batch devuelve `accessEntry.status` para todos los entornos informáticos de Amazon EKS y `desiredState` solo si lo ha configurado. Un entorno informático en el que nunca se especificó `accessEntry` devuelve `status` solo.

Para dejar AWS Batch de administrar la entrada de acceso, configúrala `desiredState` `DISABLED` en su lugar. Antes de hacerlo, revise[Interacción con el modo de autenticación del clúster ``](#eks-access-entries-matrix): `DISABLED` se rechaza en un clúster cuyo modo de autenticación es y`API`, en un clúster cuyo modo de autenticación es `API_AND_CONFIG_MAP` la entrada de acceso, solo se elimina después de que todos los entornos de AWS Batch procesamiento dirigidos al clúster estén configurados en`DISABLED`.

------
#### [ API ]

Usa el `eksConfiguration.accessEntry` objeto en tu [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) solicitud [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) o.

**Cree un entorno informático con una entrada AWS Batch de acceso administrado **

Incluya `accessEntry` en el cuerpo de la solicitud:

```
{
    "computeEnvironmentName": "{{my-eks-ce}}",
    "type": "MANAGED",
    "state": "ENABLED",
    "eksConfiguration": {
        "eksClusterArn": "{{arn:aws:eks:us-east-1:123456789012:cluster/my-cluster}}",
        "kubernetesNamespace": "{{my-aws-batch-namespace}}",
        "accessEntry": {
            "desiredState": "ENABLED"
        }
    },
    "computeResources": {
        "type": "EC2",
        "maxvCpus": 128,
        "subnets": ["{{subnet-a123456b}}"],
        "securityGroupIds": ["{{sg-a12b3456}}"],
        "instanceRole": "{{arn:aws:iam::123456789012:instance-profile/my-node-instance-profile}}"
    }
}
```

**Actualice la entrada de acceso en un entorno informático existente **

```
{
    "computeEnvironment": "{{my-eks-ce}}",
    "eksConfiguration": {
        "accessEntry": {
            "desiredState": "ENABLED"
        }
    }
}
```

Para obtener más información [`EksAccessEntry`](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksAccessEntry.html) [ CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html), consulte y [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) en la referencia de la *AWS Batch API*.

------

## La configuración de clúster que aún debe proporcionar
<a name="eks-access-entries-additional-configuration"></a>

Una entrada de acceso controla únicamente la forma en AWS Batch que se autentica en el clúster. No otorga AWS Batch los Kubernetes permisos que necesita para ejecutar tus trabajos ni permite que las instancias que se AWS Batch lanzan se unan al clúster. Independientemente del mecanismo de autenticación que utilices, debes configurar las dos opciones siguientes.

**importante**  
Una vez que se crea una entrada de acceso AWS Batch administrado para el rol AWS Batch vinculado al servicio en un clúster (`accessEntry.status=ACTIVE`), tiene prioridad sobre la `aws-auth` ConfigMap configuración del rol. Las ConfigMap entradas del rol AWS Batch vinculado al servicio no se utilizan y, en su lugar, se AWS Batch autentica mediante la entrada de acceso. Para volver a la ConfigMap autenticación, `desiredState=DISABLED` configúrela en todos los entornos informáticos que tengan como destino el clúster. Esto elimina la entrada AWS Batch-managed access.

Kubernetespermisos para el espacio de nombres AWS Batch   
AWS Batch necesita Kubernetes permisos para crear y administrar pods en el espacio de nombres que especifiques. `eksConfiguration.kubernetesNamespace` Crea el espacio de nombres y, a continuación, configura esos permisos mediante uno de los siguientes métodos, según el enfoque de autenticación que utilices:  
+ **Asociación de políticas de acceso (obligatoria cuando se ingresa el acceso`status=ACTIVE`)**: cuando configuras todos `desiredState=ENABLED` los entornos de procesamiento orientados a un clúster, AWS Batch crea una entrada de acceso con el nivel del clúster`AWSBatchClusterPolicy`. A continuación, debes asociar el ámbito del espacio de nombres `AWSBatchNamespacePolicy` para conceder el permiso de creación y administración de pods. AWS Batch 

  Cuando llegue la entrada de acceso`status=ACTIVE`, asocie la política de espacio de nombres mediante: AWS CLI

  ```
  $ aws eks associate-access-policy \
      --cluster-name {{my-cluster}} \
      --principal-arn {{arn:aws:iam::123456789012:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch}} \
      --policy-arn arn:aws:eks::aws:cluster-access-policy/AWSBatchNamespacePolicy \
      --access-scope type=namespace,namespaces={{my-aws-batch-namespace}}
  ```

  {{my-aws-batch-namespace}}Sustitúyala por el valor que especificaste en`eksConfiguration.kubernetesNamespace`.
**importante**  
Sin la asociación de políticas con un ámbito de espacio de nombres, los trabajos permanecerán estancados. `RUNNABLE` La política a nivel de clúster por sí sola no otorga permisos de administración de pods.
+ **Kubernetesroles y enlaces de roles (cuando se accede a la entrada`status=INACTIVE`)**: si la entrada de acceso AWS Batch administrado no está activa, cree los roles y los enlaces de Kubernetes roles que otorgan esos permisos, tal y como se describe en. [Paso 2: Prepare su clúster de Amazon EKS para AWS Batch](getting-started-eks.md#getting-started-eks-step-1) Esto se hace una vez para cada clúster.
**nota**  
Cuando una entrada de acceso AWS Batch administrado está activa (`status=ACTIVE`), se omiten las funciones de Kubernetes RBAC. En su lugar, debe utilizar el método de asociación de políticas de acceso.
AWS Batch no crea estos recursos automáticamente y una entrada AWS Batch de acceso administrado no los sustituye. Si faltan, el entorno informático puede seguir funcionando `VALID` mientras tus trabajos no se inician.

Acceso al clúster para el rol de instancia de nodo  
Las instancias que AWS Batch se lanzan se unen al clúster mediante el perfil de instancia que especifiques`computeResources.instanceRole`. Ese rol necesita su propio acceso al clúster, que es independiente de la entrada de acceso AWS Batch administrado y que AWS Batch no se configura.  
El método de configuración depende de los siguientes parámetros del `authenticationMode` clúster:  
+ **En los clústeres `authenticationMode` que son `CONFIG_MAP`**: debe utilizar el `aws-auth` ConfigMap. No se admiten entradas de acceso en estos clústeres.
+ **En clústeres `authenticationMode` que son `API_AND_CONFIG_MAP`**: el rol de instancia de nodo puede autenticarse mediante la entrada `aws-auth` ConfigMap o una entrada de acceso. Si el rol de instancia ya está asignado en ConfigMap, los nodos se unirán correctamente sin crear una entrada de acceso para el rol.
+ **En los clústeres cuyo `API` ** nombre `authenticationMode` sea: debes crear una entrada de acceso para el rol de instancia de nodo. No `aws-auth` ConfigMap se usa para la autenticación en estos clústeres.
Para crear una entrada de acceso para el rol de instancia de nodo, utilice AWS CLI:  

```
$ aws eks create-access-entry \
    --cluster-name {{my-cluster}} \
    --principal-arn {{arn:aws:iam::123456789012:role/my-node-instance-role}} \
    --type EC2_LINUX
```

```
$ aws eks associate-access-policy \
    --cluster-name {{my-cluster}} \
    --principal-arn {{arn:aws:iam::123456789012:role/my-node-instance-role}} \
    --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \
    --access-scope type=cluster
```
Para obtener más información, consulte [ Creación de entradas de acceso ](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) en la Guía del usuario de * * Amazon EKS **.  
Sin el acceso adecuado al clúster para la función de instancia de nodo, las instancias EC2 no pueden unirse al clúster. Los trabajos permanecerán en ese `RUNNABLE` estado porque no se registra ninguna capacidad en el clúster.

## Elegir entre las entradas `aws-auth y access` ConfigMap
<a name="eks-access-entries-choosing"></a>

La autenticación de las entradas de acceso es la ruta recomendada para AWS Batch los nuevos entornos informáticos de Amazon EKS y ofrece las siguientes ventajas:
+ Elimina la necesidad de editarla manualmente `aws-auth` ConfigMap para conceder AWS Batch acceso al clúster.
+ Proporciona un API-driven registro auditable de las personas principales que tienen acceso al clúster.
+ Es obligatorio para los clústeres `authenticationMode` que sí`API`, que no admiten el. `aws-auth` ConfigMap

Si el de su clúster lo `authenticationMode` es`CONFIG_MAP`, las entradas de acceso no están disponibles y AWS Batch se autentica a través del `aws-auth` ConfigMap. Para obtener instrucciones, consulte [Verifique que `aws-auth ConfigMap` esté configurado correctamente](verify-configmap-config.md).