

 **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 su che si trova 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à.

# Configurare le autorizzazioni ACK
<a name="ack-permissions"></a>

ACK richiede le autorizzazioni IAM per creare e gestire AWS le risorse per tuo conto. Questo argomento spiega come IAM funziona con ACK e fornisce indicazioni sulla configurazione delle autorizzazioni per diversi casi d'uso.

## Come funziona IAM con ACK
<a name="_how_iam_works_with_ack"></a>

ACK utilizza i ruoli IAM per autenticarsi AWS ed eseguire azioni sulle risorse. Esistono due modi per fornire le autorizzazioni ad ACK:

 **Ruolo di capacità**: il ruolo IAM fornito durante la creazione della funzionalità ACK. Questo ruolo viene utilizzato di default per tutte le operazioni ACK.

 **Selettori di ruolo IAM**: ruoli IAM aggiuntivi che possono essere mappati a namespace o risorse specifici. Questi ruoli sostituiscono il Capability Role per le risorse che rientrano nel loro ambito.

Quando ACK deve creare o gestire una risorsa, determina quale ruolo IAM utilizzare:

1. Controlla se an IAMRoleSelector corrisponde allo spazio dei nomi della risorsa

1. Se viene trovata una corrispondenza, assumi quel ruolo IAM

1. Altrimenti, usa il ruolo di capacità

Questo approccio consente una gestione flessibile delle autorizzazioni, da semplici configurazioni a ruolo singolo a configurazioni complesse con più account e più team.

## Guida introduttiva: semplice configurazione delle autorizzazioni
<a name="_getting_started_simple_permission_setup"></a>

Per lo sviluppo, il test o i casi d'uso semplici, puoi aggiungere tutte le autorizzazioni di servizio necessarie direttamente al Capability Role.

Questo approccio funziona bene quando:
+ Stai iniziando con ACK
+ Tutte le risorse sono nello stesso AWS account
+ Un unico team gestisce tutte le risorse ACK
+ Ti fidi che tutti gli utenti ACK abbiano le stesse autorizzazioni

## Best practice di produzione: IAM Role Selectors
<a name="_production_best_practice_iam_role_selectors"></a>

Per gli ambienti di produzione, utilizza i selettori di ruolo IAM per implementare l'accesso con privilegi minimi e l'isolamento a livello di namespace.

Quando si utilizzano i selettori di ruolo IAM, il ruolo di capacità necessita solo delle autorizzazioni necessarie per assumere i ruoli specifici del servizio. `sts:AssumeRole` `sts:TagSession` Non è necessario aggiungere alcuna autorizzazione di AWS servizio (come S3 o RDS) al Capability Role stesso: tali autorizzazioni vengono concesse ai singoli ruoli IAM assunti dal Capability Role.

 **Scelta tra modelli di autorizzazione: **

Utilizza le autorizzazioni ** dirette ** (aggiungendo le autorizzazioni di servizio al Capability Role) quando:
+ Stai iniziando e desideri la configurazione più semplice
+ Tutte le risorse si trovano nello stesso account del cluster
+ Hai requisiti di autorizzazione amministrativi a livello di cluster
+ Tutti i team possono condividere le stesse autorizzazioni

Usa i selettori ** di ruolo ** IAM quando:
+ Gestione delle risorse su più account AWS 
+ Team o namespace diversi richiedono autorizzazioni diverse
+ È necessario un controllo granulare degli accessi per namespace
+ Vuoi seguire le pratiche di sicurezza con privilegi minimi

Puoi iniziare con autorizzazioni dirette e migrare a IAM Role Selectors in un secondo momento man mano che le tue esigenze crescono.

 **Perché usare i selettori di ruolo IAM in produzione: ** 
+  **Privilegio minimo**: ogni namespace ottiene solo le autorizzazioni necessarie
+  **Isolamento del team**: il team A non può utilizzare accidentalmente le autorizzazioni del team B
+  **Controllo più semplice**: mappatura chiara di quale namespace utilizza quale ruolo
+  **Cross-account supporto**: necessario per la gestione delle risorse in più account
+  **Separazione delle preoccupazioni**: servizi o ambienti diversi utilizzano ruoli diversi

### Configurazione di base di IAM Role Selector
<a name="_basic_iam_role_selector_setup"></a>

 **Fase 1: Creare un ruolo IAM specifico per il servizio ** 

Crea un ruolo IAM con autorizzazioni per servizi specifici: AWS 

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": "*"
    }
  ]
}
```

Configura la policy di fiducia per consentire al Capability Role di assumerla:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
  ]
}
```

 **Fase 2: concedere AssumeRole l'autorizzazione a Capability Role ** 

