

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.

# Utilice el CSI del proveedor de AWS secretos y configuración con funciones de IAM para cuentas de servicio (IRSA)
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [Requisitos previos](#prerequisites)
+ [Cómo configurar el control de acceso](#integrating_ascp_irsa_access)
+ [Identificar qué secretos hay que montar](#integrating_ascp_irsa_mount)
+ [Solución de problemas](#integrating_ascp_irsa_trouble)

## Requisitos previos
<a name="prerequisites"></a>
+ Clúster de Amazon EKS (versión 1.17 o posterior)
+ Acceso a un clúster AWS CLI de Amazon EKS a través de `kubectl`

## Cómo configurar el control de acceso
<a name="integrating_ascp_irsa_access"></a>

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](auth-and-access_iam-policies.md#auth-and-access_examples-read-and-describe).

1. 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](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) en la *Guía del usuario de Amazon EKS*.

1. Cree un [rol de IAM para la cuenta de servicio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) y adjunte la política. Para obtener más información, consulte [Crear un rol de IAM para su cuenta de servicio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) en la *Guía del usuario de Amazon EKS*.

1. Si utiliza un clúster privado de Amazon EKS, asegúrese de que la VPC en la que se encuentra el clúster tenga un AWS STS punto de conexión. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) en la *Guía del usuario de AWS Identity and Access Management *.

## Identificar qué secretos hay que montar
<a name="integrating_ascp_irsa_mount"></a>

Para determinar qué secretos debe montar el ASCP en Amazon EKS como archivos del sistema de archivos, se debe crear un archivo YAML [SecretProviderClass](ascp-examples.md#ascp-examples-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
<a name="mount-secrets"></a>

[Las siguientes instrucciones muestran cómo montar secretos como archivos utilizando los archivos YAML de ejemplo .yaml y [ExampleSecretProviderClass.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml). ExampleDeployment](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleDeployment-IRSA.yaml)

**Montar secretos en Amazon EKS**

1. Aplique el `SecretProviderClass` al pod:

   ```
   kubectl apply -f ExampleSecretProviderClass.yaml
   ```

1. Implemente el pod:

   ```
   kubectl apply -f ExampleDeployment.yaml
   ```

1. El ASCP monta los archivos.

## Solución de problemas
<a name="integrating_ascp_irsa_trouble"></a>

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
   ```

1. Para describir el pod, en el siguiente comando, *podId* usa el ID de pod de los pods que encontraste 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 obtener más información en los registros del proveedor, usa el siguiente comando para *podId* usar 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`.
+ 

**Compruebe que se haya creado el SecretProviderClass objeto.**

  ```
  kubectl get secretproviderclass SecretProviderClassName -o yaml
  ```