Use AWS segredos e CSI do provedor de configuração com funções do IAM para contas de serviço (IRSA) - AWS Secrets Manager

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

Use AWS segredos e CSI do provedor de configuração com funções do IAM para contas de serviço (IRSA)

Pré-requisitos

  • Cluster do Amazon EKS (versão 1.17 ou posterior)

  • Acesso a um AWS CLI cluster Amazon EKS via kubectl

Configurar o controle de acesso

O ASCP recupera a Identidade de Pods do Amazon EKS e a substitui por um perfil do IAM. Você define permissões em uma política do IAM para esse perfil do IAM. Quando o ASCP assume o perfil do IAM, ele obtém acesso aos segredos que você autorizou. Outros contêineres não podem acessar os segredos, a menos que você também os associe ao perfil do IAM.

Para conceder ao seu pod do Amazon EKS acesso aos segredos no Secrets Manager
  1. Crie uma política de permissões que conceda as permissões secretsmanager:GetSecretValue e secretsmanager:DescribeSecret aos segredos que o pod precisa acessar. Para visualizar um exemplo de política, consulte Exemplo: permissão para ler e descrever segredos individuais.

  2. Crie um provedor IAM OIDC Connect (OIDC) para o cluster, se você ainda não tiver um. Para obter mais informações, consulte Criação de um provedor IAM OIDC para o seu cluster no Guia do Usuário do Amazon EKS.

  3. Crie um perfil do IAM para conta de serviço e anexe a política a ele. Para obter mais informações, consulte Criação de um perfil do IAM para uma conta de serviço no Guia do usuário do Amazon EKS.

  4. Se você usa um cluster privado do Amazon EKS, certifique-se de que a VPC na qual o cluster está tenha um AWS STS endpoint. Para obter informações sobre a criação de um endpoint, consulte Endpoints da VPC da interface no Guia do usuário do AWS Identity and Access Management .

Identificar quais segredos montar

Para determinar quais segredos o ASCP monta no Amazon EKS como arquivos no sistema de arquivos, você cria um arquivo YAML SecretProviderClass. O SecretProviderClass lista os segredos a serem montados e o nome do arquivo no qual montá-los. OSecretProviderClass deve estar no mesmo namespace que o pod do Amazon EKS ao qual ele faz referência.

Montagem dos segredos como arquivos

As instruções a seguir mostram como montar segredos como arquivos usando exemplos de arquivos YAML .yaml e ExampleSecretProviderClass.yaml. ExampleDeployment

Para montar segredos no Amazon EKS
  1. Aplique o SecretProviderClass ao pod:

    kubectl apply -f ExampleSecretProviderClass.yaml
  2. Implante o pod:

    kubectl apply -f ExampleDeployment.yaml
  3. O ASCP monta os arquivos.

Solução de problemas

É possível visualizar a maioria dos erros ao descrever a implantação do pod.

Para ver mensagens de erro para o contêiner
  1. Obtenha uma lista de nomes de pods com o comando a seguir. Se você não estiver usando o namespace padrão, use -n nameSpace.

    kubectl get pods
  2. Para descrever o pod, no comando a seguir, podId use o ID do pod dos pods que você encontrou na etapa anterior. Se você não estiver usando o namespace padrão, use -n nameSpace.

    kubectl describe pod/podId
Para ver erros para o ASCP
  • Para encontrar mais informações nos registros do provedor, no comando a seguir, podId use o ID do csi-secrets-store-provider-aws Pod.

    kubectl -n kube-system get pods kubectl -n kube-system logs Pod/podId
  • Verifique se a CRD do SecretProviderClass está instalada:
    kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io

    Este comando deve retornar informações sobre a definição do recurso personalizado SecretProviderClass.

  • Verifique se o SecretProviderClass objeto foi criado.
    kubectl get secretproviderclass SecretProviderClassName -o yaml