Tutorial: Crie e monte um AWS Secrets Manager segredo em um pod do Amazon EKS - 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á.

Tutorial: Crie e monte um AWS Secrets Manager segredo em um pod do Amazon EKS

Neste tutorial, você cria um exemplo de segredo no Secrets Manager e, em seguida, monta o segredo em um pod do Amazon EKS e o implanta.

Antes de começar, instale o ASCP: Instalar a aplicação.

Para criar e montar um segredo
  1. Defina o nome Região da AWS e o do seu cluster como variáveis de shell para que você possa usá-las nos comandos bash. Para<REGION>, insira o Região da AWS local em que seu cluster Amazon EKS é executado. Em <CLUSTERNAME>, insira um nome para o cluster.

    REGION=<REGION> CLUSTERNAME=<CLUSTERNAME>
  2. Crie um segredo de teste. Para ter mais informações, consulte Criar e gerenciar segredos com o AWS Secrets Manager.

    aws --region "$REGION" secretsmanager create-secret --name MySecret --secret-string '{"username":"lijuan", "password":"hunter2"}'
  3. Crie uma política de recursos para o pod que limite o acesso ao segredo que você criou na etapa anterior. Em<SECRETARN>, use o ARN do segredo. Salve o ARN da política em uma variável de shell.

    POLICY_ARN=$(aws --region "$REGION" --query Policy.Arn --output text iam create-policy --policy-name nginx-deployment-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"], "Resource": ["<SECRETARN>"] } ] }')
  4. Crie um provedor IAM OIDC para o cluster, se você ainda não tiver um. Para obter mais informações, consulte Criar um provedor IAM OIDC para o cluster.

    eksctl utils associate-iam-oidc-provider --region="$REGION" --cluster="$CLUSTERNAME" --approve # Only run this once
  5. Crie a conta de serviço que o pod usa e associe a política de recursos criada na etapa 3 a esta conta de serviço. Para este tutorial, para o nome da conta de serviço, você usa nginx-deployment-sa. Para obter mais informações, consulte Criar uma função e uma política do IAM para uma conta de serviço.

    eksctl create iamserviceaccount --name nginx-deployment-sa --region="$REGION" --cluster "$CLUSTERNAME" --attach-policy-arn "$POLICY_ARN" --approve --override-existing-serviceaccounts
  6. Crie o SecretProviderClass para especificar qual segredo será montado no pod. O comando a seguir é usado ExampleSecretProviderClass.yaml no diretório de exemplos do GitHub repositório ASCP para montar o segredo que você criou na etapa 2. Para obter informações sobre como criar seu próprio SecretProviderClass, consulte SecretProviderClass.

    kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass.yaml
  7. Implante seu pod. O comando a seguir é usado ExampleDeployment.yaml no diretório de exemplos do GitHub repositório ASCP para montar o segredo /mnt/secrets-store no pod.

    kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment.yaml
  8. Para verificar se o segredo foi montado corretamente, use o comando a seguir e confirme se o valor do segredo é exibido.

    kubectl exec -it $(kubectl get pods | awk '/nginx-deployment/{print $1}' | head -1) cat /mnt/secrets-store/MySecret; echo

    O valor do segredo é exibido.

    {"username":"lijuan", "password":"hunter2"}