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á.
Entradas de acesso ao EKS
Você pode usar o eksctl para gerenciar as entradas de acesso ao EKS. Use entradas de acesso para conceder permissões do Kubernetes às identidades do AWS IAM. Por exemplo, você pode conceder permissão ao papel de desenvolvedor para ler recursos do Kubernetes em um cluster.
Este tópico aborda como usar o eksctl para gerenciar entradas de acesso. Para obter informações gerais sobre entradas de acesso, consulte Conceder aos usuários do IAM acesso ao Kubernetes com entradas de acesso do EKS.
Você pode anexar políticas de acesso ao Kubernetes definidas pela AWS ou associar uma identidade do IAM a um grupo do Kubernetes.
Para obter mais informações sobre as políticas predefinidas disponíveis, consulte Associar políticas de acesso às entradas de acesso.
Se você precisar definir as políticas do Kubernetes do cliente, associe a identidade do IAM a um grupo do Kubernetes e conceda permissões a esse grupo.
Modo de autenticação de cluster
Você só pode usar entradas de acesso se o modo de autenticação do cluster permitir.
Para obter mais informações, consulte Definir o modo de autenticação de cluster
Definir o modo de autenticação com um arquivo YAML
eksctladicionou um novo accessConfig.authenticationMode campo abaixo ClusterConfig, que pode ser definido como um dos três valores a seguir:
-
CONFIG_MAP- padrão na API EKS - somenteaws-authConfigMap será usado -
API- somente a API de entradas de acesso será usada -
API_AND_CONFIG_MAP- padrão emeksctl- ambasaws-authConfigMap e a API de entradas de acesso podem ser usadas
Defina o modo de autenticação no ClusterConfig YAML:
accessConfig: authenticationMode: <>
Atualize o modo de autenticação com um comando
Se você quiser usar entradas de acesso em um cluster já existente, não criado pelo eksctl, onde a CONFIG_MAP opção é usada, o usuário precisará primeiro definir como. authenticationMode API_AND_CONFIG_MAP Para isso, eksctl introduziu um novo comando para atualizar o modo de autenticação do cluster, que funciona tanto com sinalizadores CLI, por exemplo
eksctl utils update-authentication-mode --cluster my-cluster --authentication-mode API_AND_CONFIG_MAP
Acesse os recursos de entrada
As entradas de acesso têm um tipo, como STANDARD ouEC2_LINUX. O tipo depende de como você está usando a entrada de acesso.
-
O
standardtipo é para conceder permissões do Kubernetes a usuários e funções do IAM.-
Por exemplo, você pode visualizar os recursos do Kubernetes no console da AWS anexando uma política de acesso à função ou ao usuário que você usa para acessar o console.
-
-
Os
EC2_WINDOWStiposEC2_LINUXe servem para conceder permissões do Kubernetes às instâncias. EC2 As instâncias usam essas permissões para ingressar no cluster.
Para obter mais informações sobre os tipos de entradas de acesso, consulte Criar entradas de acesso
Entidades do IAM
Você pode usar entradas de acesso para conceder permissões do Kubernetes às identidades do IAM, como usuários do IAM e funções do IAM.
Use o accessConfig.accessEntries campo para associar o ARN de um recurso do IAM a uma API EKS de entradas de acesso. Por exemplo:
accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: arn:aws:iam::111122223333:user/my-user-name type: STANDARD kubernetesGroups: # optional Kubernetes groups - group1 # groups can used to give permissions via RBAC - group2 - principalARN: arn:aws:iam::111122223333:role/role-name-1 accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy accessScope: type: namespace namespaces: - default - my-namespace - dev-* - principalARN: arn:aws:iam::111122223333:role/admin-role accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster - principalARN: arn:aws:iam::111122223333:role/role-name-2 type: EC2_LINUX
Além de associar as políticas do EKS, também é possível especificar os grupos do Kubernetes aos quais uma entidade do IAM pertence, concedendo permissões via RBAC.
Grupos de nós gerenciados e Fargate
A integração com entradas de acesso para esses recursos será alcançada nos bastidores, pela API EKS. Grupos de nós gerenciados e pods Fargate recém-criados criarão entradas de acesso à API, em vez de usar recursos RBAC pré-carregados. Os grupos de nós e os pods do Fargate existentes não serão alterados e continuarão a depender das entradas no mapa de configuração aws-auth.
Grupos de nós autogerenciados
Cada entrada de acesso tem um tipo. Para autorizar grupos de nós autogerenciados, eksctl criará uma entrada de acesso exclusiva para cada grupo de nós com o ARN principal definido como o ARN da função do nó e o tipo definido como um ou dependendo do grupo de nós AmiFamily. EC2_LINUX EC2_WINDOWS
Ao criar suas próprias entradas de acesso, você também pode especificar EC2_LINUX (para uma função do IAM usada com nós autogerenciados do Linux ou Bottlerocket), EC2_WINDOWS (para funções do IAM usadas com nós autogerenciados do Windows), FARGATE_LINUX (para funções do IAM usadas com o AWS Fargate (Fargate)) ou como um tipo. STANDARD Se você não especificar um tipo, o tipo padrão será definido comoSTANDARD.
nota
Ao excluir um grupo de nós criado com um preexistenteinstanceRoleARN, é responsabilidade do usuário excluir a entrada de acesso correspondente quando não houver mais grupos de nós associados a ela. Isso ocorre porque o eksctl não tenta descobrir se uma entrada de acesso ainda está em uso por grupos de nós autogerenciados criados por não-eksctl, pois é um processo complicado.
Criar entrada de acesso
Isso pode ser feito de duas maneiras diferentes, seja durante a criação do cluster, especificando as entradas de acesso desejadas como parte do arquivo de configuração e executando:
eksctl create cluster -f config.yaml
OU após a criação do cluster, executando:
eksctl create accessentry -f config.yaml
Para ver um exemplo de arquivo de configuração para criar entradas de acesso, consulte 40-access-entries.yaml
Obtenha a entrada de acesso
O usuário pode recuperar todas as entradas de acesso associadas a um determinado cluster executando uma das seguintes opções:
eksctl get accessentry -f config.yaml
OU
eksctl get accessentry --cluster my-cluster
Como alternativa, para recuperar apenas a entrada de acesso correspondente a uma determinada entidade do IAM, deve-se usar o --principal-arn sinalizador. por exemplo
eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Excluir entrada de acesso
Para excluir uma única entrada de acesso por vez, use:
eksctl delete accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Para excluir várias entradas de acesso, use a --config-file bandeira e especifique todas as principalARN’s correspondentes às entradas de acesso, no accessEntry campo de nível superior, por exemplo
... accessEntry: - principalARN: arn:aws:iam::111122223333:user/my-user-name - principalARN: arn:aws:iam::111122223333:role/role-name-1 - principalARN: arn:aws:iam::111122223333:role/admin-role
eksctl delete accessentry -f config.yaml
Migre do aws-auth ConfigMap
O usuário pode migrar suas identidades IAM existentes do aws-auth configmap para acessar as entradas executando o seguinte:
eksctl utils migrate-to-access-entry --cluster my-cluster --target-authentication-mode <API or API_AND_CONFIG_MAP>
Quando o --target-authentication-mode sinalizador é definido comoAPI, o modo de autenticação é alterado para o API modo (ignorado se já estiver no API modo), os mapeamentos de identidade do IAM serão migrados para as entradas de acesso e o aws-auth configmap será excluído do cluster.
Quando o --target-authentication-mode sinalizador é definido comoAPI_AND_CONFIG_MAP, o modo de autenticação é alterado para o API_AND_CONFIG_MAP modo (ignorado se já estiver no API_AND_CONFIG_MAP modo), os mapeamentos de identidade do IAM serão migrados para as entradas de acesso, mas o configmap é preservado. aws-auth
nota
Quando o --target-authentication-mode sinalizador estiver definido comoAPI, esse comando não atualizará o modo de autenticação para o API modo se o aws-auth configmap tiver uma das restrições abaixo.
-
Há um mapeamento de identidade no nível da conta.
-
Um ou mais Roles/Users são mapeados para os grupos kubernetes que começam com o prefixo
system:(exceto para grupos específicos do EKS, ou sejasystem:masters,, etc).system:bootstrapperssystem:nodes -
Um ou mais mapeamentos de identidade do IAM são para uma [Função vinculada ao serviço] (link: IAM/latest/UserGuide/using - service-linked-roles .html).
Desative as permissões de administrador do criador do cluster
eksctladicionou um novo campo accessConfig.bootstrapClusterCreatorAdminPermissions: boolean que, quando definido como false, desativa a concessão de permissões de administrador de cluster à identidade do IAM que cria o cluster. ou seja
adicione a opção ao arquivo de configuração:
accessConfig: bootstrapClusterCreatorAdminPermissions: false
e execute:
eksctl create cluster -f config.yaml