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
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. 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.
Valores para acesso Entry.desiredState
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
desiredStateparaENABLED(consulte Como AWS Batch reconcilia DesiredState em ambientes computacionais 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
desiredStateparaDISABLED(consulte Como AWS Batch reconcilia DesiredState em ambientes computacionais para obter detalhes). O acesso ao cluster deve ser configurado por meio doaws-authConfigMap. INHERIT_FROM_CLUSTER-
AWS Batch segue para a entrada
statusde 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ãoaws-authConfigMap precisa recorrer. Em um cluster cujo modo de autenticação éCONFIG_MAPouAPI_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 ACTIVEsignifica que uma entrada AWS Batch de acesso gerenciado para o ambiente computacional existe no cluster e tem precedência sobre o. aws-auth ConfigMap INACTIVEsignifica que nenhuma entrada AWS Batch de acesso gerenciado está presente. Isso pode ser porque desiredState simDISABLED, 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 casoINACTIVE, 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 isACTIVE, consulteA configuração da entrada de acesso do Amazon EKS está incompleta.
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
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.
Cluster |
Ambiente computacional |
Ambiente computacional |
Ambiente computacional |
|---|---|---|---|
|
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 |
||
|
AWS Batch compara os valores registrados nos ambientes computacionais que compartilham o cluster — consulte. Como AWS Batch reconcilia DesiredState em ambientes computacionais |
O modo de acesso existente é mantido. AWS Batch não adiciona nem remove uma entrada de acesso. |
|
|
A entrada de acesso é criada e mantida no cluster. |
A solicitação foi rejeitada. Um cluster nesse modo não oferece suporte ao |
A entrada de acesso é criada e mantida no cluster. Quando o cluster é |
Como AWS Batch reconcilia DesiredState em ambientes computacionais
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
desiredStateos 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, eINHERIT_FROM_CLUSTER, e também inclui qualquer ambiente de computação que não tenha nenhumdesiredStateregistro.
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
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, consulteConfiguração de cluster que você ainda deve fornecer.
Permissões obrigatórias
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
Você pode configurar a entrada de acesso em um ambiente computacional por meio do eksConfiguration.accessEntry campo da UpdateComputeEnvironment API CreateComputeEnvironment ou.
Configuração de cluster que você ainda deve fornecer
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.kubernetesNamespaceCrie 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=ENABLEDna entrada de acessostatus=ACTIVE) — Quando você configura todos os ambientes computacionais direcionados a um cluster, AWS Batch cria uma entrada de acesso no nível do cluster.AWSBatchClusterPolicyEm seguida, você deve associar o namespace com escopo para conceder AWS Batch permissãoAWSBatchNamespacePolicypara 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-namemy-cluster\ --principal-arnarn: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-namespacemy-aws-batch-namespaceSubstitua pelo valor que você especificou emeksConfiguration.kubernetesNamespace.Importante
Sem a associação de políticas com escopo de namespace, os trabalhos permanecerão sem status.
RUNNABLEA 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 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
VALIDenquanto 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 usaraws-authConfigMap 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 aaws-authConfigMap 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ãoaws-authConfigMap é 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-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --type EC2_LINUX$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \ --access-scope type=clusterPara obter mais informações, consulte Criação de entradas de acesso no Guia do usuário do Amazon EKS .
Importante
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
RUNNABLEestado porque nenhuma capacidade é registrada no cluster. -
Escolhendo entre as entradas aws-auth ConfigMap e access
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-authConfigMap 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
authenticationModeisAPI, que não suportamaws-authConfigMap o.
Se as do seu cluster authenticationMode estiveremCONFIG_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.