Conceder acesso a APIs do Kubernetes - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Conceder acesso a APIs do Kubernetes

Seu cluster tem um endpoint de API do Kubernetes. O Kubectl usa essa API. Você pode se autenticar nessa API usando dois tipos de identidades:

  • Uma entidade principal (IAM) do AWS Identity and Access Management (perfil ou usuário): este tipo requer autenticação do IAM. Os usuários podem fazer login na AWS como um usuário do IAM ou com uma identidade federada ao usar credenciais fornecidas por meio de uma fonte de identidades. Os usuários só poderão fazer login com uma identidade federada se o administrador tiver configurado a federação de identidades anteriormente usando perfis do IAM. Quando os usuários acessam a AWS usando a federação, estão indiretamente assumindo um perfil. Quando os usuários usam esse tipo de identidade, você:

    • Pode atribuir permissões do Kubernetes a eles para que eles possam trabalhar com objetos do Kubernetes no seu cluster. Para obter mais informações sobre como atribuir permissões às entidades principais do IAM para que elas possam acessar objetos do Kubernetes no seu cluster, consulte Gerenciar entradas de acesso.

    • Pode atribuir a eles permissões do IAM para que eles possam trabalhar com seu cluster do Amazon EKS e seus recursos usando a API do Amazon EKS, AWS CLI, AWS CloudFormation, AWS Management Console ou eksctl. Para obter mais informações, consulte Ações definidas pelo Amazon Elastic Kubernetes Service na Referência de autorização do serviço.

    • Os nós se juntam ao seu cluster assumindo um perfil do IAM. A habilidade de acessar o cluster usando as entidades principais do IAM é fornecida pelo AWS IAM Authenticator para Kubernetes, que é executado no ambiente de gerenciamento do Amazon EKS.

  • Um usuário em seu próprio provedor OpenID Connect (OIDC): este tipo requer autenticação em seu provedor OIDC. Para obter mais informações sobre como configurar o seu próprio provedor OIDC com o seu cluster do Amazon EKS, consulte Autenticar usuários para o cluster em um provedor de identidade OpenID Connect. Quando os usuários usam esse tipo de identidade, você:

    • Pode atribuir permissões do Kubernetes a eles para que eles possam trabalhar com objetos do Kubernetes no seu cluster.

    • Não pode atribuir a eles permissões do IAM para que eles possam trabalhar com seu cluster do Amazon EKS e seus recursos usando a API do Amazon EKS, AWS CLI, AWS CloudFormation, AWS Management Console ou eksctl.

Você pode usar os dois tipos de identidades com seu cluster. Não é possível desabilitar o método de autenticação do IAM. O método de autenticação OIDC é opcional.

Associe identidades do IAM a permissões do Kubernetes

O AWS IAM Authenticator para Kubernetes está instalado no ambiente de gerenciamento do cluster. Ele habilita entidades principais (perfis e usuários) do AWS Identity and Access Management (IAM) às quais você permite o acesso a recursos do Kubernetes em seu cluster. É possível permitir que entidades principais do IAM acessem objetos do Kubernetes no seu cluster usando um dos seguintes métodos:

  • Criação de entradas de acesso: se seu cluster for igual ou posterior à versão da plataforma listada na seção Pré-requisitos da versão do Kubernetes do cluster, recomendamos que você use essa opção.

    Use entradas de acesso para gerenciar as permissões do Kubernetes das entidades principais do IAM de fora do cluster. É possível adicionar e gerenciar o acesso ao cluster usando a API do EKS, a AWS Command Line Interface, os SDKs da AWS, o AWS CloudFormation e o AWS Management Console. Isso significa que você pode gerenciar usuários com as mesmas ferramentas com as quais criou o cluster.

    Para começar, siga Configuração de entradas de acesso e, depois, Migrando entradas existentes aws-auth ConfigMap para entradas de acesso.

  • Adição de entradas ao aws-auth ConfigMap: se a versão da plataforma do seu cluster for anterior à versão listada na seção Pré-requisitos, você deverá usar esta opção. Se a versão da plataforma do seu cluster for igual ou posterior à versão da plataforma listada na seção Pré-requisitos da versão do Kubernetes do cluster e você tiver adicionado entradas ao ConfigMap, recomendamos que migre essas entradas para entradas de acesso. No entanto, você não pode migrar entradas que o Amazon EKS adicionou ao ConfigMap, como entradas para perfis do IAM usadas com grupos de nós gerenciados ou perfis do Fargate. Para ter mais informações, consulte Conceder acesso a APIs do Kubernetes.

    • Caso precise usar a opção do aws-auth ConfigMap, você poderá adicionar entradas ao ConfigMap usando o comando eksctl create iamidentitymapping. Para obter mais informações, consulte Gerenciar usuários e perfis do IAM na documentação do eksctl.

Definir modo de autenticação do cluster

Cada cluster tem um modo de autenticação. O modo de autenticação determina quais métodos você pode usar para permitir que as entidades principais do IAM acessem os objetos do Kubernetes no seu cluster. Existem três modos de autenticação.

Importante

Depois que o método de entrada de acesso estiver habilitado, ele não poderá ser desabilitado.

Se o método ConfigMap não for habilitado durante a criação do cluster, ele não poderá ser habilitado posteriormente. Todos os clusters criados antes da introdução das entradas de acesso têm o método ConfigMap habilitado.

O aws-auth ConfigMap dentro do cluster

Este é o modo de autenticação original para clusters do Amazon EKS. A entidade principal do IAM que criou o cluster é o usuário inicial que pode acessar o cluster usando kubectl. O usuário inicial deve adicionar outros usuários à lista no aws-auth ConfigMap e atribuir permissões que afetem os outros usuários dentro do cluster. Os outros usuários não podem gerenciar nem remover o usuário inicial, pois não há uma entrada no ConfigMap para gerenciar.

Tanto as entradas do ConfigMap quanto as de acesso

Com este modo de autenticação, é possível usar os dois métodos para adicionar entidades principais do IAM ao cluster. Observe que cada método armazena entradas separadas; por exemplo, se você adicionar uma entrada de acesso da AWS CLI, o aws-auth ConfigMap não será atualizado.

Somente entradas de acesso

Com este modo de autenticação, é possível usar a API do EKS, a AWS Command Line Interface, os SDKs da AWS, o AWS CloudFormation e o AWS Management Console para gerenciar o acesso ao cluster para entidades principais do IAM.

Cada entrada de acesso tem um tipo e você pode usar a combinação de um escopo de acesso para limitar a entidade principal a um namespace específico e uma política de acesso para definir políticas de permissões reutilizáveis pré-configuradas. Como alternativa, você pode usar o tipo STANDARD e grupos de RBAC do Kubernetes para atribuir permissões personalizadas.

Modo de autenticação Métodos
Somente ConfigMap (CONFIG_MAP) aws-auth ConfigMap
API do EKS e ConfigMap (API_AND_CONFIG_MAP) entradas de acesso na API do EKS, AWS Command Line Interface, SDKs da AWS, AWS CloudFormation e AWS Management Console e aws-auth ConfigMap
Somente API do EKS (API) entradas de acesso na API do EKS, AWS Command Line Interface, SDKs da AWS, AWS CloudFormation e AWS Management Console