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
-
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>
-
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"}'
-
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>
"] } ] }') -
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
-
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
-
Crie o
SecretProviderClass
para especificar qual segredo será montado no pod. O comando a seguir é usadoExampleSecretProviderClass.yaml
no diretório de exemplos do GitHub repositório ASCPpara 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
-
Implante seu pod. O comando a seguir é usado
ExampleDeployment.yaml
no diretório de exemplos do GitHub repositório ASCPpara 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
-
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"}