

 **Contribuisci a migliorare questa pagina** 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link **Modifica questa pagina** nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Implementazione del driver Mountpoint per Amazon S3
<a name="s3-csi-create"></a>

Con il [driver dell’interfaccia di archiviazione del container (CSI) di Mountpoint per Amazon S3](https://github.com/awslabs/mountpoint-s3-csi-driver), le applicazioni Kubernetes possono accedere agli oggetti Amazon S3 tramite un’interfaccia di file system, raggiungendo una throughput aggregato elevato senza modificare alcun codice applicativo.

Questa procedura illustra come implementare il [driver Amazon EKS CSI di Mountpoint per Amazon S3](s3-csi.md). Prima di procedere, consulta [Considerazioni](s3-csi.md#s3-csi-considerations).

## Prerequisiti
<a name="s3-csi-prereqs"></a>
+ Un provider di AWS Identity and Access Management (IAM) OpenID Connect (OIDC) esistente per il tuo cluster. Per determinare se si dispone già di un provider IAM o per crearne uno, consulta [Per creare un provider di identità IAM OIDC per il cluster](enable-iam-roles-for-service-accounts.md).
+ Versione 2.12.3 o successiva della AWS CLI installata e configurata sul dispositivo o. AWS CloudShell
+ Lo strumento a riga di comando `kubectl` è installato sul dispositivo o AWS CloudShell. La versione può essere uguale oppure immediatamente precedente o successiva alla versione di Kubernetes del cluster. Ad esempio, se la versione del cluster è `1.29`, puoi usare `kubectl` versione `1.28`, `1.29` o `1.30`. Per installare o aggiornare `kubectl`, consulta [Impostazione di `kubectl` e `eksctl`](install-kubectl.md):

## Fase 1: Creazione di una policy IAM
<a name="s3-create-iam-policy"></a>

Il driver CSI di Mountpoint per Amazon S3 richiede le autorizzazioni Amazon S3 per interagire con il file system. In questa sezione viene descritto come creare una policy IAM che conceda le autorizzazioni necessarie.

La seguente policy esemplificativa segue i suggerimenti delle autorizzazioni IAM per Mountpoint. In alternativa, puoi utilizzare la politica AWS gestita [AmazonS3 FullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor), ma questa politica gestita concede più autorizzazioni di quelle necessarie per Mountpoint.

[Per ulteriori informazioni sulle autorizzazioni consigliate per Mountpoint, consulta Mountpoint IAM permissions on.](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#iam-permissions) GitHub

1. Apri la console IAM all'indirizzo. https://console.aws.amazon.com/iam/

1. Nel pannello di navigazione a sinistra, seleziona **Policy**.

1. Nella pagina **Policy**, scegli **Crea policy**.

1. Per **Editor di policy**, scegli **JSON**.

1. In **Editor di policy**, copia e incolla quanto segue:
**Importante**  
Sostituisci `amzn-s3-demo-bucket1` con il nome del bucket 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/*"
               ]
           }
      ]
   }
   ```

   I bucket di directory, introdotti con la classe di archiviazione Amazon S3 Express One Zone, utilizzano un meccanismo di autenticazione diverso dai bucket per uso generico. Invece di utilizzare le azioni `s3:*`, devi utilizzare l’azione `s3express:CreateSession`. Per ulteriori informazioni sui bucket, consulta [Bucket di directory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) nella *Guida per l’utente di Amazon S3*.

   Di seguito è riportato un esempio di policy dei privilegi minimi da utilizzare per un bucket di directory.

   ```
   {
       "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. Scegli **Next (Successivo)**.

1. Nella pagina **Verifica e crea**, assegna un nome alla policy. Questa procedura guidata di esempio utilizza il nome `AmazonS3CSIDriverPolicy`.

1. Scegli **Crea policy**.

## Fase 2: creazione di un ruolo IAM
<a name="s3-create-iam-role"></a>

Il driver CSI di Mountpoint per Amazon S3 richiede le autorizzazioni Amazon S3 per interagire con il file system. In questa sezione viene descritto come creare un ruolo IAM per delegare queste autorizzazioni. Per creare questo ruolo, è possibile utilizzare uno di questi strumenti:
+  [eksctl](#eksctl_s3_store_app_data) 
+  [Console di gestione AWS](#console_s3_store_app_data) 
+  [AWS CLI](#awscli_s3_store_app_data) 

**Nota**  
La policy IAM `AmazonS3CSIDriverPolicy` è stata creata nella sezione precedente.

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

 **creazione del ruolo IAM del driver CSI di Mountpoint per Amazon S3 con `eksctl`** 

Per creare il ruolo IAM e dell’account di servizio Kubernetes, esegui i comandi seguenti. Questi comandi allegano anche la policy IAM `AmazonS3CSIDriverPolicy` al ruolo, annotano l’account di servizio Kubernetes (`s3-csi-controller-sa`) con nome della risorsa Amazon (ARN) del ruolo IAM e aggiungono il nome dell’account di servizio Kubernetes alla policy di attendibilità per il ruolo 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
```

### Console di gestione AWS
<a name="console_s3_store_app_data"></a>

1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

1. Nel pannello di navigazione a sinistra, seleziona **Ruoli**.

1. Nella pagina **Ruoli**, seleziona **Crea ruolo**.

1. Nella pagina **Select trusted entity** (Seleziona entità attendibile), esegui le operazioni seguenti:

   1. Nella sezione **Tipo di identità attendibile**, scegli **Identità Web**.

   1. Per **Identity provider** (Provider di identità), scegli **URL del provider OpenID Connect** per il cluster (come mostrato nella scheda **Overview** (Panoramica) in Amazon EKS).

      Se non URLs ne viene visualizzato nessuno, consulta i [Prerequisiti](#s3-csi-prereqs).

   1. Per **Pubblico**, scegli `sts.amazonaws.com`.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Add permissions** (Aggiungi autorizzazioni), esegui le operazioni seguenti:

   1. Nella casella **Filtra politiche**, inserisci la politica di CSIDriver AmazonS3.
**Nota**  
Questa policy è stata creata nella sezione precedente.

   1. Seleziona la casella di controllo a sinistra del risultato `AmazonS3CSIDriverPolicy` restituito dalla ricerca.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Name, review, and create** (Assegna un nome, rivedi e crea), esegui le operazioni seguenti:

   1. Per **il nome del ruolo, inserisci un nome** univoco per il tuo ruolo, ad esempio AmazonEKS\$1S3\$1CSI\$1. DriverRole

   1. In **Aggiungi tag (facoltativo)**, aggiungi metadati al ruolo collegando i tag come coppie chiave-valore. Per ulteriori informazioni sull’utilizzo di tag in IAM, consulta la sezione [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) nella *Guida per l’utente di IAM*.

   1. Scegli **Crea ruolo**.

1. Dopo aver creato il ruolo, sceglilo nella console in modo da aprirlo per la modifica.

1. Scegli la scheda **Trust relationships** (Relazioni di attendibilità), quindi scegli **Edit trust policy** (Modifica policy di attendibilità).

1. Cercare il risultato finale simile al seguente:

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

   Inserisci una virgola alla fine della riga precedente, quindi aggiungine una seguente dopo quella riga. Sostituiscilo con la regione in cui si trova il cluster. *region-code* AWS Sostituire *EXAMPLED539D4633E53DE1B71EXAMPLE* con l’ID del gestore OIDC del cluster.

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

1. Assicurati che l’operatore `Condition` sia impostato su `"StringEquals"`.

1. Scegli **Aggiorna policy** per concludere.

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

1. Visualizza l'URL del provider OIDC del cluster. Sostituisci *my-cluster* con il nome del cluster. Se l'output dal comando è `None`, rivedi i [Prerequisiti](#s3-csi-prereqs).

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

   Di seguito viene riportato un output di esempio.

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

1. Creare il ruolo IAM, concedendo all'account di servizio Kubernetes l'operazione `AssumeRoleWithWebIdentity`.

   1. Copiare i contenuti seguenti in un file denominato `aws-s3-csi-driver-trust-policy.json`. Sostituisci *111122223333* con l'ID del tuo account. Sostituire *EXAMPLED539D4633E53DE1B71EXAMPLE* e *region-code* con i valori restituiti nella fase precedente.

      ```
      {
        "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. Creare il ruolo. È possibile modificare *AmazonEKS\$1S3\$1CSI\$1DriverRole* con un nome diverso. In tal caso, assicurati di modificarlo anche nelle fasi successive.

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

1. Collega la policy IAM creata in precedenza al ruolo con il seguente comando.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonS3CSIDriverPolicy \
     --role-name AmazonEKS_S3_CSI_DriverRole
   ```
**Nota**  
La policy IAM `AmazonS3CSIDriverPolicy` è stata creata nella sezione precedente.

1. Salta questo passaggio se stai installando il driver come componente aggiuntivo di Amazon EKS. Per le installazioni autogestite del driver, crea account di servizio Kubernetes annotati con l’ARN del ruolo IAM che hai creato.

   1. Salvare i seguenti contenuti in un file denominato `mountpoint-s3-service-account.yaml`. Sostituisci *111122223333* con l'ID del tuo account.

      ```
      ---
      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. Creare l’account del servizio Kubernetes nel cluster. L'account del servizio Kubernetes (`mountpoint-s3-csi-controller-sa`) è annotato con il nome del ruolo IAM che hai creato. *AmazonEKS\$1S3\$1CSI\$1DriverRole*

      ```
      kubectl apply -f mountpoint-s3-service-account.yaml
      ```
**Nota**  
Quando implementi il plugin tramite questa procedura, il plugin crea ed è configurato per l'utilizzo di un account di servizio denominato `s3-csi-driver-sa`.

## Fase 3: installazione del driver CSI di Mountpoint per Amazon S3
<a name="s3-install-driver"></a>

È possibile installare il driver CSI di Mountpoint per Amazon S3 tramite il componente aggiuntivo di Amazon EKS. Per aggiungere il componente aggiuntivo al cluster, è possibile utilizzare i seguenti strumenti:
+  [eksctl](#eksctl_s3_add_store_app_data) 
+  [Console di gestione AWS](#console_s3_add_store_app_data) 
+  [AWS CLI](#awscli_s3_add_store_app_data) 

In alternativa, è possibile installare il driver CSI Mountpoint per Amazon S3 come installazione autogestita. Per istruzioni su come eseguire un'installazione autogestita, consulta [Installazione](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/main/docs/install.md#deploy-driver) su GitHub.

A partire da `v1.8.0`, è possibile configurare i taint da tollerare per i pod del driver CSI. Per fare ciò, specifica un set personalizzato di taint con `node.tolerations` cui tollerare o tollera tutti i taint. `node.tolerateAllTaints` Per ulteriori informazioni, consulta [Taint e tolleranze](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) nella documentazione Kubernetes.

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

 **Aggiungere il componente aggiuntivo CSI per Amazon S3 utilizzando `eksctl` ** 

Eseguire il seguente comando seguente. Sostituisci *my-cluster* con il nome del cluster, *111122223333* con il tuo ID account e *AmazonEKS\$1S3\$1CSI\$1DriverRole* con il nome del [ruolo IAM creato in precedenza](#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
```

Se si rimuove l'opzione *--force* e tutte le impostazioni del componente aggiuntivo Amazon EKS sono in conflitto con le impostazioni esistenti, l'aggiornamento del componente aggiuntivo Amazon EKS non avrà successo. Verrà quindi visualizzato un messaggio di errore con la procedura utile a risolvere il conflitto. Prima di specificare questa opzione, assicurati che il componente aggiuntivo di Amazon EKS non gestisca le impostazioni che devi gestire tu, perché questa opzione le sovrascrive. Per ulteriori informazioni su altre opzioni per questa impostazione, consulta [Componenti aggiuntivi](https://eksctl.io/usage/addons/) nella documentazione di `eksctl`. Per ulteriori informazioni sulla gestione dei campi Kubernetes di Amazon EKS, consulta [Determina i campi che puoi personalizzare per i componenti aggiuntivi Amazon EKS](kubernetes-field-management.md).

È possibile personalizzare `eksctl` tramite file di configurazione. Per ulteriori informazioni, consulta [Funzionamento con i valori di configurazione](https://eksctl.io/usage/addons/#working-with-configuration-values) nella documentazione `eksctl`. L’esempio seguente mostra come tollerare tutti i taint.

```
# config.yaml
...

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

### Console di gestione AWS
<a name="console_s3_add_store_app_data"></a>

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

1. Nel pannello di navigazione a sinistra, seleziona **Cluster**.

1. Scegli il nome del cluster per cui configurare il componente aggiuntivo CSI di Mountpoint per Amazon S3.

1. Selezionare la scheda **Componenti aggiuntivi**.

1. Scegli **Ottieni altri componenti aggiuntivi**.

1. Nella pagina **Seleziona componenti aggiuntivi**, procedi come segue:

   1. Nella sezione **Componenti aggiuntivi di Amazon EKS**, seleziona la casella di controllo **Driver CSI di Mountpoint per Amazon S3**.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Configura le impostazioni dei componenti aggiuntivi selezionati**, procedi come segue:

   1. Seleziona la **Versione** che desideri utilizzare.

   1. In **Seleziona ruolo IAM**, seleziona il nome di un ruolo IAM a cui è stata allegata la policy IAM del driver CSI di Mountpoint per Amazon S3.

   1. (Facoltativo) Aggiorna il **Metodo di risoluzione dei conflitti** dopo aver espanso le **Impostazioni di configurazione opzionali**. Se selezioni **Sostituisci**, una o più impostazioni per il componente aggiuntivo esistente possono essere sovrascritte con le impostazioni del componente aggiuntivo di Amazon EKS. Se non si abilita questa opzione e c’è un conflitto con le impostazioni esistenti, l’operazione non va a buon fine e viene visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di selezionare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che devono essere gestite dall’utente.

   1. (Facoltativo) Configura le tolleranze nel campo **Valori di configurazione** dopo aver espanso le **Impostazioni di configurazione opzionali**.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Rivedi e aggiungi**, scegli **Crea**. Una volta completata l'installazione, viene visualizzato il componente aggiuntivo.

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

 **Per aggiungere il componente aggiuntivo Mountpoint for Amazon S3 CSI utilizzando la CLI AWS ** 

Eseguire il seguente comando seguente. Sostituire *my-cluster* con il nome del cluster, *111122223333* con il proprio ID account e *AmazonEKS\$1S3\$1CSI\$1DriverRole* con il nome del ruolo creato in precedenza.

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

È possibile personalizzare il comando con il contrassegno `--configuration-values`. L’esempio alternativo seguente mostra come tollerare tutti i taint.

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

## Fase 4: configurazione di Mountpoint per Amazon S3
<a name="s3-configure-mountpoint"></a>

Nella maggior parte dei casi, è possibile configurare Mountpoint per Amazon S3 solo con un nome di bucket. Per istruzioni sulla configurazione di Mountpoint per Amazon S3, [consulta Configurazione di Mountpoint per](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md) Amazon S3 su. GitHub

## Fase 5: implementazione di un’applicazione esemplificativa
<a name="s3-sample-app"></a>

Puoi implementare il provisioning statico al driver su un bucket Amazon S3 esistente. [Per ulteriori informazioni, consulta Provisioning statico attivo.](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/main/examples/kubernetes/static_provisioning/README.md) GitHub