Como configuro um usuário SSO para acessar meu cluster do Amazon EKS?
Quero configurar um usuário do Centro de Identidade do AWS IAM para acessar meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS).
Resolução
Pré-requisitos
- O Centro de Identidade do IAM deve estar ativado e configurado
- O usuário SSO deve estar associado à conta da AWS que contém o cluster do EKS
- O cluster do EKS deve oferecer suporte a entradas de acesso (versão da plataforma eks.2 ou posterior)
Para configurar um usuário SSO para acessar seu cluster do Amazon EKS, conclua as seguintes etapas:
Configure a AWS CLI para autenticação SSO
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Configure a AWS CLI para usar autenticação SSO para que o usuário SSO possa se autenticar e assumir um perfil do AWS Identity and Access Management (AWS IAM).
Para obter mais informações sobre como configurar a AWS CLI com o Centro de Identidade do IAM, consulte Integração da AWS CLI com o IAM Identity Center.
Configure o kubectl para usar o perfil SSO
Para configurar o kubectl para usar seu perfil SSO, execute o seguinte comando update-kubeconfig da AWS CLI:
aws eks update-kubeconfig --name your-cluster-name --profile your-sso-profile
Observação: substitua your-cluster-name pelo nome do seu cluster do EKS. Substitua your-sso-profile pelo nome do seu perfil SSO.
Verifique o modo de autenticação do cluster
Para verificar o modo de autenticação do cluster, execute o seguinte comando describe-cluster da AWS CLI:
aws eks describe-cluster --name your-cluster-name --query "cluster.accessConfig.authenticationMode" --profile your-sso-profile
Observação: substitua your-cluster-name pelo nome do seu cluster do EKS. Substitua your-sso-profile pelo nome do seu perfil SSO.
Se a saída mostrar API ou API_AND_CONFIG_MAP, as entradas de acesso estão ativadas. Se a saída mostrar CONFIG_MAP, somente o método aws-auth ConfigMap está disponível.
Use entradas de acesso para configurar o acesso
Selecione um dos seguintes níveis de permissão:
Conceda permissões de administrador em todo o cluster
Conclua as etapas a seguir:
- Abra o console do Amazon EKS.
- No painel de navegação, clique em Clusters.
- Selecione seu cluster.
- Clique na guia Acesso.
- Na seção Entradas de acesso, selecione Criar entrada de acesso.
- Em ARN da entidade principal do IAM, insira o ARN do seu perfil SSO sem o componente de caminho.
- Em Tipo, selecione Padrão.
- Clique em Próximo.
- Em Nome da política, selecione AmazonEKSClusterAdminPolicy.
- Em Escopo de acesso, clique em Cluster.
- Selecione Próximo e, em seguida, clique em Criar.
Conceda permissões específicas de namespace
Conclua as etapas a seguir:
- Abra o console do Amazon EKS.
- No painel de navegação, clique em Clusters.
- Selecione seu cluster.
- Clique na guia Acesso.
- Na seção Entradas de acesso, selecione Criar entrada de acesso.
- Em ARN da entidade principal do IAM, insira o ARN do seu perfil SSO sem o componente de caminho.
- Em Tipo, selecione Padrão.
- Clique em Próximo.
- Em Nome da política, selecione AmazonEKSAdminViewPolicy ou AmazonEKSEditPolicy com base em seus requisitos.
- Em Escopo de acesso, clique em Namespace.
- Em Namespace, insira o nome do seu namespace.
- Selecione Próximo e, em seguida, clique em Criar.
Para obter mais informações sobre entradas de acesso, consulte Conceder aos usuários do IAM acesso ao Kubernetes com entradas de acesso ao EKS.
Use aws-auth ConfigMap para configurar o acesso
Importante: ao usar aws-auth com o Centro de Identidade do IAM, use o ARN do perfil do IAM sem o componente de caminho. Por exemplo, se o ARN do seu perfil for arn:aws:iam::123456789012:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdministratorAccess_1234567890abcdef, remova o caminho para usar arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef.
Se seu cluster não for compatível com entradas de acesso ou você preferir usar o método aws-auth ConfigMap, conclua as seguintes etapas:
Conceda permissões de administrador em todo o cluster
Crie um arquivo YAML com a seguinte configuração:
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-admin-user groups: - system:masters
Observação: substitua o valor de rolearn pelo ARN do seu perfil SSO sem o componente de caminho. Substitua sso-admin-user pelo seu nome de usuário preferido.
Aplique a configuração:
kubectl apply -f aws-auth-configmap.yaml
Conceda permissões específicas de namespace
Crie um Role e RoleBinding para acesso específico por namespace:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: sso-user-role namespace: your-namespace rules: - apiGroups: [""] resources: ["pods", "services", "configmaps"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: sso-user-rolebinding namespace: your-namespace subjects: - kind: User name: sso-user apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: sso-user-role apiGroup: rbac.authorization.k8s.io
Observação: substitua your-namespace pelo nome do seu namespace. Substitua sso-user pelo nome de usuário que você especificou em aws-auth ConfigMap.
Aplique a configuração:
kubectl apply -f role-rolebinding.yaml
Atualize o aws-auth ConfigMap para mapear o perfil SSO para o nome de usuário:
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-user
Observação: substitua o valor de rolearn pelo ARN do seu perfil SSO sem o componente de caminho.
Aplique a configuração:
kubectl apply -f aws-auth-configmap.yaml
Para obter mais informações sobre o aws-auth ConfigMap, consulte Conceder aos usuários do IAM acesso ao Kubernetes com um ConfigMap.
Verifique o acesso
Para verificar se o usuário SSO pode acessar o cluster, execute o seguinte comando:
kubectl get nodes
Se o comando retornar uma lista de nós, o usuário SSO se autenticou com êxito ao cluster.
Informações relacionadas
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
feita há 10 meses
AWS OFICIALAtualizada há 3 anos