

 **Aidez à améliorer cette page** 

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.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien **Modifier cette page sur** qui se trouve dans le volet droit de chaque page.

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.

# Déployer le pilote Mountpoint pour Amazon S3
<a name="s3-csi-create"></a>

Avec le [Pilote Container Storage Interface (CSI) Mountpoint pour Amazon S3](https://github.com/awslabs/mountpoint-s3-csi-driver), vos applications Kubernetes peuvent accéder aux objets Amazon S3 via une interface de système de fichiers, ce qui permet d’obtenir un débit global élevé sans modifier le code de l’application.

Cette procédure vous montrera comment déployer le [pilote CSI Mountpoint pour Amazon S3 pour Amazon EKS](s3-csi.md). Avant de continuer, consultez les [Considérations](s3-csi.md#s3-csi-considerations).

## Conditions préalables
<a name="s3-csi-prereqs"></a>
+ Un fournisseur IAM ( AWS Identity and Access Management) (IAM) OpenID Connect (OIDC) existant pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez [Créer un fournisseur d'identité OIDC IAM pour votre cluster](enable-iam-roles-for-service-accounts.md).
+ Version 2.12.3 ou ultérieure de la AWS CLI installée et configurée sur votre appareil ou. AWS CloudShell
+ L'outil de ligne de commande `kubectl` est installé sur votre appareil ou AWS CloudShell. La version peut correspondre à celle utilisée par votre cluster Kubernetes, ou différer d’au plus une version mineure, qu’elle soit antérieure ou plus récente. Par exemple, si la version de votre cluster est `1.29`, vous pouvez utiliser la version `kubectl` `1.28`, `1.29` ou `1.30`. Pour installer ou mettre à niveau `kubectl`, veuillez consulter [Configuration de `kubectl` et `eksctl`](install-kubectl.md).

## Étape 1 : créer une politique IAM
<a name="s3-create-iam-policy"></a>

Le pilote CSI Mountpoint pour Amazon S3 nécessite des autorisations Amazon S3 pour interagir avec votre système de fichiers. Cette section montre comment créer une politique IAM qui accorde les autorisations nécessaires.

L’exemple de politique suivant respecte les recommandations d’autorisation IAM pour Mountpoint. Vous pouvez également utiliser la politique AWS gérée [AmazonS3 FullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor), mais cette politique gérée accorde plus d'autorisations que ce qui est nécessaire pour Mountpoint.

Pour plus d'informations sur les autorisations recommandées pour Mountpoint, consultez la section Autorisations [Mountpoint](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#iam-permissions) IAM sur. GitHub

1. Ouvrez la console IAM à https://console.aws.amazon.com/iam/ l'adresse.

1. Dans le volet de navigation de gauche, choisissez **Politiques**.

1. Sur la page **Politiques**, choisissez **Créer une politique**.

1. Dans **Éditeur de politique**, choisissez **JSON**.

1. Sous **Éditeur de politique**, copiez et collez ce qui suit :
**Important**  
Remplacez `amzn-s3-demo-bucket1` par votre propre nom de compartiment Amazon S3.

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
           {
               "Sid": "MountpointFullBucketAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1"
               ]
           },
           {
               "Sid": "MountpointFullObjectAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:AbortMultipartUpload",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"
               ]
           }
      ]
   }
   ```

   Les compartiments de répertoires, introduits avec la classe de stockage Amazon S3 Express One Zone, utilisent un mécanisme d’authentification différent de celui des compartiments à usage général. Au lieu d’utiliser les actions `s3:*`, vous devez utiliser l’action `s3express:CreateSession`. Pour plus d’informations sur les compartiments de répertoires, consultez [Compartiments de répertoires](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) dans le *Guide de l’utilisateur Amazon S3*.

   Vous trouverez ci-dessous un exemple de politique de privilège minimal que vous pouvez utiliser pour un compartiment répertoire.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3express:CreateSession",
               "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket1--usw2-az1--x-s3"
           }
       ]
   }
   ```

1. Choisissez **Suivant**.

1. Sur la page **Vérifier et créer**, donnez un nom à votre politique. Cet exemple de démonstration utilise le nom `AmazonS3CSIDriverPolicy`.

1. Choisissez **Create Policy** (Créer une politique).

## Étape 2 : Créer un rôle IAM
<a name="s3-create-iam-role"></a>

