Tutorial: Crea y monta un AWS Secrets Manager secreto en un pod de Amazon EKS - AWS Secrets Manager

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Crea y monta un AWS Secrets Manager secreto en un pod de Amazon EKS

En este tutorial, creará un secreto de ejemplo en Secrets Manager y, a continuación, lo montará en un pod de Amazon EKS y lo implementará.

Antes de comenzar, instale el ASCP: Instale el ASCP.

Crear y montar un secreto
  1. Configura el nombre Región de AWS y el nombre de tu clúster como variables de shell para poder utilizarlos en los comandos de bash. Para<REGION>, introduzca el Región de AWS lugar en el que se ejecuta su clúster de Amazon EKS. En <CLUSTERNAME>, ingrese el nombre del clúster.

    REGION=<REGION> CLUSTERNAME=<CLUSTERNAME>
  2. Cree un secreto de prueba. Para obtener más información, consulte Cree y administre secretos con AWS Secrets Manager.

    aws --region "$REGION" secretsmanager create-secret --name MySecret --secret-string '{"username":"lijuan", "password":"hunter2"}'
  3. Cree una política de recursos para el pod que limite su acceso al secreto que creó en el paso anterior. En <SECRETARN>, utilice el ARN del secreto. Guarde el ARN de la política en una variable 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. Cree un proveedor OIDC de IAM para el clúster si todavía no tiene uno. Para obtener más información, consulte Crear un proveedor OIDC de IAM para su clúster.

    eksctl utils associate-iam-oidc-provider --region="$REGION" --cluster="$CLUSTERNAME" --approve # Only run this once
  5. Cree la cuenta de servicio que utiliza el pod y asocie la política de recursos que creó en el paso 3 con esa cuenta de servicio. Para este tutorial, utilice el nombre de la cuenta de servicio nginx-deployment-sa. Para obtener más información, consulte Crear un rol de IAM para una cuenta de servicio.

    eksctl create iamserviceaccount --name nginx-deployment-sa --region="$REGION" --cluster "$CLUSTERNAME" --attach-policy-arn "$POLICY_ARN" --approve --override-existing-serviceaccounts
  6. Cree la SecretProviderClass para especificar qué secreto montar en el pod. El siguiente comando se utiliza ExampleSecretProviderClass.yaml en el directorio de ejemplos de GitHub repositorios de ASCP para montar el secreto que creaste en el paso 2. Para obtener información acerca de la creación de su propia SecretProviderClass, consulte SecretProviderClass.

    kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass.yaml
  7. Implemente el pod El siguiente comando se utiliza ExampleDeployment.yaml en el directorio de ejemplos de GitHub repositorios de ASCP para montar el secreto en /mnt/secrets-store el pod.

    kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment.yaml
  8. Para verificar que el secreto se ha montado correctamente, utilice el siguiente comando y confirme que el valor secreto aparece.

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

    El valor secreto aparece.

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