Usar o CSI do AWS Secrets and Configuration Provider com perfis do IAM para contas de serviço (IRSA) - AWS Secrets Manager

Usar o CSI do AWS Secrets and Configuration Provider com perfis do IAM para contas de serviço (IRSA)

Pré-requisitos

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

  • Acesso à AWS CLI e ao cluster do Amazon EKS por meio do 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ê usar um cluster privado do Amazon EKS, certifique-se de que a VPC na qual o cluster se encontra tenha um endpoint do AWS STS. 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: ExampleSecretProviderClass.yaml e ExampleDeployment.yaml.

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, em podid, use o ID de pod dos pods encontrados 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 obter mais informações nos logs do provedor, no comando a seguir, em podid, use a ID do pod csi-secrets-store-provedor-aws.

    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 objeto do SecretProviderClass foi criado.
    kubectl get secretproviderclass SecretProviderClassName -o yaml