Le pilote CSI Mountpoint pour Amazon S3 nécessite des autorisations Amazon S3 pour interagir avec votre système de fichiers. Cette section montre comment créer un rôle IAM pour déléguer ces autorisations. Pour créer ce rôle, vous pouvez utiliser l’un des outils suivants :
+  [eksctl](#eksctl_s3_store_app_data) 
+  [AWS Management Console](#console_s3_store_app_data) 
+  [AWS CLI](#awscli_s3_store_app_data) 

**Note**  
La politique IAM `AmazonS3CSIDriverPolicy` a été créée dans la section précédente.

### eksctl
<a name="eksctl_s3_store_app_data"></a>

 **Pour créer votre rôle IAM du pilote CSI Mountpoint pour Amazon S3 avec `eksctl` ** 

Pour créer le rôle IAM et le compte de service Kubernetes, exécutez les commandes suivantes. Ces commandes associent également la politique IAM `AmazonS3CSIDriverPolicy` au rôle, annotent le compte de service Kubernetes (`s3-csi-controller-sa`) avec le nom d’Amazon Resource Name (ARN) du rôle IAM et ajoutent le nom du compte de service Kubernetes à la politique d’approbation pour le rôle IAM.

```
CLUSTER_NAME=my-cluster
REGION=region-code
ROLE_NAME=AmazonEKS_S3_CSI_DriverRole
POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN
eksctl create iamserviceaccount \
    --name s3-csi-driver-sa \
    --namespace kube-system \
    --cluster $CLUSTER_NAME \
    --attach-policy-arn $POLICY_ARN \
    --approve \
    --role-name $ROLE_NAME \
    --region $REGION \
    --role-only
```

### AWS Management Console
<a name="console_s3_store_app_data"></a>

1. Ouvrez la console IAM à https://console.aws.amazon.com/iam/ l'adresse.

1. Dans le volet de navigation de gauche, choisissez **Rôles**.

1. Sur la page **Rôles**, choisissez **Créer un rôle**.

1. Sur la page **Select trusted entity** (Sélectionnez une entité de confiance), procédez comme suit :

   1. Dans la section **Trusted entity type** (Type d'entité de confiance), sélectionnez **Web identity** (Identité web).

   1. Pour **Fournisseur d'identité**, choisissez l'**URL du fournisseur OpenID Connect** pour votre cluster (comme indiqué sous **Présentation** dans Amazon EKS).

      Si ce n' URLs est pas le cas, passez en revue les [conditions préalables](#s3-csi-prereqs).

   1. Pour **Audience**, choisissez `sts.amazonaws.com`.

   1. Choisissez **Suivant**.

1. Sur la page **Add permissions** (Ajouter des autorisations), procédez comme suit :

   1. Dans le champ **Politiques de filtrage**, saisissez la politique d'AmazonS3CSIDriver.
**Note**  
Cette politique a été créée dans la section précédente.

   1. Cochez la case à gauche du résultat `AmazonS3CSIDriverPolicy` renvoyé par la recherche.

   1. Choisissez **Suivant**.

1. Sur la page **Name, review, and create** (Nommer, vérifier et créer), procédez comme suit :

   1. Dans **Nom du rôle**, entrez un nom unique pour votre rôle, tel que DriverRole AmazoneKS\$1S3\$1CSI\$1.

   1. Sous **Ajouter des balises (Facultatif)**, ajoutez des métadonnées au rôle en attachant les identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez la rubrique [Balisage des ressources IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) dans le *Guide de l'utilisateur IAM*.

   1. Choisissez **Créer un rôle**.

1. Une fois le rôle créé, choisissez le rôle dans la console pour l'ouvrir et le modifier.

1. Sélectionnez l'onglet **Trust relationships** (Relations d'approbation), puis **Edit trust policy** (Modifier la politique d'approbation).

1. Trouvez la ligne qui ressemble à ce qui suit :

   ```
   "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
   ```

   Ajoutez une virgule à la fin de la ligne précédente, puis ajoutez la ligne suivante. Remplacez *region-code* par la AWS région dans laquelle se trouve votre cluster. Remplacez *EXAMPLED539D4633E53DE1B71EXAMPLE* par l’ID du fournisseur OIDC de votre cluster.

   ```
   "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa"
   ```

1. Assurez-vous que l’opérateur `Condition` est défini sur `"StringEquals"`.

1. Sélectionnez **Update Trust Policy** (Mettre à jour la politique d'approbation) pour terminer.

### AWS CLI
<a name="awscli_s3_store_app_data"></a>

1. Affichez l'URL du fournisseur OIDC de votre cluster. Remplacez *my-cluster* par le nom de votre cluster. Si la sortie de la commande est `None`, consultez [Prérequis](#s3-csi-prereqs).

   ```
   aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
   ```

   L'exemple qui suit illustre un résultat.

   ```
   https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
   ```

1. Créez le rôle IAM, en accordant au compte de service Kubernetes l'action `AssumeRoleWithWebIdentity`.

   1. Copiez le contenu suivant dans un fichier nommé `aws-s3-csi-driver-trust-policy.json`. Remplacez *111122223333* par votre ID de compte. Remplacez *EXAMPLED539D4633E53DE1B71EXAMPLE* et *region-code* par les valeurs renvoyées par l'étape précédente.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringEquals": {
                "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa",
                "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
              }
            }
          }
        ]
      }
      ```

   1. Créez le rôle. Vous pouvez changer le nom de *AmazonEKS\$1S3\$1CSI\$1DriverRole*. Dans ce cas, veillez à le changer également dans les étapes suivantes.

      ```
      aws iam create-role \
        --role-name AmazonEKS_S3_CSI_DriverRole \
        --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
      ```

1. Attachez la politique IAM créée précédemment au rôle à l'aide de la commande suivante.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonS3CSIDriverPolicy \
     --role-name AmazonEKS_S3_CSI_DriverRole
   ```
