

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

# Funzionalità Amazon EKS, ruolo IAM
<a name="capability-role"></a>

Le funzionalità EKS richiedono la configurazione di un ruolo IAM di capacità (o ruolo di capacità). Le funzionalità utilizzano questo ruolo per eseguire azioni sui AWS servizi e accedere alle risorse Kubernetes nel cluster tramite voci di accesso create automaticamente.

Prima di poter specificare un ruolo di capacità durante la creazione della capacità, è necessario creare il ruolo IAM con la policy di fiducia e le autorizzazioni appropriate per il tipo di funzionalità. Una volta creato, questo ruolo IAM può essere riutilizzato per un numero qualsiasi di risorse funzionali.

## Requisiti del ruolo di capacità
<a name="_capability_role_requirements"></a>

Il ruolo di capacità deve soddisfare i seguenti requisiti:
+ Il ruolo deve appartenere allo stesso AWS account del cluster e della risorsa di capacità
+ Il ruolo deve avere una politica di fiducia che consenta al servizio EKS Capabilities di assumerlo
+ Il ruolo deve disporre delle autorizzazioni appropriate per il tipo di capacità e i requisiti del caso d'uso (vedi[Autorizzazioni per tipo di funzionalità](#capability-permissions))

## Politica di fiducia per i ruoli di capacità
<a name="capability-trust-policy"></a>

Tutti i ruoli di capacità devono includere la seguente politica di fiducia:

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

Questa politica di fiducia consente a EKS di:
+ Assumi il ruolo di eseguire operazioni AWS API
+ Tagga le sessioni per scopi di controllo e tracciamento

## Autorizzazioni per tipo di funzionalità
<a name="capability-permissions"></a>

Le autorizzazioni IAM richieste dipendono dalla funzionalità utilizzata e dal modello di implementazione.

**Nota**  
Per le implementazioni di produzione che utilizzano IAM Role Selectors con ACK o quando si utilizza kro o Argo CD senza integrazione di AWS servizi, Capability Role potrebbe non richiedere alcuna autorizzazione IAM oltre alla policy di fiducia.

 **kro (Kube Resource Orchestrator)**   
Non sono richieste autorizzazioni IAM. Puoi creare un ruolo di capacità senza policy allegate. kro richiede solo le autorizzazioni RBAC di Kubernetes per creare e gestire le risorse Kubernetes.

 ** AWS Controller per Kubernetes (ACK)**   
ACK supporta due modelli di autorizzazione:  
+  **Configurazione semplice (sviluppo/test)**: aggiungi le autorizzazioni di AWS servizio direttamente al Capability Role. È la soluzione ideale per iniziare, per le implementazioni con account singolo o quando tutti gli utenti necessitano delle stesse autorizzazioni.
+  **Best practice di produzione**: utilizza IAM Role Selectors per implementare l'accesso con privilegi minimi. Con questo approccio, il Capability Role necessita solo dell'`sts:AssumeRole`autorizzazione per assumere ruoli specifici del servizio. Non si aggiungono autorizzazioni di AWS servizio (come S3 o RDS) al ruolo di capacità stesso: tali autorizzazioni vengono concesse a singoli ruoli IAM mappati su namespace specifici.

  I selettori di ruolo IAM consentono di:
  + Isolamento delle autorizzazioni a livello di namespace
  + Gestione delle risorse tra account
  + Ruoli IAM specifici del team
  + Modello di sicurezza con privilegi minimi

    Esempio di policy Capability Role per l'approccio IAM Role Selector:

    ```
    {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": [
            "arn:aws:iam::111122223333:role/ACK-S3-Role",
            "arn:aws:iam::111122223333:role/ACK-RDS-Role",
            "arn:aws:iam::444455556666:role/ACKCrossAccountRole"
          ]
        }
      ]
    }
    ```

    Per una configurazione dettagliata delle autorizzazioni ACK, inclusi IAM Role Selectors, consulta. [Configurare le autorizzazioni ACK](ack-permissions.md)

 **CD Argo**   
