Cómo utilizar de CSI del Proveedor de secretos y configuración (ASCP) de AWS con roles de IAM para cuentas de servicio (IRSA) - AWS Secrets Manager

Cómo utilizar de CSI del Proveedor de secretos y configuración (ASCP) de AWS con roles de IAM para cuentas de servicio (IRSA)

Requisitos previos

  • Clúster de Amazon EKS (versión 1.17 o posterior)

  • Cómo acceder a AWS CLI y al clúster de Amazon EKS a través de kubectl

Cómo configurar el control de acceso

El ASCP recupera Pod Identity de Amazon EKS y la cambia por un rol de IAM. Los permisos se establecen en una política de IAM para ese rol de IAM. Cuando el ASCP asume el rol de IAM, le da acceso a los secretos autorizados por usted. Otros contenedores no pueden acceder a los secretos a menos que también los asocie con el rol de IAM.

Cómo concederle al pod de Amazon EKS acceso a los secretos de Secrets Manager
  1. Cree una política de permisos que conceda los permisos secretsmanager:GetSecretValue y secretsmanager:DescribeSecret a los secretos que el pod necesita acceder. Para ver una política de ejemplo, consulte Ejemplo: Permiso para leer y describir secretos individuales.

  2. Cree un proveedor OpenID Connect (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 en la Guía del usuario de Amazon EKS.

  3. Cree un rol de IAM para la cuenta de servicio y adjunte la política. Para obtener más información, consulte Crear un rol de IAM para su cuenta de servicio en la Guía del usuario de Amazon EKS.

  4. Si utiliza un clúster privado de Amazon EKS, asegúrese de que la VPC en la que se encuentre el clúster tenga un punto de conexión de AWS STS. Para obtener más información sobre la creación de un punto de conexión, consulte Puntos de conexión de VPC de tipo interfaz en la Guía del usuario de AWS Identity and Access Management.

Identificar qué secretos hay que montar

Para determinar qué secretos debe montar el ASCP en Amazon EKS como archivos del sistema de archivos, se debe crear un archivo YAML SecretProviderClass. El SecretProviderClass contiene una lista de los secretos que hay que montar y el nombre de archivo con el que montarlos. El SecretProviderClass debe estar en el mismo espacio de nombres que el pod de Amazon EKS al que hace referencia.

Montar los secretos como archivos

Las siguientes instrucciones muestran cómo montar los secretos como archivos utilizando los archivos YAML ExampleSecretProviderClass.yaml y ExampleDeployment.yaml de ejemplo.

Montar secretos en Amazon EKS
  1. Aplique el SecretProviderClass al pod:

    kubectl apply -f ExampleSecretProviderClass.yaml
  2. Implemente el pod:

    kubectl apply -f ExampleDeployment.yaml
  3. El ASCP monta los archivos.

Solución de problemas

Puede ver la mayoría de los errores si describe la implementación del pod.

Cómo ver los mensajes de error del contenedor
  1. Obtenga una lista de nombres de pods con el siguiente comando. Si no está utilizando el espacio de nombres predeterminado, use -n nameSpace.

    kubectl get pods
  2. Para describir el pod, en el siguiente comando, en podId use el ID de pod de los pods que encontró en el paso anterior. Si no está utilizando el espacio de nombres predeterminado, use -n nameSpace.

    kubectl describe pod/podId
Cómo ver los errores del ASCP
  • Para encontrar más información en los registros del proveedor, en el siguiente comando, en podId, utilice el ID del pod csi-secrets-store-provider-aws.

    kubectl -n kube-system get pods kubectl -n kube-system logs Pod/podId
  • Cómo comprobar que la definición de recurso personalizado (CRD) de SecretProviderClass está instalada:
    kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io

    Este comando debe devolver información acerca de la definición de recurso personalizado de SecretProviderClass.

  • Cómo comprobar que se haya creado el objeto SecretProviderClass.
    kubectl get secretproviderclass SecretProviderClassName -o yaml