Uso de CSI del Proveedor de secretos y configuración (ASCP) de AWS con roles de IAM para cuentas de servicio (IRSA)
Temas
Requisitos previos
-
Clúster de Amazon EKS (versión 1.17 o posterior)
-
Acceso a AWS CLI y al clúster de Amazon EKS a través de
kubectl
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 parámetros que usted autorizó. Otros contenedores no pueden acceder a los parámetros a menos que también los asocie con el rol de IAM.
Concesión del acceso al pod de Amazon EKS a los parámetros en Parameter Store
-
Cree una política de permisos que conceda los permisos
ssm:GetParameters
yssm:DescribeParameters
a los parámetros a los que el pod necesite acceder. -
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.
-
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.
-
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.
Identificación de los parámetros para montar
Para determinar qué parámetros 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 parámetros 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.
Montaje de los parámetros como archivos
Las siguientes instrucciones muestran cómo montar los parámetros como archivos utilizando los archivos YAML ExampleSecretProviderClass.yaml
Montaje de los parámetros en Amazon EKS
-
Aplique el
SecretProviderClass
al pod:kubectl apply -f ExampleSecretProviderClass.yaml
-
Implemente el pod:
kubectl apply -f ExampleDeployment.yaml
-
El ASCP monta los archivos.
Solución de problemas
Puede ver la mayoría de los errores si describe la implementación del pod.
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
.name-space
kubectl get pods
-
Para describir el pod, en el siguiente comando, en
pod-id
, 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/
pod-id
Ver los errores del ASCP
-
Para obtener más información en los registros del proveedor, en el siguiente comando, en
pod-id
, utilice el ID del pod csi-secrets-store-provider-aws.kubectl -n kube-system get pods kubectl -n kube-system logs Pod/
pod-id
-
Comprobación de 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
.
-
Comprobación de que se haya creado el objeto SecretProviderClass.
kubectl get secretproviderclass
SecretProviderClassName
-o yaml