Per impostazione predefinita, non sono richieste autorizzazioni IAM. Potrebbero essere necessarie autorizzazioni opzionali per:  
+  ** AWS Secrets Manager**: se si utilizza Secrets Manager per archiviare le credenziali del repository Git
+  ** AWS CodeConnections**: Se si utilizza CodeConnections per l'autenticazione del repository Git

  Politica di esempio per Secrets Manager e CodeConnections:

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "secretsmanager:GetSecretValue",
          "secretsmanager:DescribeSecret"
        ],
        "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*"
      },
      {
        "Effect": "Allow",
        "Action": [
          "codeconnections:UseConnection",
          "codeconnections:GetConnection"
        ],
        "Resource": "arn:aws:codeconnections:region:account-id:connection/*"
      }
    ]
  }
  ```

  Per i requisiti di autorizzazione dettagliati di Argo CD, vedere[Considerazioni su Argo CD](argocd-considerations.md).

## Verificate la presenza di un ruolo di capacità esistente
<a name="check-capability-role"></a>

Puoi utilizzare la seguente procedura per verificare se il tuo account dispone già di un ruolo IAM con funzionalità adatto al tuo caso d'uso.

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

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

1. Cerca nell'elenco dei ruoli il nome del tuo ruolo di capacità (ad esempio, `ACKCapabilityRole` o`ArgoCDCapabilityRole`).

1. Se esiste un ruolo, selezionalo per visualizzare le politiche allegate e la relazione di fiducia.

1. Scegliere **Relazioni di attendibilità**, quindi scegliere **Modifica policy di attendibilità**.

1. Verifica che la relazione di fiducia corrisponda alla [politica di fiducia in materia di capacità](#capability-trust-policy). Se non corrisponde, aggiorna la politica di fiducia.

1. Scegli **Autorizzazioni** e verifica che il ruolo disponga delle autorizzazioni appropriate per il tipo di capacità e il caso d'uso.

## Creazione di una funzionalità (ruolo IAM)
<a name="create-capability-role"></a>

È possibile utilizzare Console di gestione AWS o la AWS CLI per creare un ruolo di capacità.

 ** Console di gestione AWS **   

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

1. Scegli **Ruoli**, quindi **Crea ruolo**.

1. In **Tipo di entità affidabile**, seleziona **Politica di fiducia personalizzata**.

1. Copia e incolla la [politica di attendibilità delle capacità](#capability-trust-policy) nell'editor dei criteri di fiducia.

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

1. Nella scheda **Aggiungi autorizzazioni**, seleziona o crea politiche appropriate per il tuo tipo di capacità (vedi[Autorizzazioni per tipo di funzionalità](#capability-permissions)). Per kro, puoi saltare questo passaggio.

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

1. Per **Nome ruolo**, inserisci un nome univoco per il tuo ruolo, ad esempio `ACKCapabilityRole``ArgoCDCapabilityRole`, o. `kroCapabilityRole`

1. Per **Descrizione**, inserisci un testo descrittivo come `Amazon EKS - ACK capability role`.

1. Scegliere **Crea ruolo**.

 ** AWS CLI**   

1. Copia la [policy di affidabilità delle capacità](#capability-trust-policy) in un file denominato`capability-trust-policy.json`.

1. Crea il ruolo. Sostituiscila `ACKCapabilityRole` con il nome del ruolo desiderato.

   ```
   aws iam create-role \
     --role-name ACKCapabilityRole \
     --assume-role-policy-document file://capability-trust-policy.json
   ```

1. Allega le politiche IAM richieste al ruolo. Per ACK, allega le policy per AWS i servizi che desideri gestire. Per Argo CD, allegate le politiche per Secrets Manager o CodeConnections se necessario. Per kro, puoi saltare questo passaggio.

   Esempio per ACK con autorizzazioni S3:

   ```
   aws iam put-role-policy \
     --role-name ACKCapabilityRole \
     --policy-name S3Management \
     --policy-document file://s3-policy.json
   ```

## Risoluzione dei problemi relativi alle funzionalità e ai ruoli
<a name="troubleshooting-capability-role"></a>

 **La creazione delle funzionalità fallisce con «Ruolo IAM non valido»**   
Verificare che:  
+ Il ruolo esiste nello stesso account del cluster
+ La politica di fiducia corrisponde alla [politica di affidabilità delle capacità](#capability-trust-policy) 
+ Hai l'`iam:PassRole`autorizzazione per il ruolo

 **La funzionalità mostra errori di autorizzazione**   
Verificare che:  
+ Il ruolo dispone delle autorizzazioni IAM necessarie per il tipo di funzionalità
+ La voce di accesso per il ruolo esiste nel cluster
+ Se necessario, vengono configurate autorizzazioni Kubernetes aggiuntive (vedi) [Autorizzazioni Kubernetes aggiuntive](capabilities-security.md#additional-kubernetes-permissions)

 **Le risorse ACK falliscono con errori di «autorizzazione negata»**   
Verificare che:  
+ Il ruolo dispone delle autorizzazioni IAM necessarie per il tuo caso d'uso
+ Per i controller ACK che fanno riferimento a segreti, assicurati di aver associato la policy di `AmazonEKSSecretReaderPolicy` accesso prevista ai namespace appropriati.

Per ulteriori indicazioni sulla risoluzione dei problemi, consulta. [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)