**Note**  
La politique IAM `AmazonS3CSIDriverPolicy` a été créée dans la section précédente.

1. Ignorez cette étape si vous installez le pilote en tant que module complémentaire Amazon EKS. Pour les installations autogérées du pilote, créez des comptes de service Kubernetes annotés avec l’ARN du rôle IAM que vous avez créé.

   1. Enregistrez le contenu suivant dans un fichier nommé `mountpoint-s3-service-account.yaml`. Remplacez *111122223333* par votre ID de compte.

      ```
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        labels:
          app.kubernetes.io/name: aws-mountpoint-s3-csi-driver
        name: mountpoint-s3-csi-controller-sa
        namespace: kube-system
        annotations:
          eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
      ```

   1. Créez le compte de service Kubernetes sur votre cluster. Le compte de service Kubernetes (`mountpoint-s3-csi-controller-sa`) est annoté avec le nom du rôle IAM que vous avez créé. *AmazonEKS\$1S3\$1CSI\$1DriverRole*

      ```
      kubectl apply -f mountpoint-s3-service-account.yaml
      ```
**Note**  
Lorsque vous déployez le plugin dans cette procédure, il crée et est configuré pour utiliser un compte de service nommé `s3-csi-driver-sa`.

## Étape 3 : installer le pilote CSI Mountpoint pour Amazon S3
<a name="s3-install-driver"></a>

