

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Ejemplos de código del Proveedor de secretos y configuración de AWS
<a name="ascp-examples"></a>

## Ejemplos de autenticación y control de acceso del ASCP
<a name="ascp-auth-access-examples"></a>

### Ejemplo: política de IAM que permite que el servicio Pod Identity de Amazon EKS (pods.eks.amazonaws.com) asuma el rol y etiquete la sesión:
<a name="ascp-auth-access-example-1"></a>

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

****  

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

------

## SecretProviderClass
<a name="ascp-examples-secretproviderclass"></a>

Se debe utilizar YAML para describir qué parámetros hay que montar en Amazon EKS mediante el ASCP. Para ver ejemplos, consulte [Uso de SecretProviderClass](#ascp-scenarios-secretproviderclass).

### Estructura YAML de SecretProviderClass
<a name="ascp-examples-secretproviderclass-1"></a>

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
   name: name
spec:
  provider: aws
  parameters:
    region:
    failoverRegion:
    pathTranslation:
    usePodIdentity:
    preferredAddressType:
    objects:
```

Los campos de los parámetros contienen los detalles de la solicitud de montaje:

**region**  
(Opcional) La Región de AWS del parámetro. Si no utiliza este campo, el ASCP busca la región en la anotación en el nodo. Esta búsqueda agrega una sobrecarga a las solicitudes de montaje, por lo que recomendamos que proporcione la región para los clústeres que utilizan una gran cantidad de pods.  
Si también se especifica `failoverRegion`, el ASCP intenta recuperar el parámetro desde ambas regiones. Si alguna de estas regiones devuelve un error `4xx` (por ejemplo, por un problema de autenticación), el ASCP no monta ninguno de los parámetros. Si el parámetro se recupera correctamente desde `region```, el ASCP monta ese valor de parámetro. Si el parámetro no se recupera correctamente desde `region`, pero sí desde `failoverRegion`, el ASCP monta ese valor de parámetro.

**`failoverRegion`**  
(Opcional) Si se incluye este campo, el ASCP intenta recuperar el parámetro desde las regiones definidas en `region` y este campo. Si alguna de estas regiones devuelve un error `4xx` (por ejemplo, por un problema de autenticación), el ASCP no monta ninguno de los parámetros. Si el parámetro se recupera correctamente desde `region`, el ASCP monta ese valor de parámetro. Si el parámetro no se recupera correctamente desde `region`, pero sí desde `failoverRegion`, el ASCP monta ese valor de parámetro. Para ver un ejemplo sobre cómo utilizar este campo, consulte [Conmutación por error de parámetros multirregionales](#multi-region-failover).

**pathTranslation**  
(Opcional) Un único carácter de sustitución para utilizarlo si el nombre del archivo de Amazon EKS contiene el carácter separador de ruta, por ejemplo la barra diagonal (/) en Linux. El ASCP no puede crear un archivo montado que contenga un carácter separador de ruta. En su lugar, el ASCP reemplaza el carácter separador de ruta por otro carácter. Si no se utiliza este campo, el carácter de reemplazo es el guion bajo (\$1), de modo que, por ejemplo, `My/Path/Parameter` se monta como `My_Path_Parameter`.   
Para evitar la sustitución de caracteres, ingrese la cadena `False`.

***usePodIdentity***  
(Opcional) Determine el enfoque de autenticación. Si no se especifica, se utilizarán los roles de IAM para las cuentas de servicio (IRSA) de manera predeterminada.  
+ Para usar Pod Identity de EKS, utilice cualquiera de estos valores: `"true"`, `"True"`, `"TRUE"`, `"t"` o `"T"`.
+ Para usar IRSA de forma explícita, establezca cualquiera de estos valores: `"false"`, `"False"`, `"FALSE"`, `"f"` o `"F"`.

***preferredAddressType***  
(Opcional) Especifica el tipo de dirección IP preferido para la comunicación del punto de conexión del agente de Pod Identity. El campo solo se aplica cuando se utiliza la característica Pod Identity de EKS y se ignora cuando se utilizan roles de IAM para cuentas de servicio. Los valores no distinguen entre mayúsculas y minúsculas. Los valores válidos son:  
+ `"ipv4"`, `"IPv4"` o `"IPV4"`: fuerza el uso del punto de conexión IPv4 del agente de Pod Identity.
+ `"ipv6"`, `"IPv6"` o `"IPV6"`: fuerza el uso del punto de conexión IPv6 del agente de Pod Identity.
+ no especificado: usa la selección automática del punto de conexión; prueba primero el punto de conexión IPv4 y recurre al punto de conexión IPv6 si IPv4 falla.

**objetos**  
Una cadena que contiene una declaración YAML de los secretos que se van a montar. Se recomienda utilizar una cadena de varias líneas de YAML o una barra vertical (\$1).    
**objectName**  
Obligatorio. Especifica el nombre del parámetro o el secreto que se va a obtener. En el caso de Parameter Store, este es el [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters) del parámetro y puede ser el nombre o el ARN completo del parámetro. En el caso de Secrets Manager, este es el parámetro [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters) y puede ser el nombre descriptivo o el ARN completo del secreto.   
**objectType**  
Es requerido si no utiliza un ARN de Secrets Manager para `objectName`. En Parameter Store, utilice `ssmparameter`. Para Secrets Manager, utilice `secretsmanager`.   
**objectAlias**  
(Opcional) El nombre de archivo del secreto en el pod de Amazon EKS. Si no especifica este campo, el `objectName` aparece como nombre de archivo.  
**objectVersion**  
(Opcional) El ID de la versión del parámetro. No se recomienda porque se debe actualizar el ID de la versión cada vez que se actualice el parámetro. Se utiliza la versión más reciente de forma predeterminada. Si se incluye `failoverRegion`, este campo representa el campo `objectVersion` principal.  
**objectVersionLabel**  
(Opcional) El alias de la versión. La versión predeterminada es la versión `AWSCURRENT` más reciente. Si se incluye `failoverRegion`, este campo representa el campo `objectVersionLabel` principal.  
**jmesPath**  
(Opcional) Un mapa de las claves en el parámetro para los archivos que se van a montar en Amazon EKS. Para utilizar este campo, el valor del parámetro debe estar en formato JSON.   
En el siguiente ejemplo se muestra el aspecto de un parámetro codificado JSON.  

```
{
    "username" : "myusername",
    "password" : "mypassword"
}
```
Las claves son `username` y `password`. El valor asociado a `username` es `myusername`, y el valor asociado a `password` es `mypassword`.  
Si utiliza este campo, debe incluir los subcampos `path` y `objectAlias`.    
**path**  
Una clave de un par clave-valor en el JSON del valor del parámetro. Si el campo contiene un guion, aplique escape con comillas simples, por ejemplo: `path: '"hyphenated-path"'`  
**objectAlias**  
Nombre de archivo que se va a montar en el pod de Amazon EKS. Si el campo contiene un guion, aplique escape con comillas simples, por ejemplo: `objectAlias: '"hyphenated-alias"'`  
**`failoverObject`**  
(Opcional) Si se especifica este campo, el ASCP intenta recuperar tanto el parámetro especificado en el campo `objectName` principal como el parámetro especificado en el subcampo `failoverObject` `objectName`. Si alguno devuelve un error `4xx` (por ejemplo, por un problema de autenticación), el ASCP no monta ninguno de los parámetros. Si el parámetro se recupera correctamente desde el campo `objectName` principal, el ASCP monta ese valor de parámetro. Si el parámetro no se recupera correctamente desde el campo `objectName` principal, pero sí desde el `objectName` de conmutación por error, el ASCP monta ese valor de parámetro. Si se incluye este campo, se debe incluir el campo `objectAlias`. Para ver un ejemplo sobre cómo utilizar este campo, consulte [Conmutación por error a un parámetro diferente](#failover-parameter).  
Este campo se suele utilizar cuando el parámetro de conmutación por error no es una réplica. Para ver un ejemplo sobre cómo especificar una réplica, consulte [Conmutación por error de parámetros multirregionales](#multi-region-failover).    
**objectName**  
Nombre o ARN completo del parámetro de conmutación por error. Si se utiliza un ARN, la región del ARN debe coincidir con el campo `failoverRegion`.  
**objectVersion**  
(Opcional) El ID de la versión del parámetro. Debe coincidir con el campo `objectVersion` principal. No se recomienda porque se debe actualizar el ID de la versión cada vez que se actualice el parámetro. Se utiliza la versión más reciente de forma predeterminada.   
**objectVersionLabel**  
(Opcional) El alias de la versión. La versión predeterminada es la versión `AWSCURRENT` más reciente.

### Cree una configuración básica de SecretProviderClass para montar los parámetros en los pods de Amazon EKS.
<a name="create-SecretProviderClass-config"></a>

------
#### [ Pod Identity ]

SecretProviderClass para usar un parámetro en el mismo clúster de Amazon EKS:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameter-store
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "MyParameter"
        objectType: "ssmparameter"
    usePodIdentity: "true"
```

------
#### [ IRSA ]

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: deployment-aws-parameter
spec:
  provider: aws
  parameters:
    objects: |
        - objectName: "MyParameter"
          objectType: "ssmparameter"
```

------

### Uso de SecretProviderClass
<a name="ascp-scenarios-secretproviderclass"></a>

Utilice estos ejemplos para crear configuraciones de `SecretProviderClass` para diferentes situaciones.

#### Ejemplo: montaje de parámetros por nombre o ARN
<a name="mount-by-name-arn"></a>

En este ejemplo, se muestra cómo montar tres tipos diferentes de parámetros:
+ un parámetro especificado por ARN completo,
+ un parámetro especificado por su nombre,
+ una versión de parámetro de un secreto.

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter2-d4e5f6"
      - objectName: "MyParameter3"
        objectType: "ssmparameter"
      - objectName: "MyParameter4"
        objectType: "ssmparameter"
        objectVersionLabel: "AWSCURRENT"
```

#### Ejemplo: montaje de pares clave-valor de un parámetro
<a name="mount-key-value-pairs"></a>

En este ejemplo, se muestra cómo montar pares clave-valor específicos a partir de un parámetro con formato JSON:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter-a1b2c3"
        jmesPath: 
            - path: username
              objectAlias: dbusername
            - path: password
              objectAlias: dbpassword
```

#### Ejemplo: configuración de conmutación por error
<a name="failover-examples"></a>

En estos ejemplos, se muestra cómo configurar la conmutación por error para parámetros.

##### Conmutación por error de parámetros multirregionales
<a name="multi-region-failover"></a>

En este ejemplo, se muestra cómo configurar la conmutación por error automática para un parámetro replicado en varias regiones:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "MyParameter"
```

##### Conmutación por error a un parámetro diferente
<a name="failover-parameter"></a>

En este ejemplo, se muestra cómo configurar la conmutación por error a un parámetro diferente (no a una réplica):

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "arn:aws:ssm:us-east-1:777788889999:parameter:MyParameter-a1b2c3"
        objectAlias: "MyMountedParameter"
        failoverObject: 
          - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyFailoverParameter-d4e5f6"
```

## Recursos adicionales
<a name="additional-resources"></a>

Para obtener más información sobre el uso del ASCP con Amazon EKS, consulte los siguientes recursos:
+ [Using Pod Identity with Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [AWS Secrets Store CSI Driver on GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)