

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 Pod Identity para Amazon EKS
<a name="ascp-pod-identity-integration"></a>

La integración del proveedor de AWS secretos y configuración con el agente de identidad del pod 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 Parameter Store AWS Systems Manager .

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](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags) 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 las políticas de permisos en todas las funciones, sino que también mejora la seguridad al permitir el acceso a AWS los recursos en función de las etiquetas coincidentes.

## Funcionamiento
<a name="how-it-works"></a>

1. Pod Identity asigna un rol de IAM al pod.

1. ASCP usa esta función para autenticarse con. Servicios de AWS

1. 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](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-how-it-works.html) en la *Guía del usuario de Amazon EKS*.

## Requisitos previos
<a name="prerequisites"></a>

**importante**  
Pod Identity solo es compatible con Amazon EKS en la nube. No es compatible con [Amazon EKS Anywhere](https://aws.amazon.com/eks/eks-anywhere/), [Red Hat OpenShift Service en AWS](https://aws.amazon.com/rosa/) ni con los clústeres de Kubernetes autoadministrados en las instancias de Amazon EC2.
+ Clúster de Amazon EKS (versión 1.24 o posterior)
+ Acceso a un clúster AWS CLI de Amazon EKS a través de `kubectl`
+ Acceso a dos Cuentas de AWS (para acceso entre cuentas)

## Cómo instalar el agente de Pod Identity de Amazon EKS
<a name="install-pod-identity-agent"></a>

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 \
    --cluster clusterName \
    --region region
  ```

## Cómo configurar el ASCP con Pod Identity
<a name="pod-identity-setup"></a>

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 rol de IAM que pueda ser asumido por la entidad principal de servicio de Amazon EKS para Pod Identity:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Service": "pods.eks.amazonaws.com"
           },
           "Action": [
             "sts:AssumeRole",
             "sts:TagSession"
           ]
         }
       ]
     }
   ```

------

   Adjunte la política de IAM al rol:

   ```
   aws iam attach-role-policy \
     --role-name MY_ROLE \
     --policy-arn POLICY_ARN
   ```

1. Cree una asociación de Pod Identity. Para ver un ejemplo, consulte [Creación de una asociación de Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create) en la *Guía del usuario de Amazon EKS*.

1. Cree `SecretProviderClass` que 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.yaml
   ```

   La diferencia clave en `SecretProviderClass` entre los roles de IAM para las cuentas de servicio (IRSA) y Pod Identity es el parámetro opcional `usePodIdentity`. 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"`.

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

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 *.

### Cómo verificar el montaje del secreto
<a name="verify-secret-mount"></a>

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

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. En caso de no disponer de un secreto en Secrets Manager, debe crear uno.

## Solución de problemas
<a name="integrating_aspc_pod_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
  ```