

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

# Usa AWS Secrets and Configuration Provider CSI con IAM Roles for Service Accounts (IRSA)
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [Prerequisiti](#prerequisites)
+ [Configurazione del controllo degli accessi](#integrating_ascp_irsa_access)
+ [Identificazione dei segreti montare](#integrating_ascp_irsa_mount)
+ [Risoluzione dei problemi](#integrating_ascp_irsa_trouble)

## Prerequisiti
<a name="prerequisites"></a>
+ Cluster Amazon EKS (versione 1.17 o successiva)
+ Accesso AWS CLI e cluster Amazon EKS tramite `kubectl`

## Configurazione del controllo degli accessi
<a name="integrating_ascp_irsa_access"></a>

L'ASCP recupera il Pod Identity di Amazon EKS e lo scambia con il ruolo IAM. Le autorizzazioni vengono impostate in una policy IAM per quel ruolo IAM. Quando ASCP assume il ruolo IAM, ottiene l'accesso ai segreti che hai autorizzato. Altri container non possono accedere ai segreti a meno che non vengano associati anche al ruolo IAM. 

**Per consentire al tuo Amazon EKS Pod di accedere ai segreti in Secrets Manager**

1. Crea una politica di autorizzazioni che conceda `secretsmanager:GetSecretValue` e `secretsmanager:DescribeSecret` autorizzi i segreti a cui il Pod deve accedere. Per un esempio di policy, consulta [Esempio: autorizzazione a leggere e descrivere singoli segreti](auth-and-access_iam-policies.md#auth-and-access_examples-read-and-describe).

1. Crea un provider OpenID Connect (OIDC) IAM per il cluster se non ne è già presente uno. Per ulteriori informazioni, consulta [Crea un provider IAM OIDC per il tuo cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) nella *Guida per l'utente di Amazon EKS*.

1. Crea un [Ruolo IAM per l'account del servizio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) e collega la policy ad esso. Per ulteriori informazioni, consulta [Crea un ruolo IAM per un account del servizio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) nella *Guida per l'utente di Amazon EKS*.

1. Se utilizzi un cluster Amazon EKS privato, assicurati che il VPC in cui si trova il cluster abbia un AWS STS endpoint. Per informazioni sulla creazione di un endpoint, consulta [Endpoint VPC di interfaccia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) nella * Guida per l'utente AWS Identity and Access Management *.

## Identificazione dei segreti montare
<a name="integrating_ascp_irsa_mount"></a>

Per determinare quali segreti l'ASCP monta in Amazon EKS come file sul file system, è necessario creare un file [SecretProviderClass](ascp-examples.md#ascp-examples-secretproviderclass) YAML. `SecretProviderClass`Elenca i segreti da montare e il nome del file con cui montarli. Il `SecretProviderClass` deve trovarsi nello stesso namespace del pod Amazon EKS a cui fa riferimento.

### Monta i segreti come file
<a name="mount-secrets"></a>

Le seguenti istruzioni mostrano come montare i segreti come file utilizzando file YAML di esempio e. [ExampleSecretProviderClass.yaml[ExampleDeployment.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleDeployment-IRSA.yaml)](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml)

**Per montare segreti in Amazon EKS**

1. Applica il `SecretProviderClass` al pod:

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

1. Distribuisci il pod:

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

1. L'ASCP monta i file.

## Risoluzione dei problemi
<a name="integrating_ascp_irsa_trouble"></a>

È possibile visualizzare la maggior parte degli errori descrivendo l'implementazione del pod. 

**Per visualizzare i messaggi di errore per il container**

1. È possibile ottenere un elenco di nomi di pod con il comando seguente. Se non si sta utilizzando il namespace predefinito, utilizzare `-n {{nameSpace}}`.

   ```
   kubectl get pods
   ```

1. Per descrivere il Pod, nel comando seguente, {{podId}} usa l'ID Pod dei Pod che hai trovato nel passaggio precedente. Se non si sta utilizzando lo spazio dei nomi predefinito, utilizzare `-n {{nameSpace}}`.

   ```
   kubectl describe pod/{{podId}}
   ```

**Come visualizzare gli errori per l'ASCP**
+ Per trovare maggiori informazioni nei log del provider, nel comando seguente, {{podId}} usa l'ID del pod *csi-secrets-store-provider-aws*.

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs Pod/{{podId}}
  ```
+ 

**Verifica che il `SecretProviderClass` sia installato:**

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

  Questo comando deve restituire informazioni sulla definizione delle risorse personalizzate `SecretProviderClass`.
+ 

**SecretProviderClass Verifica che l'oggetto sia stato creato.**

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