Cómo utilizar CSI del Proveedor de secretos y configuración (ASCP) de AWS con Pod Identity para Amazon EKS
La integración del Proveedor de secretos y configuración (ASCP) de AWS con el agente de Pod Identity para Amazon Elastic Kubernetes Service proporciona una seguridad mejorada, una configuración simplificada y un rendimiento mejorado para las aplicaciones que se ejecutan en Amazon EKS. Pod Identity simplifica la autenticación de IAM para Amazon EKS al recuperar secretos de Secrets Manager o parámetros de AWS Systems Manager Parameter Store.
Pod Identity de Amazon EKS agiliza el proceso de configuración de los permisos de IAM para las aplicaciones de Kubernetes, ya que permite que los permisos se configuren directamente a través de las interfaces de Amazon EKS, lo que reduce el número de pasos y elimina la necesidad de cambiar entre los servicios de Amazon EKS e IAM. Pod Identity permite usar un solo rol de IAM en varios clústeres sin actualizar las políticas de confianza y admite etiquetas de sesión de rol para un control de acceso más detallado. Este enfoque no solo simplifica la administración de políticas al permitir la reutilización de políticas de permisos en todos los roles, sino que también mejora la seguridad al permitir el acceso a los recursos de AWS en función de las etiquetas coincidentes.
Funcionamiento
-
Pod Identity asigna un rol de IAM al pod.
-
El ASCP usa este rol para autenticarse con Servicios de AWS.
-
Si está autorizado, ASCP recupera los secretos solicitados y hace que estén disponibles para el pod.
Para obtener más información, consulte Descripción del funcionamiento de Pod Identity de Amazon EKS en la Guía del usuario de Amazon EKS.
Requisitos previos
importante
Pod Identity solo es compatible con Amazon EKS en la nube. No es compatible con Amazon EKS Anywhere
-
Clúster de Amazon EKS (versión 1.24 o posterior)
-
Acceso a AWS CLI y al clúster de Amazon EKS a través de
kubectl -
Acceso a dos Cuentas de AWS (para el acceso entre cuentas)
Cómo instalar el agente de Pod Identity de Amazon EKS
Para usar Pod Identity con el clúster, debe instalar el complemento del agente de Pod Identity de Amazon EKS.
Cómo instalar el agente de Pod Identity
-
Instale el complemento del agente de Pod Identity en el clúster:
eksctl create addon \ --name eks-pod-identity-agent \ --clusterclusterName\ --regionregion
Cómo configurar el ASCP con Pod Identity
-
Cree una política de permisos que conceda los permisos
secretsmanager:GetSecretValueysecretsmanager:DescribeSecreta los secretos que el pod necesita acceder. Para ver una política de ejemplo, consulte Ejemplo: Permiso para leer y describir secretos individuales. -
Cree un rol de IAM que pueda ser asumido por la entidad principal de servicio de Amazon EKS para Pod Identity:
Adjunte la política de IAM al rol:
aws iam attach-role-policy \ --role-nameMY_ROLE\ --policy-arnPOLICY_ARN -
Cree una asociación de Pod Identity. Para ver un ejemplo, consulte Creación de una asociación de Pod Identity en la Guía del usuario de Amazon EKS.
-
Cree
SecretProviderClassque especifica qué secretos se deben montar en el pod:kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yamlLa diferencia clave en
SecretProviderClassentre los roles de IAM para las cuentas de servicio (IRSA) y Pod Identity es el parámetro opcionalusePodIdentity. Es un campo opcional que determina el enfoque de autenticación. Si no se especifica, se utilizarán los roles de IAM para IRSA de manera predeterminada.-
Para usar Pod Identity de EKS, utilice cualquiera de estos valores:
"true", "True", "TRUE", "t", "T". -
Para usar IRSA de forma explícita, establézcalo en cualquiera de estos valores:
"false", "False", "FALSE", "f", or "F".
-
-
Implemente el pod que monta los secretos en
/mnt/secrets-store:kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml -
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.
Cómo verificar el montaje del secreto
Para verificar que el secreto se ha montado correctamente, ejecute el siguiente comando:
kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MySecret
Cómo configurar al Pod Identity de Amazon EKS para acceder a los secretos de Secrets Manager
-
Cree una política de permisos que conceda los permisos
secretsmanager:GetSecretValueysecretsmanager:DescribeSecreta los secretos que el pod necesita acceder. Para ver una política de ejemplo, consulte Ejemplo: Permiso para leer y describir secretos individuales. -
En caso de no disponer de un secreto en Secrets Manager, debe crear uno.
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
-
Obtenga una lista de nombres de pods con el siguiente comando. Si no está utilizando el espacio de nombres predeterminado, use
-n.NAMESPACEkubectl get pods -
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.NAMESPACEkubectl 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