Aggiungi l'autorizzazione al Capability Role per assumere il ruolo specifico del servizio:

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

 **Fase 3: Creazione IAMRoleSelector ** 

Associa il ruolo IAM a un namespace:

```
apiVersion: services.k8s.aws/v1alpha1
kind: IAMRoleSelector
metadata:
  name: s3-namespace-config
spec:
  arn: arn:aws:iam::111122223333:role/ACK-S3-Role
  namespaceSelector:
    names:
      - s3-resources
```

 **Passaggio 4: creare risorse nel namespace mappato ** 

Le risorse nel `s3-resources` namespace utilizzano automaticamente il ruolo specificato:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: my-bucket
  namespace: s3-resources
spec:
  name: my-production-bucket
```

## Multi-account gestione
<a name="_multi_account_management"></a>

Usa i selettori di ruolo IAM per gestire le risorse su più AWS account.

 **Fase 1: Creare un ruolo IAM per più account ** 

Nell'account di destinazione (444455556666), crea un ruolo che consideri attendibile il ruolo di capacità dell'account di origine:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
  ]
}
```

Associa autorizzazioni specifiche del servizio a questo ruolo.

 **Passaggio 2: concedere l'autorizzazione AssumeRole ** 

Nell'account di origine (111122223333), consenti al Capability Role di assumere il ruolo dell'account di destinazione:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["sts:AssumeRole", "sts:TagSession"],
      "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole"
    }
  ]
}
```

 **Fase 3: Crea IAMRoleSelector ** 

Associa il ruolo tra account a un namespace:

```
apiVersion: services.k8s.aws/v1alpha1
kind: IAMRoleSelector
metadata:
  name: production-account-config
spec:
  arn: arn:aws:iam::444455556666:role/ACKTargetAccountRole
  namespaceSelector:
    names:
      - production
```

 **Fase 4: Creare risorse ** 

Le risorse nel `production` namespace vengono create nell'account di destinazione:

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: my-bucket
  namespace: production
spec:
  name: my-cross-account-bucket
```

## Tag di sessione
<a name="_session_tags"></a>

La funzionalità EKS ACK imposta automaticamente i tag di sessione su tutte le richieste AWS API. Questi tag consentono un controllo e un audit granulari degli accessi identificando l'origine di ogni richiesta.

### Tag di sessione disponibili
<a name="_available_session_tags"></a>

I seguenti tag di sessione sono inclusi in ogni chiamata AWS API effettuata da ACK:


| Tag Key | Description | 
| --- | --- | 
|  `eks:eks-capability-arn`  | L'ARN della funzionalità EKS che effettua la richiesta | 
|  `eks:kubernetes-namespace`  | Lo spazio dei nomi Kubernetes della risorsa gestita | 
|  `eks:kubernetes-api-group`  | Il gruppo API Kubernetes della risorsa (ad esempio,) `s3.services.k8s.aws` | 

### Utilizzo dei tag di sessione per il controllo degli accessi
<a name="_using_session_tags_for_access_control"></a>

Puoi utilizzare questi tag di sessione nelle condizioni delle policy IAM per limitare le risorse che ACK può gestire. Ciò fornisce un ulteriore livello di sicurezza oltre ai selettori di ruolo IAM basati sullo spazio dei nomi.

 **Esempio: restrizione per namespace ** 

Consenti ad ACK di creare bucket S3 solo quando la richiesta proviene dal namespace: `production`

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:kubernetes-namespace": "production"
        }
      }
    }
  ]
}
```

 **Esempio: restrizione in base alla capacità ** 

Consenti azioni solo da una funzionalità ACK specifica:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:eks-capability-arn": "arn:aws:eks:us-west-2:111122223333:capability/my-cluster/ack/my-ack"
        }
      }
    }
  ]
}
```

**Nota**  
I tag di sessione sono diversi dall'ACK autogestito, che non imposta questi tag per impostazione predefinita. Ciò consente un controllo degli accessi più granulare con la funzionalità gestita.

## Schemi avanzati di selezione dei ruoli IAM
<a name="_advanced_iam_role_selector_patterns"></a>

Per una configurazione avanzata, che include la mappatura dei ruoli tra account, la selezione dei ruoli con ambito di namespace ed esempi aggiuntivi, [ consulta Granular IAM Roles sul sito Web ACK. ](https://aws-controllers-k8s.github.io/docs/guides/cross-account)

## Fasi successive
<a name="_next_steps"></a>
+  [Concetti ACK](ack-concepts.md)- Comprendi i concetti di ACK e il ciclo di vita delle risorse
+  [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)- Comprendi le migliori pratiche di sicurezza per le funzionalità