

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la [documentation Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utiliser des paramètres Parameter Store dans Amazon Elastic Kubernetes Service
<a name="integrate_eks"></a>

Pour afficher des paramètres à partir de l’outil Parameter Store d’AWS Systems Manager sous la forme de fichiers montés dans des pods Amazon EKS, vous pouvez utiliser le fournisseur de secrets et de configuration AWS pour le pilote CSI Kubernetes Secrets Store. L’ASCP fonctionne avec Amazon Elastic Kubernetes Service 1.17\$1 exécutant un groupe de nœuds Amazon EC2. Les groupes de nœuds AWS Fargate ne sont pas pris en charge. 

Avec l’ASCP, vous pouvez stocker et gérer votre paramètre dans Parameter Store, puis les récupérer via vos charges de travail exécutées sur Amazon EKS. Si votre paramètre contient plusieurs paires de clé-valeur au format JSON, vous pouvez choisir celles à monter dans Amazon EKS. L’ASCP utilise la syntaxe JMESPath pour interroger les paires clé-valeur dans votre secret. L’ASCP fonctionne également avec les secrets AWS Secrets Manager.

L’ASCP propose deux méthodes d’authentification avec Amazon EKS. La première approche utilise les rôles IAM pour les comptes de service (IRSA). La deuxième approche utilise les identités du pod. Chaque approche a ses avantages et cas d’utilisation.

## ASCP avec rôles IAM pour les comptes de service (IRSA)
<a name="csi_driver_overview"></a>

L’ASCP avec les rôles IAM pour les comptes de service (IRSA) vous permet de monter des paramètres de Parameter Store sous forme de fichiers dans vos pods Amazon EKS. Cette approche convient lorsque :
+ Vous devez monter les paramètres sous forme de fichiers dans vos pods.
+ Vous utilisez Amazon EKS version 1.17 ou ultérieure avec des groupes de nœuds Amazon EC2.
+ Vous souhaitez récupérer des paires clé-valeur spécifiques à partir de paramètres au format JSON.

Pour de plus amples informations, consultez [Utiliser AWS les secrets et le fournisseur de configuration CSI avec des rôles IAM pour les comptes de service (IRSA)](integrating_ascp_irsa.md).

## ASCP avec l’identité du pod
<a name="pod_identity_overview"></a>

La méthode ASCP avec l’identité du pod améliore la sécurité et simplifie la configuration pour accéder aux paramètres dans Parameter Store. Cette approche est bénéfique lorsque :
+ Vous avez besoin d’une gestion des autorisations plus précise au niveau du pod.
+ Vous utilisez Amazon EKS version 1.24 ou ultérieure.
+ Vous souhaitez améliorer les performances et la capacité de mise à l’échelle.

Pour de plus amples informations, consultez [Utiliser AWS les secrets et le fournisseur de configuration CSI avec Pod Identity pour Amazon EKS](ascp-pod-identity-integration.md).

## Choix de la bonne approche
<a name="comparison"></a>

Tenez compte des facteurs suivants lorsque vous choisissez entre ASCP avec IRSA et ASCP avec l’identité du pod :
+ Version d’Amazon EKS : l’identité du pod nécessite Amazon EKS 1.24\$1, tandis que le pilote CSI fonctionne avec Amazon EKS 1.17\$1.
+ Exigences de sécurité : l’identité du pod offre un contrôle plus granulaire au niveau du pod.
+ Performances : l’identité du pod fonctionne généralement mieux dans les environnements à grande échelle.
+ Complexité : l’identité du pod simplifie la configuration en éliminant le besoin de comptes de service distincts.

Choisissez la méthode qui correspond le mieux à vos exigences spécifiques et à l’environnement Amazon EKS.

# Installer l’ASCP pour Amazon EKS
<a name="ascp-eks-installation"></a>

Cette section explique comment installer le fournisseur de AWS secrets et de configuration pour Amazon EKS. Avec ASCP, vous pouvez monter des paramètres Parameter Store et des secrets à partir de AWS Secrets Manager fichiers dans Amazon EKS Pods.

## Conditions préalables
<a name="prerequisites"></a>
+ Un cluster Amazon EKS
  + Version 1.24 ou ultérieure pour l’identité du pod
  + Version 1.17 ou ultérieure pour IRSA
+ Le AWS CLI installé et configuré
+ kubectl installé et configuré pour votre cluster Amazon EKS
+ Helm (version 3.0 ou ultérieure)

## Installation et configuration de l’ASCP
<a name="integrating_csi_driver_install"></a>

L'ASCP est disponible GitHub dans le référentiel [secrets-store-csi-provider-aws](https://github.com/aws/secrets-store-csi-driver-provider-aws). Le référentiel contient également des exemples de fichiers YAML pour créer et monter un secret en modifiant la valeur `objectType` de `secretsmanager` à `ssmparameter`. 

Pendant l’installation, vous pouvez configurer l’ASCP pour utiliser un point de terminaison FIPS. Pour obtenir la liste des points de terminaison Systems Manager, reportez-vous à la section [Points de terminaison de service Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) dans le *Référence générale d'Amazon Web Services*. 

**Installer l’ASCP à l’aide de Helm**

1. Pour vous assurer que le référentiel pointe vers les derniers graphiques, utilisez `helm repo update.`.

1. Ajoutez le graphique du pilote Secrets Store CSI. 

   ```
   helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
   ```

1. Installez le chart. Pour configurer la limitation, ajoutez l’indicateur suivant : `--set-json 'k8sThrottlingParams={"qps": "number of queries per second", "burst": "number of queries per second"}'`

   ```
   helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
   ```

1. Ajoutez le graphique ASCP.

   ```
   helm repo add aws-secrets-manager https://aws.github.io/secrets-store-csi-driver-provider-aws
   ```

1. Installez le chart. Pour utiliser un point de terminaison FIPS, ajoutez l’indicateur suivant : `--set useFipsEndpoint=true`

   ```
   helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws
   ```

**Installer en utilisant le code YAML dans le référentiel**
+ Utilisez les commandes suivantes.

  ```
  helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
  helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
  kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/deployment/aws-provider-installer.yaml
  ```

## Vérifier les installations
<a name="verify-ascp-installations"></a>

Pour vérifier les installations de votre cluster EKS, du pilote Secrets Store CSI et du plug-in ASCP, procédez comme suit :

1. Vérifiez le cluster EKS :

   ```
   eksctl get cluster --name clusterName
   ```

   Cette commande doit renvoyer des informations sur votre cluster.

1. Vérifiez l’installation du pilote Secrets Store CSI :

   ```
   kubectl get pods -n kube-system -l app=secrets-store-csi-driver
   ```

   Vous devriez voir des pods s’exécuter avec des noms comme `csi-secrets-store-secrets-store-csi-driver-xxx`.

1. Vérifier l’installation du plug-in ASCP :

------
#### [ YAML installation ]

   ```
   $ kubectl get pods -n kube-system -l app=csi-secrets-store-provider-aws
   ```

   Exemple de sortie :

   ```
   NAME                                     READY   STATUS    RESTARTS   AGE
   csi-secrets-store-provider-aws-12345      1/1     Running   0          2m
   ```

------
#### [ Helm installation ]

   ```
   $  kubectl get pods -n kube-system -l app=secrets-store-csi-driver-provider-aws
   ```

   Exemple de sortie :

   ```
   NAME                                              READY   STATUS    RESTARTS   AGE
   secrets-provider-aws-secrets-store-csi-driver-provider-67890       1/1     Running   0          2m
   ```

------

   Vous devriez voir des pods dans l’état `Running`.

Après exécution de ces commandes, si tout est correctement configuré, vous devriez voir tous les composants fonctionner sans aucune erreur. Si vous rencontrez des problèmes, vous devrez peut-être les résoudre en vérifiant les journaux des pods spécifiques qui rencontrent des problèmes.

## Résolution des problèmes
<a name="troubleshooting"></a>

1. Pour vérifier les journaux du fournisseur ASCP, exécutez :

   ```
   kubectl logs -n kube-system -l app=csi-secrets-store-provider-aws
   ```

1. Vérifiez le statut de tous les pods de l’espace de noms `kube-system`.

   Remplacez-le *default placeholder text* par votre propre identifiant de pod :

   ```
   kubectl -n kube-system get pods
   ```

   ```
   kubectl -n kube-system logs pod/pod-id
   ```

   Tous les pods liés au pilote CSI et à l’ASCP doivent être dans l’état « En cours d’exécution ».

1. Vérifiez la version du pilote CSI :

   ```
   kubectl get csidriver secrets-store.csi.k8s.io -o yaml
   ```

   Cette commande doit renvoyer des informations sur le pilote CSI installé.

## Ressources supplémentaires
<a name="additional-resources"></a>

Pour plus d’informations sur l’utilisation d’ASCP avec Amazon EKS, consultez les ressources suivantes :
+ [Utilisation de l’identité du pod avec Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [AWS Pilote CSI Secrets Store activé GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)

# Utiliser AWS les secrets et le fournisseur de configuration CSI avec Pod Identity pour Amazon EKS
<a name="ascp-pod-identity-integration"></a>

L'intégration du fournisseur de AWS secrets et de configuration à l'agent Pod Identity pour Amazon Elastic Kubernetes Service améliore la sécurité, simplifie la configuration et améliore les performances des applications exécutées sur Amazon EKS. Pod Identity simplifie l'authentification Gestion des identités et des accès AWS (IAM) pour Amazon EKS lors de la récupération de paramètres AWS Systems Manager Parameter Store ou de secrets depuis Secrets Manager.

L’identité du pod Amazon EKS rationalise le processus de configuration des autorisations IAM pour les applications Kubernetes en permettant de configurer les autorisations directement via les interfaces Amazon EKS, en réduisant le nombre d’étapes et en éliminant le besoin de basculer entre les services Amazon EKS et IAM. L’identité du pod permet d’utiliser un seul rôle IAM sur plusieurs clusters sans mettre à jour les politiques de confiance et prend en charge les [balises de session de rôle](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags) pour un contrôle d’accès plus granulaire. Cette approche simplifie non seulement la gestion des politiques en permettant la réutilisation des politiques d'autorisation entre les rôles, mais elle améliore également la sécurité en autorisant l'accès aux AWS ressources en fonction des balises correspondantes.

## Comment ça marche
<a name="how-it-works"></a>

1. L’identité du pod attribue un rôle IAM au pod.

1. ASCP utilise ce rôle pour s'authentifier auprès de. Services AWS

1. Si l’autorisation est obtenue, l’ASCP récupère les paramètres demandés et les met à la disposition du pod.

Pour plus d’informations, consultez [Comprendre le l’identité du pod Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-how-it-works.html) dans le *Guide de l’utilisateur Amazon EKS*.

## Conditions préalables
<a name="prerequisites"></a>

**Important**  
L’identité du pod n’est prise en charge que pour Amazon EKS dans le cloud. Elle n’est pas prise en charge pour [Amazon EKS Anywhere](https://aws.amazon.com/eks/eks-anywhere/), [Red Hat OpenShift Service on AWS](https://aws.amazon.com/rosa/) ni pour les clusters Kubernetes autogérés sur les instances Amazon EC2.
+ Cluster Amazon EKS (version 1.24 ou ultérieure).
+ Accès à un AWS CLI cluster Amazon EKS via `kubectl`
+ (Facultatif) Accès à deux Comptes AWS pour un accès entre comptes

## Installer l’agent d’identité du pod Amazon EKS
<a name="install-pod-identity-agent"></a>

Pour utiliser l’identité du pod avec votre cluster, vous devez installer le module complémentaire Agent d’identité du pod Amazon EKS.

**Installer l’agent d’identité du pod**
+ Installez le module complémentaire Agent d’identité du pod sur votre cluster.

  Remplacez le *default placeholder text * par vos propres valeurs :

  ```
  eksctl create addon \
    --name eks-pod-identity-agent \
    --cluster clusterName \
    --region region
  ```

## Configurer l’ASCP avec l’identité du pod
<a name="pod-identity-setup"></a>

1. Créez une politique d’autorisation qui accorde les autorisations `ssm:GetParameters` et `ssm:DescribeParameters` aux paramètres auxquels le pod a besoin pour accéder. 

1. Créez un rôle IAM qui peut être assumé par le principal de service Amazon EKS pour l’identité du pod :

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

****  

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

------

   Attachez la politique gérée IAM au rôle.

   Remplacez le *default placeholder text * par vos propres valeurs :

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

1. Créez une association d’identité du pod. Par exemple, consultez [Créer une association d’identité du pod](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create) dans le *Guide de l’utilisateur Amazon EKS*.

1. Créez la `SecretProviderClass` qui spécifie les paramètres ou les secrets à monter dans le pod :

   ```
   kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yaml
   ```

   La principale différence dans `SecretProviderClass` entre IRSA et l’identité du pod réside dans le paramètre facultatif `usePodIdentity`. Il s’agit d’un champ facultatif qui détermine l’approche d’authentification. Lorsqu’il n’est pas spécifié, les rôles IAM pour les comptes de service (IRSA) sont utilisés par défaut.
   + Pour utiliser l’identité du pod EKS, utilisez l’une des valeurs suivantes : `"true", "True", "TRUE", "t", "T"`.
   + Pour utiliser IRSA de manière explicite, définissez l’une des valeurs suivantes : `"false", "False", "FALSE", "f", or "F"`.

1. Déployez le pod qui monte les paramètres ou les secrets sous `/mnt/secrets-store` :

   ```
   kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml
   ```

1. Si vous utilisez un cluster Amazon EKS privé, assurez-vous que le VPC dans lequel se trouve le cluster possède un AWS STS point de terminaison. Pour en savoir plus sur la création d’un point de terminaison, consultez [Points de terminaison de VPC d’interface](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *.

### Vérifier le montage du secret
<a name="verify-secret-mount"></a>

Pour vérifier que le paramètre ou secret est correctement monté, exécutez la commande suivante.

Remplacez le *default placeholder text * par vos propres valeurs :

```
kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MyParameter
```

**Pour configurer l’identité du pod Amazon EKS afin d’accéder aux paramètres dans Parameter Store**

1. Créez une politique d’autorisation qui accorde les autorisations `ssm:GetParameters` et `ssm:DescribeParameters` aux paramètres auxquels le pod a besoin pour accéder. 

1. Créez un paramètre dans Parameter Store, si vous n’en avez pas déjà un. Pour plus d'informations, consultez [Création de paramètres Parameter Store dans Systems Manager](sysman-paramstore-su-create.md).

## Dépannage
<a name="integrating_aspc_pod_trouble"></a>

Vous pouvez afficher la plupart des erreurs en décrivant le déploiement du pod.

**Pour afficher les messages d'erreur pour votre conteneur**

1. Obtenez une liste de noms de pod à l’aide de la commande suivante. Si vous n'utilisez pas l'espace de noms par défaut, utilisez `-n namespace`.

   ```
   kubectl get pods
   ```

1. Pour décrire le Pod, dans la commande suivante, *pod-id* utilisez l'ID du Pod indiqué dans les Pods que vous avez trouvés à l'étape précédente. Si vous n'utilisez pas l'espace de noms par défaut, utilisez `-n NAMESPACE`.

   ```
   kubectl describe pod/pod-id
   ```

**Pour voir les erreurs pour l'ASCP**
+ Pour obtenir plus d'informations dans les journaux du fournisseur, utilisez la commande suivante pour *PODID* utiliser l'ID du module *csi-secrets-store-provider-aws*.

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs pod/pod-id
  ```

# Utiliser AWS les secrets et le fournisseur de configuration CSI avec des rôles IAM pour les comptes de service (IRSA)
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [Conditions préalables](#prerequisites)
+ [Configurer le contrôle d'accès](#integrating_ascp_irsa_access)
+ [Identifier les paramètres à monter](#integrating_ascp_irsa_mount)
+ [Dépannage](#integrating_ascp_irsa_trouble)

## Conditions préalables
<a name="prerequisites"></a>
+ Cluster Amazon EKS (version 1.17 ou ultérieure).
+ Accès à un AWS CLI cluster Amazon EKS via `kubectl`

## Configurer le contrôle d'accès
<a name="integrating_ascp_irsa_access"></a>

L’ASCP récupère l’identité du pod Amazon EKS et l’échange pour un rôle IAM. Vous définissez des autorisations dans une politique IAM pour ce rôle IAM. Lorsque l’ASCP assume le rôle IAM, il a accès aux paramètres que vous avez autorisés. Les autres conteneurs ne peuvent pas accéder aux paramètres sauf si vous les associez également au rôle IAM. 

**Autoriser votre pod Amazon EKS à accéder aux paramètres de Parameter Store**

1. Créez une politique d’autorisation qui accorde les autorisations `ssm:GetParameters` et `ssm:DescribeParameters` aux paramètres auxquels le pod a besoin pour accéder. 

1. Créez un fournisseur OpenID Connect (OIDC) IAM pour le cluster si vous n'en avez pas déjà un. Pour plus d’informations, consultez [Créer un fournisseur IAM OIDC pour votre cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) dans le *Guide de l’utilisateur Amazon EKS*.

1. Créez un [Rôle IAM pour le compte de service](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) et attachez la politique. Pour plus d’informations, veuillez consulter [Créer un rôle IAM pour un compte de service](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) dans le *Guide de l’utilisateur Amazon EKS*.

1. Si vous utilisez un cluster Amazon EKS privé, assurez-vous que le VPC dans lequel se trouve le cluster possède un AWS STS point de terminaison. Pour en savoir plus sur la création d’un point de terminaison, consultez [Points de terminaison de VPC d’interface](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *.

## Identifier les paramètres à monter
<a name="integrating_ascp_irsa_mount"></a>

Pour déterminer quels paramètres l’ASCP monte dans Amazon EKS en tant que fichiers du système de fichiers, vous devez créer un fichier YAML [SecretProviderClass](ascp-examples.md#ascp-examples-secretproviderclass). `SecretProviderClass` répertorie les paramètres à monter et le nom de fichier sous lequel les monter. La `SecretProviderClass` doit se trouver dans le même espace de noms que le pod Amazon EKS auquel il fait référence.

### Monter les paramètres sous forme de fichiers
<a name="mount-secrets"></a>

[Les instructions suivantes montrent comment monter des paramètres sous forme de fichiers à l'aide d'exemples de fichiers YAML .yaml et [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)

**Monter les paramètres dans Amazon EKS**

1. Appliquez la `SecretProviderClass` au pod :

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

1. Déployez votre pod :

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

1. L’ASCP monte les fichiers.

## Dépannage
<a name="integrating_ascp_irsa_trouble"></a>

Vous pouvez afficher la plupart des erreurs en décrivant le déploiement du pod. 

**Pour afficher les messages d'erreur pour votre conteneur**

1. Obtenez une liste de noms de pod à l’aide de la commande suivante. Si vous n'utilisez pas l'espace de noms par défaut, utilisez `-n name-space`.

   ```
   kubectl get pods
   ```

1. Pour décrire le Pod, dans la commande suivante, *pod-id* utilisez l'ID du Pod indiqué dans les Pods que vous avez trouvés à l'étape précédente. Si vous n'utilisez pas l'espace de noms par défaut, utilisez `-n nameSpace`.

   ```
   kubectl describe pod/pod-id
   ```

**Pour voir les erreurs pour l'ASCP**
+ Pour obtenir plus d'informations dans les journaux du fournisseur, utilisez la commande suivante pour *pod-id* utiliser l'ID du module *csi-secrets-store-provider-aws*.

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs Pod/pod-id
  ```
+ 

**Vérifiez que le CRD `SecretProviderClass` est installé :**

  ```
  kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io
  ```

  Cette commande doit renvoyer des informations sur la définition de ressource personnalisée `SecretProviderClass`.
+ 

**Vérifiez que l' SecretProviderClass objet a été créé.**

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

# AWS Exemples de code de secret et de fournisseur de configuration
<a name="ascp-examples"></a>

## Exemples d’authentification et de contrôle d’accès pour l’ASCP
<a name="ascp-auth-access-examples"></a>

### Exemple : politique IAM autorisant le service d’identité du pod Amazon EKS (pods.eks.amazonaws.com) à assumer le rôle et à baliser la session :
<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>

Vous utilisez YAML pour décrire les paramètres à monter dans Amazon EKS à l’aide de l’ASCP. Pour obtenir des exemples, consultez [SecretProviderClass utilisation](#ascp-scenarios-secretproviderclass).

### SecretProviderClass Structure YAML
<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:
```

Le champ Paramètres contient les détails de la demande de montage :

**region**  
(Facultatif) Le Région AWS du paramètre. Si vous n'utilisez pas ce champ, ASCP va rechercher la région à partir de l'annotation sur le nœud. Comme cette recherche ajoute une surcharge aux demandes de montage, nous vous recommandons de fournir la région pour les clusters qui utilisent un grand nombre de pods.  
Si vous spécifiez également `failoverRegion`, l’ASCP essaie de récupérer le paramètre des deux régions. Si l’une des régions renvoie une erreur `4xx`, notamment en raison d’un problème d’authentification, l’ASCP ne monte aucun paramètre. Si le paramètre est récupéré avec succès à partir du `region```, l’ASCP monte cette valeur de paramètre. Si le paramètre n’est pas récupéré correctement de `region`, mais qu’il l’est avec succès de `failoverRegion`, l’ASCP monte cette valeur de paramètre.

**`failoverRegion`**  
(Facultatif) Si vous incluez ce champ, l’ASCP va essayer de récupérer le paramètre à partir des régions définies dans `region` et dans ce champ. Si l’une des régions renvoie une erreur `4xx`, notamment en raison d’un problème d’authentification, l’ASCP ne monte aucun paramètre. Si le paramètre est récupéré avec succès à partir du `region`, l’ASCP monte cette valeur de paramètre. Si le paramètre n’est pas récupéré correctement de `region`, mais qu’il l’est avec succès de `failoverRegion`, l’ASCP monte cette valeur de paramètre. Pour accéder à un exemple sur la façon de procéder, consultez [Basculement de paramètres multi-régions](#multi-region-failover).

**pathTranslation**  
(Facultatif) Un caractère de substitution unique à utiliser si le nom de fichier dans Amazon EKS contient un caractère séparateur de chemin, tel que la barre oblique (/) sur Linux. L'ASCP ne peut pas créer un fichier monté possédant un caractère de séparation de chemin. Par contre, l'ASCP va remplacer le caractère séparateur de chemin par un autre caractère. Si vous n'utilisez pas ce champ, la valeur par défaut est le trait de soulignement (\$1). Par exemple, `My/Path/Parameter` se monte en tant que `My_Path_Parameter`.   
Pour empêcher la substitution de caractères, entrez la chaîne `False`.

***usePodIdentity***  
(Facultatif) Détermine l’approche d’authentification. Lorsqu’il n’est pas spécifié, sa valeur par défaut est Rôles IAM pour les comptes de service (IRSA) (IRSA).  
+ Pour utiliser l’identité du pod EKS, utilisez l’une des valeurs suivantes : `"true"`", `"True"`, `"TRUE"`, `"t"` ou `"T"`.
+ Pour utiliser IRSA de manière explicite, définissez l’une des valeurs suivantes : `"false"`, `"False"`, `"FALSE"`, `"f"` ou `"F"`"=.

***preferredAddressType***  
(Facultatif) Spécifie le type d’adresse IP préféré pour les communications entre les points de terminaison de l’agent d’identité du pod. Le champ n’est applicable que lors de l’utilisation de la fonctionnalité d’identité du pod EKS et sera ignoré lors de l’utilisation des rôles IAM pour les comptes de service. Les valeurs ne sont pas sensibles à la casse. Les valeurs valides sont :  
+ `"ipv4"`, `"IPv4"` «, ou `"IPV4"` — Forcer l'utilisation du point de IPv4 terminaison Pod Identity Agent
+ `"ipv6"``"IPv6"`, ou `"IPV6"` — Forcer l'utilisation du point de IPv6 terminaison Pod Identity Agent
+ non spécifié — Utilisez la sélection automatique du point de terminaison, en essayant d'abord le point de IPv4 terminaison et en revenant au IPv6 point de terminaison en cas d' IPv4 échec

**objects**  
Chaîne contenant une déclaration YAML des secrets à monter. Nous vous recommandons d'utiliser une chaîne YAML multi-ligne ou un caractère pipe (\$1).    
**objectName**  
Obligatoire. Spécifie le nom du paramètre ou secret à récupérer. Pour Parameter Store, il s’agit [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) du paramètre et il peut s’agir du nom ou de l’ARN complet du paramètre. Pour Secrets Manager, il s’agit du paramètre [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), et il peut s’agir du nom convivial ou de l’ARN complet du secret.   
**objectType**  
Obligatoire si vous n'utilisez pas d'ARN Secrets Manager pour `objectName`. Pour Parameter Store, utilisez `ssmparameter`. Pour Secrets Manager, utilisez `secretsmanager`.   
**objectAlias**  
(Facultatif) Nom de fichier du secret dans le pod Amazon EKS. Si vous ne spécifiez pas ce champ,`objectName` apparaît en tant que nom de fichier.  
**objectVersion**  
(Facultatif) ID de version du paramètre. Déconseillé, car vous devez mettre à jour l’identifiant de la version à chaque fois que vous mettez le paramètre à jour. La version la plus récente est utilisée par défaut. Si vous incluez un `failoverRegion`, ce champ représente le champ principal `objectVersion`.  
**objectVersionLabel**  
(Facultatif) Alias de la version. La version par défaut est la plus récente `AWSCURRENT`. Si vous incluez un `failoverRegion`, ce champ représente le champ principal `objectVersionLabel`.  
**jmesPath**  
(Facultatif) Une carte des clés du paramètre avec les fichiers à monter dans Amazon EKS. Pour utiliser ce champ, votre valeur de paramètre doit être au format JSON.   
L'exemple suivant montre comment se présente un paramètre codé JSON.  

```
{
    "username" : "myusername",
    "password" : "mypassword"
}
```
Les clés sont `username` et `password`. La valeur associée à `username` est `myusername` et la valeur associée à `password` est `mypassword`.  
Si vous utilisez ce champ, vous devez inclure les sous-champs `path` et `objectAlias`.    
**path**  
Une clé d’une paire clé-valeur dans le JSON de la valeur de paramètre. Si le champ contient un trait d'union, utilisez des guillemets simples pour l'ignorer, par exemple : `path: '"hyphenated-path"'`  
**objectAlias**  
Le nom du fichier à monter dans le pod Amazon EKS. Si le champ contient un trait d'union, utilisez des guillemets simples pour l'ignorer, par exemple : `objectAlias: '"hyphenated-alias"'`  
**`failoverObject`**  
(Facultatif) Si vous spécifiez ce champ, l’ASCP essaie de récupérer à la fois le paramètre spécifié dans le champ principal `objectName` et le paramètre spécifié dans le sous-champ `failoverObject` `objectName`. Si l’une renvoie une erreur `4xx`, notamment en raison d’un problème d’authentification, l’ASCP ne monte aucun paramètre. Si le paramètre est récupéré avec succès à partir du `objectName` principal, l’ASCP monte cette valeur de paramètre. Si le paramètre n’est pas récupéré correctement du `objectName` principal, mais qu’il l’est avec succès du `objectName` de basculement, l’ASCP monte cette valeur de paramètre. Si vous incluez ce champ, vous devez inclure le champ `objectAlias`. Pour accéder à un exemple sur la façon de procéder, consultez [Basculement vers un paramètre différent](#failover-parameter).  
Vous allez généralement utiliser ce champ lorsque le paramètre de basculement n’est pas une réplique. Pour obtenir un exemple de spécification des capacités, consultez [Basculement de paramètres multi-régions](#multi-region-failover).    
**objectName**  
Nom ou ARN complet du paramètre de basculement. Si vous utilisez un ARN, la région de l'ARN doit correspondre au champ `failoverRegion`.  
**objectVersion**  
(Facultatif) ID de version du paramètre. Doit correspondre au principal `objectVersion`. Déconseillé, car vous devez mettre à jour l’identifiant de la version à chaque fois que vous mettez le paramètre à jour. La version la plus récente est utilisée par défaut.   
**objectVersionLabel**  
(Facultatif) Alias de la version. La version par défaut est la plus récente `AWSCURRENT`.

### Créez une SecretProviderClass configuration de base pour monter les paramètres dans vos Amazon EKS Pods.
<a name="create-SecretProviderClass-config"></a>

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

SecretProviderClass pour utiliser un paramètre dans le même cluster 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"
```

------

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

Utilisez ces exemples pour créer des configurations `SecretProviderClass` pour différents scénarios.

#### Exemple : monter les paramètres par nom ou ARN
<a name="mount-by-name-arn"></a>

Cet exemple montre comment monter trois types de paramètres différents :
+ Un paramètre spécifié par ARN complet
+ Un paramètre spécifié par nom
+ Une version paramétrée d’un secret

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

#### Exemple : monter des paires clé-valeur à partir d’un paramètre
<a name="mount-key-value-pairs"></a>

Cet exemple montre comment monter des paires clé-valeur spécifiques à partir d’un paramètre au format 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
```

#### Exemple : exemples de configuration de basculement
<a name="failover-examples"></a>

Ces exemples montrent comment configurer le basculement pour les paramètres.

##### Basculement de paramètres multi-régions
<a name="multi-region-failover"></a>

Cet exemple montre comment configurer le basculement automatique pour un paramètre répliqué à travers plusieurs régions :

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

##### Basculement vers un paramètre différent
<a name="failover-parameter"></a>

Cet exemple montre comment configurer le basculement vers un autre paramètre (pas un 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"
```

## Ressources supplémentaires
<a name="additional-resources"></a>

Pour plus d’informations sur l’utilisation d’ASCP avec Amazon EKS, consultez les ressources suivantes :
+ [Utilisation de l’identité du pod avec Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [AWS Pilote CSI Secrets Store activé GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)