

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

# Autenticação de entrada de acesso do Amazon EKS
<a name="eks-access-entries"></a>

O Amazon EKS oferece suporte a dois mecanismos para conceder a uma permissão principal do IAM para chamar a Kubernetes API do cluster: a antiga `aws-auth` ConfigMap e a API de entrada de [ acesso mais recente. ](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) Uma entrada de acesso concede acesso à Kubernetes API a um principal do IAM sem exigir que você edite um ConfigMap. AWS Batch pode se autenticar em seu cluster por meio de qualquer um dos mecanismos.

Quando você define `eksConfiguration.accessEntry.desiredState` `ENABLED` em um ambiente de computação, AWS Batch pode gerenciar a entrada de acesso para esse ambiente de computação no cluster. Você não precisa mais editar manualmente `aws-auth` ConfigMap o.

O AWS Batch provisionamento de uma entrada de acesso depende do seu ambiente AWS Batch computacional e da configuração do cluster Amazon EKS. Para obter mais detalhes, consulte [Interação com o `AuthenticationMode do cluster`](#eks-access-entries-matrix).

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

O `desiredState` campo on `EksAccessEntry` declara o estado de entrada de acesso desejado para o ambiente computacional. Os valores válidos são:

`ENABLED`  
AWS Batch cria uma entrada AWS Batch de acesso gerenciado no cluster para o ambiente computacional. AWS Batch só criará uma entrada AWS Batch de acesso gerenciado se todos os ambientes de computação no cluster estiverem configurados `desiredState` para `ENABLED` (consulte [Como AWS Batch reconcilia `` DesiredState em ambientes computacionais](#eks-access-entries-reconciliation) para obter detalhes).

`DISABLED`  
AWS Batch exclui a entrada AWS Batch de acesso gerenciado para o cluster. AWS Batch excluirá somente uma entrada AWS Batch de acesso gerenciado se todos os ambientes de computação no cluster estiverem configurados `desiredState` para `DISABLED` (consulte [Como AWS Batch reconcilia `` DesiredState em ambientes computacionais](#eks-access-entries-reconciliation) para obter detalhes). O acesso ao cluster deve ser configurado por meio do `aws-auth` ConfigMap.

`INHERIT_FROM_CLUSTER`  
AWS Batch segue para a entrada `status` de acesso atual do cluster. Em um cluster do Amazon EKS cujo modo de autenticação é`API`, AWS Batch cria e gerencia uma entrada de acesso porque o cluster não `aws-auth` ConfigMap precisa recorrer. Em um cluster cujo modo de autenticação é `CONFIG_MAP` ou`API_AND_CONFIG_MAP`, AWS Batch não adiciona nem remove uma entrada de acesso.

O ambiente computacional também expõe um campo somente para leitura `accessEntry.status` nas respostas. [ DescribeComputeEnvironments ](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeComputeEnvironments.html) `ACTIVE`significa que uma entrada AWS Batch de acesso gerenciado para o ambiente computacional existe no cluster e tem precedência sobre o. `aws-auth` ConfigMap `INACTIVE`significa que nenhuma entrada AWS Batch de acesso gerenciado está presente. Isso pode ser porque `desiredState` sim`DISABLED`, porque os ambientes de computação direcionados ao cluster ainda não concordam ou porque a entrada ainda não foi provisionada. `desiredState` Se `accessEntry.status` for o caso`INACTIVE`, o Batch usa `aws-auth` ConfigMap para acesso ao cluster.

**nota**  
Uma entrada de acesso informa `ACTIVE` assim que ela existe no cluster, mesmo que não AWS Batch tenha terminado de associar a política de acesso que a torna utilizável. Se o status do ambiente computacional mudar para `INVALID` while `accessEntry.status` is`ACTIVE`, consulte[A configuração da entrada de acesso do Amazon EKS está incompleta](batch_eks_invalid_compute_environment.md#batch_eks_access_entry_incomplete).

**nota**  
Se você omitir o `accessEntry` campo, AWS Batch não grava um `desiredState` para o ambiente de computação e `DescribeComputeEnvironments` não retorna um. Com a finalidade de provisionar a entrada de acesso, AWS Batch se comporta como se fosse. `INHERIT_FROM_CLUSTER`

## Interação com o `AuthenticationMode do cluster`
<a name="eks-access-entries-matrix"></a>

O AWS Batch comportamento de um determinado cluster `desiredState` depende do modo de autenticação do cluster. A tabela a seguir se aplica a `CreateComputeEnvironment` `UpdateComputeEnvironment` e.


<table>
<thead>
  <tr><th>Cluster <code>authenticationMode</code></th><th>Ambiente computacional <code>accessEntry.desiredState=ENABLED</code></th><th>Ambiente computacional <code>accessEntry.desiredState=DISABLED</code></th><th>Ambiente computacional <code>accessEntry.desiredState=INHERIT_FROM_CLUSTER</code></th></tr>
</thead>
<tbody>
  <tr><td><code>CONFIG_MAP</code></td><td colspan="3">As entradas de acesso não estão disponíveis no cluster, portanto, AWS Batch não cria nem remove nenhuma. AWS Batch ainda registra o valor que você especificar. Depois de alterar o modo de autenticação do cluster, esse valor registrado entrará em vigor na próxima <code>UpdateComputeEnvironment</code> chamada <code>CreateComputeEnvironment</code> ou na chamada especificada. <code>desiredState</code></td></tr>
  <tr><td><code>API_AND_CONFIG_MAP</code></td><td colspan="2">AWS Batch compara os valores registrados nos ambientes computacionais que compartilham o cluster — consulte. <a href="#eks-access-entries-reconciliation">Como AWS Batch reconcilia `` DesiredState em ambientes computacionais</a></td><td>O modo de acesso existente é mantido. AWS Batch não adiciona nem remove uma entrada de acesso.</td></tr>
  <tr><td><code>API</code></td><td>A entrada de acesso é criada e mantida no cluster.</td><td>A solicitação foi rejeitada. Um cluster nesse modo não oferece suporte ao <code>aws-auth</code> ConfigMap, e o ConfigMap método não pode ser ativado após a criação do cluster, portanto, <code>DISABLED</code> deixaria o ambiente de computação sem nenhuma forma de autenticação.</td><td>A entrada de acesso é criada e mantida no cluster. Quando o cluster é <code>API</code> somente -only, herdar é equivalente a. <code>ENABLED</code></td></tr>
</tbody>
</table>


## Como AWS Batch reconcilia `` DesiredState em ambientes computacionais
<a name="eks-access-entries-reconciliation"></a>

Como um único cluster do Amazon EKS pode oferecer suporte a vários ambientes de AWS Batch computação, a configuração de acesso de um cluster é um recurso compartilhado. AWS Batch portanto, reconcilia ou compara e resolve os `desiredState` valores registrados nesses ambientes computacionais.

Quando o do cluster `authenticationMode` está`API_AND_CONFIG_MAP`, AWS Batch compara o `desiredState` registrado para cada ambiente de computação na mesma AWS conta e AWS região que tem como alvo o cluster. AWS Batch usa essa comparação para determinar se deve adicionar ou remover a entrada de acesso em cada uma `CreateComputeEnvironment` das `UpdateComputeEnvironment` operações `desiredState` especificadas.

Cada ambiente computacional tem `desiredState=ENABLED`  
AWS Batch cria a entrada de acesso no cluster.

Cada ambiente computacional tem `desiredState=DISABLED`  
AWS Batch exclui a entrada de acesso do cluster, se houver.

Nem todos `desiredState` os valores registrados coincidem  
AWS Batch mantém o modo de acesso existente. A entrada de acesso não é adicionada nem removida. Isso inclui qualquer combinação de`ENABLED`,`DISABLED`, e`INHERIT_FROM_CLUSTER`, e também inclui qualquer ambiente de computação que não tenha nenhum `desiredState` registro.

**nota**  
Para fazer a transição de um cluster cujo modo de autenticação é `API_AND_CONFIG_MAP` de `aws-auth` ConfigMap para a autenticação de entrada de acesso, definida `desiredState=ENABLED` em cada ambiente AWS Batch computacional direcionado ao cluster. Para fazer a transição de `desiredState=DISABLED` volta, use cada um deles.

## O que AWS Batch cria em seu cluster
<a name="eks-access-entries-what-batch-creates"></a>

AWS Batch cria uma entrada de acesso por cluster que atende às condições acima e, em seguida, associa a política de acesso do `AWSBatchClusterPolicy` Amazon EKS a essa entrada de acesso. A entrada de acesso é por cluster e não por ambiente de computação, portanto, todos os ambientes AWS Batch computacionais que têm como alvo o mesmo cluster a compartilham.

**nota**  
A exclusão de um ambiente de computação não remove a entrada de acesso, mesmo que seja o último ambiente de AWS Batch computação no cluster. Para remover uma entrada AWS Batch de acesso gerenciado, chame `UpdateComputeEnvironment` with `desiredState=DISABLED` em todos os ambientes AWS Batch computacionais direcionados ao cluster antes de excluí-los.

Uma entrada de acesso por si só não é suficiente para executar trabalhos no cluster. Para obter as Kubernetes permissões e o acesso ao nó que você mesmo deve configurar, consulte[Configuração de cluster que você ainda deve fornecer](#eks-access-entries-additional-configuration).

## Permissões obrigatórias
<a name="eks-access-entries-permissions"></a>

AWS Batch gerencia a entrada de acesso usando as credenciais da identidade do IAM que chama a `UpdateComputeEnvironment` operação `CreateComputeEnvironment` or. Essa identidade deve ter permissão para realizar as seguintes ações do Amazon EKS:
+ `eks:DescribeCluster`
+ `eks:DescribeAccessEntry`
+ `eks:CreateAccessEntry`
+ `eks:AssociateAccessPolicy`
+ `eks:DeleteAccessEntry`

## Configurar a entrada de acesso
<a name="eks-access-entries-configure"></a>

Você pode configurar a entrada de acesso em um ambiente computacional por meio do `eksConfiguration.accessEntry` campo da [ 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) ou.

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

**Habilite uma entrada AWS Batch de acesso gerenciado ao criar um ambiente computacional **

```
$ 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}}'
```

**Habilitar uma entrada AWS Batch de acesso gerenciado em um ambiente computacional existente **

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

**Verifique o status **

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

A resposta inclui o `desiredState` que você especificou e o observado`status`:

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

**nota**  
AWS Batch retorna `accessEntry.status` para todos os ambientes computacionais do Amazon EKS e retorna `desiredState` somente se você o tiver configurado. Um ambiente computacional em que você nunca especificou `accessEntry` retornos `status` sozinho.

Para parar AWS Batch de gerenciar a entrada de acesso, `desiredState` defina como `DISABLED` em vez disso. Antes disso, review[Interação com o `AuthenticationMode do cluster`](#eks-access-entries-matrix): `DISABLED` é rejeitado em um cluster cujo modo de autenticação é`API`, e em um cluster cujo modo de autenticação é `API_AND_CONFIG_MAP` a entrada de acesso é removido somente após cada ambiente AWS Batch computacional direcionado ao `DISABLED` cluster ser definido como.

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

Use o `eksConfiguration.accessEntry` objeto em sua [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) solicitação.

**Crie um ambiente computacional com uma entrada de AWS Batch acesso gerenciada **

Inclua `accessEntry` no corpo da solicitação:

```
{
    "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}}"
    }
}
```

**Atualizar a entrada de acesso em um ambiente computacional existente **

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

Para obter mais informações, consulte [`EksAccessEntry`](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksAccessEntry.html) [ CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html), e [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) na Referência da *AWS Batch API*.

------

## Configuração de cluster que você ainda deve fornecer
<a name="eks-access-entries-additional-configuration"></a>

Uma entrada de acesso controla somente como se AWS Batch autentica em seu cluster. Ele não concede AWS Batch as Kubernetes permissões necessárias para executar seus trabalhos e não permite que as instâncias executadas se AWS Batch juntem ao cluster. Independentemente do mecanismo de autenticação usado, você ainda deve configurar as duas opções a seguir.

**Importante**  
Depois que uma entrada AWS Batch de acesso gerenciado é criada para a função AWS Batch vinculada ao serviço em um cluster (`accessEntry.status=ACTIVE`), ela tem precedência sobre a `aws-auth` ConfigMap configuração da função. As ConfigMap entradas da função AWS Batch vinculada ao serviço não são usadas e, em vez disso, são AWS Batch autenticadas usando a entrada de acesso. Para retornar à ConfigMap autenticação, defina `desiredState=DISABLED` em todos os ambientes computacionais direcionados ao cluster. Isso remove a entrada de acesso AWS Batch-managed.

Kubernetespermissões para o AWS Batch namespace  
AWS Batch precisa de Kubernetes permissões para criar e gerenciar pods no namespace que você especificar. `eksConfiguration.kubernetesNamespace` Crie o namespace e configure essas permissões usando um dos seguintes métodos, dependendo da sua abordagem de autenticação:  
+ **Associação de políticas de acesso (necessária `desiredState=ENABLED` na entrada de acesso`status=ACTIVE`) ** — Quando você configura todos os ambientes computacionais direcionados a um cluster, AWS Batch cria uma entrada de acesso no nível do cluster. `AWSBatchClusterPolicy` Em seguida, você deve associar o namespace com escopo para conceder AWS Batch permissão `AWSBatchNamespacePolicy` para criar e gerenciar pods.

  Depois que a entrada de acesso chegar`status=ACTIVE`, associe a política de namespace usando: 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}}Substitua pelo valor que você especificou em`eksConfiguration.kubernetesNamespace`.
**Importante**  
Sem a associação de políticas com escopo de namespace, os trabalhos permanecerão sem status. `RUNNABLE` A política em nível de cluster por si só não concede permissões de gerenciamento de pods.
+ **Kubernetesfunções e associações de função (ao entrar no acesso`status=INACTIVE`) ** — Se a entrada de acesso AWS Batch-managed não estiver ativa, crie as Kubernetes funções e as associações de função que concedem essas permissões, conforme descrito em. [Etapa 2: Prepare seu cluster Amazon EKS para AWS Batch](getting-started-eks.md#getting-started-eks-step-1) Você faz isso uma vez para cada cluster.
**nota**  
Quando uma entrada AWS Batch de acesso gerenciado está ativa (`status=ACTIVE`), as funções do Kubernetes RBAC são ignoradas. Em vez disso, você deve usar o método de associação de políticas de acesso.
AWS Batch não cria esses recursos para você, e uma entrada AWS Batch de acesso gerenciado não os substitui. Se estiverem ausentes, o ambiente de computação ainda pode se transformar `VALID` enquanto seus trabalhos não iniciam.

Acesso ao cluster para a função de instância do nó  
As instâncias que são AWS Batch iniciadas se juntam ao cluster usando o perfil de instância que você especifica em`computeResources.instanceRole`. Essa função precisa de seu próprio acesso ao cluster, que é separado da entrada de acesso AWS Batch gerenciado e que AWS Batch não é configurado.  
O método de configuração depende do seu cluster`authenticationMode`:  
+ **Em clusters cujo `authenticationMode` é `CONFIG_MAP` ** — Você deve usar `aws-auth` ConfigMap o. As entradas de acesso não são suportadas nesses clusters.
+ **Em clusters cujo `authenticationMode` é `API_AND_CONFIG_MAP` ** — A função da instância do nó pode ser autenticada usando a `aws-auth` ConfigMap ou uma entrada de acesso. Se a função da instância já estiver mapeada no ConfigMap, os nós se unirão com sucesso sem criar uma entrada de acesso para a função.
+ **Em clusters cujo `authenticationMode` é `API` ** — Você deve criar uma entrada de acesso para a função da instância do nó. O não `aws-auth` ConfigMap é usado para autenticação nesses clusters.
Para criar uma entrada de acesso para a função da instância do nó, use 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 obter mais informações, consulte [ Criação de entradas de acesso ](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) no Guia do usuário do * * Amazon EKS **.  
Sem o acesso adequado ao cluster para a função de instância do nó, as instâncias do EC2 não podem se juntar ao cluster. Os trabalhos permanecerão no `RUNNABLE` estado porque nenhuma capacidade é registrada no cluster.

## Escolhendo entre as `entradas aws-auth` ConfigMap e access
<a name="eks-access-entries-choosing"></a>

A autenticação de entrada de acesso é o caminho recomendado para novos AWS Batch ambientes computacionais do Amazon EKS e oferece as seguintes vantagens:
+ Elimina a necessidade de editar manualmente o `aws-auth` ConfigMap para conceder AWS Batch acesso ao cluster.
+ Fornece um API-driven registro auditável dos diretores que têm acesso ao cluster.
+ É necessário para clusters cujos `authenticationMode` is`API`, que não suportam `aws-auth` ConfigMap o.

Se as do seu cluster `authenticationMode` estiverem`CONFIG_MAP`, as entradas de acesso não estão disponíveis e são AWS Batch autenticadas por meio do `aws-auth` ConfigMap. Para instruções, consulte [Verifique se o `aws-auth ConfigMap` está configurado corretamente](verify-configmap-config.md).