Vous pouvez installer le pilote CSI Mountpoint pour Amazon S3 via le module complémentaire Amazon EKS. Vous pouvez utiliser les outils suivants pour ajouter le module complémentaire à votre cluster :
+  [eksctl](#eksctl_s3_add_store_app_data) 
+  [AWS Management Console](#console_s3_add_store_app_data) 
+  [AWS CLI](#awscli_s3_add_store_app_data) 

Vous pouvez également installer le pilote CSI Mountpoint pour Amazon S3 en tant qu’installation autogérée. Pour savoir comment procéder à une installation autogérée, consultez [Installation](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/main/docs/install.md#deploy-driver) sur GitHub.

À partir de la version `v1.8.0`, vous pouvez configurer les rejets à tolérer pour les pods du pilote CSI. Pour ce faire, spécifiez un ensemble personnalisé de teintures à tolérer `node.tolerations` ou tolérez toutes les teintures. `node.tolerateAllTaints` Pour plus d’informations, consultez [Rejets et tolérances](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) dans la documentation de Kubernetes.

### eksctl
<a name="eksctl_s3_add_store_app_data"></a>

 **Pour ajouter le module complémentaire CSI Amazon S3 à l’aide de `eksctl` ** 

Exécutez la commande suivante. Remplacez *my-cluster* par le nom de votre cluster, *111122223333* par l'ID de votre compte et *AmazonEKS\$1S3\$1CSI\$1DriverRole* par le nom du [rôle IAM créé précédemment](#s3-create-iam-role).

```
eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster \
  --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force
```

Si vous supprimez l'option *--force* et si des paramètres du module complémentaire Amazon EKS entrent en conflit avec vos paramètres existants, alors la mise à jour du module complémentaire Amazon EKS échoue et vous recevez un message d'erreur pour vous aider à résoudre le conflit. Avant de spécifier cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer, car ces paramètres sont remplacés par cette option. Pour plus d'informations sur les autres options de ce paramètre, consultez [Modules complémentaires](https://eksctl.io/usage/addons/) dans la documentation `eksctl`. Pour plus d’informations sur la gestion des champs Amazon EKS Kubernetes, consultez [Déterminez les champs que vous pouvez personnaliser pour les modules complémentaires Amazon EKS](kubernetes-field-management.md).

Vous pouvez personnaliser `eksctl` à l’aide de fichiers de configuration. Pour plus d’informations, consultez [Utilisation des valeurs de configuration](https://eksctl.io/usage/addons/#working-with-configuration-values) dans la documentation `eksctl`. L’exemple suivant montre comment tolérer tous les rejets.

```
# config.yaml
...

addons:
- name: aws-mountpoint-s3-csi-driver
  serviceAccountRoleARN: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
  configurationValues: |-
    node:
      tolerateAllTaints: true
```

### AWS Management Console
<a name="console_s3_add_store_app_data"></a>

1. Ouvrez la [console Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Dans le volet de navigation de gauche, choisissez **Clusters**.

1. Choisissez le nom du cluster pour lequel vous voulez configurer le module complémentaire Mountpoint pour Amazon S3 CSI.

1. Choisissez l’onglet **Modules complémentaires**.

1. Choisissez **Obtenez plus de modules complémentaires**.

1. Sur la page **Sélectionner des modules complémentaires**, procédez comme suit :

   1. Dans la section **Modules complémentaires Amazon EKS**, sélectionnez la case à cocher **Pilote CSI Mountpoint pour Amazon S3**.

   1. Choisissez **Suivant**.

1. Sur la page **Configurer les paramètres des modules complémentaires sélectionnés**, procédez comme suit :

   1. Sélectionnez la **Version** que vous souhaitez utiliser.

   1. Pour **Sélectionner un rôle IAM**, sélectionnez le nom d’un rôle IAM auquel vous avez associé la politique IAM du pilote CSI Mountpoint pour Amazon S3.

   1. (Facultatif) Mettez à jour la **Méthode de résolution des conflits** après avoir développé les **Paramètres de configuration facultatifs**. Si vous sélectionnez **Remplacer**, un ou plusieurs paramètres du module complémentaire existant peuvent être remplacés par les paramètres du module complémentaire Amazon EKS. Si vous n’activez pas cette option et qu’il y a un conflit avec vos paramètres existants, l’opération échoue. Vous pouvez utiliser le message d'erreur qui en résulte pour résoudre le conflit. Avant de sélectionner cette option, veuillez vous assurer que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer vous-même.

   1. (Facultatif) Veuillez configurer les tolérances dans le champ **Valeurs de configuration** après avoir développé les **Paramètres de configuration facultatifs**.

   1. Choisissez **Suivant**.

1. Sur la page **Vérifier et ajouter**, choisissez **Créer**. Une fois l'installation du module complémentaire terminée, vous pouvez voir le module complémentaire installé.

### AWS CLI
<a name="awscli_s3_add_store_app_data"></a>

 **Pour ajouter le module complémentaire CSI Mountpoint pour Amazon S3 à l'aide de la CLI AWS ** 

Exécutez la commande suivante. Remplacez *my-cluster* par le nom de votre cluster, *111122223333* par l'ID de votre compte, et *AmazonEKS\$1S3\$1CSI\$1DriverRole* par le nom du rôle créé précédemment.

```
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \
  --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
```

Vous pouvez personnaliser la commande à l’aide de l’indicateur `--configuration-values`. L’exemple alternatif suivant montre comment tolérer tous les rejets.

```
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \
  --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole \
  --configuration-values '{"node":{"tolerateAllTaints":true}}'
```

## Étape 4 : configurer Mountpoint pour Amazon S3
<a name="s3-configure-mountpoint"></a>

Dans la plupart des cas, vous pouvez configurer Mountpoint pour Amazon S3 avec uniquement un nom de compartiment. Pour obtenir des instructions sur la configuration de Mountpoint pour Amazon S3, consultez [Configuration de Mountpoint pour Amazon S3 sur](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md). GitHub

## Étape 5 : déployer un exemple d’application
<a name="s3-sample-app"></a>

Vous pouvez déployer l'allocation statique au pilote sur un compartiment Amazon S3 existant. Pour plus d'informations, consultez la section [Provisionnement statique](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/main/examples/kubernetes/static_provisioning/README.md) activé GitHub.