

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

# Autenticazione degli accessi ad Amazon EKS
<a name="eks-access-entries"></a>

Amazon EKS supporta due meccanismi per concedere a un principale IAM l'autorizzazione a chiamare l'KubernetesAPI del cluster: l'API di accesso legacy `aws-auth` ConfigMap e quella più recente[. ](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) Una voce di accesso garantisce l'accesso Kubernetes API a un principal IAM senza richiedere la modifica di un. ConfigMap AWS Batch può autenticarsi nel cluster tramite entrambi i meccanismi.

Se lo `eksConfiguration.accessEntry.desiredState` imposti `ENABLED` su un ambiente di elaborazione, AWS Batch puoi gestire la voce di accesso per quell'ambiente di calcolo sul cluster. Non è più necessario modificare manualmente il. `aws-auth` ConfigMap

Il AWS Batch provisioning di una voce di accesso dipende dall'ambiente di AWS Batch elaborazione e dalla configurazione del cluster Amazon EKS. Per informazioni dettagliate, vedi [Interazione con l'AuthenticationMode del cluster ``](#eks-access-entries-matrix).

## Valori per l'accesso `Entry.desiredState`
<a name="eks-access-entries-desired-state"></a>

Il `desiredState` campo on `EksAccessEntry` dichiara lo stato di accesso desiderato per l'ambiente di calcolo. I valori validi sono:

`ENABLED`  
AWS Batch crea una voce AWS Batch di accesso gestita nel cluster per l'ambiente di calcolo. AWS Batch creerà una voce AWS Batch di accesso gestito solo se tutti gli ambienti di calcolo del cluster sono impostati su `ENABLED` (vedi `desiredState` [In che modo AWS Batch riconcilia `DesiredState tra gli ambienti di elaborazione`](#eks-access-entries-reconciliation) per i dettagli).

`DISABLED`  
AWS Batch elimina la voce AWS Batch-managed access per il cluster. AWS Batch eliminerà una voce AWS Batch di accesso gestito solo se tutti gli ambienti di calcolo del cluster sono impostati su `DISABLED` (vedi `desiredState` [In che modo AWS Batch riconcilia `DesiredState tra gli ambienti di elaborazione`](#eks-access-entries-reconciliation) per i dettagli). L'accesso al cluster deve essere configurato tramite. `aws-auth` ConfigMap

`INHERIT_FROM_CLUSTER`  
AWS Batch rimanda alla voce `status` di accesso corrente del cluster. In un cluster Amazon EKS la cui modalità di autenticazione è`API`, AWS Batch crea e gestisce una voce di accesso perché il cluster non può `aws-auth` ConfigMap ricorrere. In un cluster la cui modalità di autenticazione è `CONFIG_MAP` o`API_AND_CONFIG_MAP`, AWS Batch non aggiunge né rimuove una voce di accesso.

L'ambiente di calcolo espone anche un campo di sola lettura `accessEntry.status` nelle risposte. [ DescribeComputeEnvironments ](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeComputeEnvironments.html) `ACTIVE`significa che nel cluster esiste una voce di accesso AWS Batch gestito per l'ambiente di calcolo che ha la precedenza su. `aws-auth` ConfigMap `INACTIVE`significa che non è presente alcuna AWS Batch voce di accesso gestito. Ciò può essere dovuto `desiredState` al fatto che gli ambienti di calcolo destinati al cluster non sono ancora d'accordo o al `desiredState` fatto che la voce non è ancora stata predisposta. `DISABLED` In caso `accessEntry.status` affermativo`INACTIVE`, Batch utilizza `aws-auth` ConfigMap per l'accesso al cluster.

**Nota**  
Una voce di accesso viene segnalata non `ACTIVE` appena esiste nel cluster, anche se AWS Batch non ha completato l'associazione della politica di accesso che la rende utilizzabile. Se lo stato dell'ambiente di calcolo cambia in `INVALID` while `accessEntry.status` is`ACTIVE`, consulta. [La configurazione della voce di accesso di Amazon EKS è incompleta](batch_eks_invalid_compute_environment.md#batch_eks_access_entry_incomplete)

**Nota**  
Se si omette il `accessEntry` campo, AWS Batch non registra un valore `desiredState` per l'ambiente di calcolo e `DescribeComputeEnvironments` non ne restituisce uno. Ai fini del provisioning della voce di accesso, AWS Batch si comporta come previsto. `INHERIT_FROM_CLUSTER`

## Interazione con l'AuthenticationMode del cluster ``
<a name="eks-access-entries-matrix"></a>

Il AWS Batch comportamento di un determinato elemento `desiredState` dipende dalla modalità di autenticazione del cluster. La tabella seguente si applica `CreateComputeEnvironment` sia `UpdateComputeEnvironment` a.


<table>
<thead>
  <tr><th>Cluster <code>authenticationMode</code></th><th>Ambiente di elaborazione <code>accessEntry.desiredState=ENABLED</code></th><th>Ambiente di elaborazione <code>accessEntry.desiredState=DISABLED</code></th><th>Ambiente di elaborazione <code>accessEntry.desiredState=INHERIT_FROM_CLUSTER</code></th></tr>
</thead>
<tbody>
  <tr><td><code>CONFIG_MAP</code></td><td colspan="3">Le voci di accesso non sono disponibili nel cluster, quindi AWS Batch non ne crea o ne rimuove una. AWS Batch registra ancora il valore specificato. Dopo aver modificato la modalità di autenticazione del cluster, il valore registrato ha effetto alla successiva <code>UpdateComputeEnvironment</code> chiamata <code>CreateComputeEnvironment</code> o chiamata specificata. <code>desiredState</code></td></tr>
  <tr><td><code>API_AND_CONFIG_MAP</code></td><td colspan="2">AWS Batch confronta i valori registrati negli ambienti di elaborazione che condividono il cluster. Vedi. <a href="#eks-access-entries-reconciliation">In che modo AWS Batch riconcilia `DesiredState tra gli ambienti di elaborazione`</a></td><td>La modalità di accesso esistente viene mantenuta. AWS Batch non aggiunge o rimuove una voce di accesso.</td></tr>
  <tr><td><code>API</code></td><td>La voce di accesso viene creata e gestita nel cluster.</td><td>La richiesta viene respinta. Un cluster in questa modalità non supporta e il <code>aws-auth</code> ConfigMap ConfigMap metodo non può essere abilitato dopo la creazione del cluster, pertanto non <code>DISABLED</code> consentirebbe all'ambiente di calcolo di autenticarsi.</td><td>La voce di accesso viene creata e gestita nel cluster. Quando il cluster è <code>API</code> -only, ereditare equivale a. <code>ENABLED</code></td></tr>
</tbody>
</table>


## In che modo AWS Batch riconcilia `DesiredState tra gli ambienti di elaborazione`
<a name="eks-access-entries-reconciliation"></a>

Poiché un singolo cluster Amazon EKS può supportare più ambienti di AWS Batch calcolo, la configurazione di accesso di un cluster è una risorsa condivisa. AWS Batch quindi riconcilia, o confronta e risolve, i `desiredState` valori registrati in tali ambienti di calcolo.

Quando il cluster `authenticationMode` è`API_AND_CONFIG_MAP`, AWS Batch confronta i dati `desiredState` registrati per ogni ambiente di calcolo nello stesso account e nella stessa AWS regione di destinazione del cluster. AWS AWS Batch utilizza questo confronto per determinare se aggiungere o rimuovere la voce di accesso per ciascuna `CreateComputeEnvironment` `UpdateComputeEnvironment` operazione specificata. `desiredState`

Ogni ambiente di elaborazione ha `desiredState=ENABLED`  
AWS Batch crea la voce di accesso sul cluster.

Ogni ambiente di elaborazione ha `desiredState=DISABLED`  
AWS Batch elimina la voce di accesso dal cluster, se ne esiste una.

I `desiredState` valori registrati non corrispondono tutti  
AWS Batch mantiene la modalità di accesso esistente. La voce di accesso non viene né aggiunta né rimossa. Ciò include qualsiasi combinazione di `ENABLED` `DISABLED``INHERIT_FROM_CLUSTER`, e e include anche qualsiasi ambiente di elaborazione non `desiredState` registrato.

**Nota**  
Per effettuare la transizione di un cluster la cui modalità di autenticazione è `API_AND_CONFIG_MAP` da `aws-auth` ConfigMap all'autenticazione di accesso, `desiredState=ENABLED` impostala su ogni ambiente di AWS Batch calcolo destinato al cluster. Per tornare indietro, `desiredState=DISABLED` imposta ognuno di essi.

## What AWS Batch crea sul tuo cluster
<a name="eks-access-entries-what-batch-creates"></a>

AWS Batch crea una voce di accesso per cluster che soddisfa le condizioni precedenti, quindi associa la politica di accesso di `AWSBatchClusterPolicy` Amazon EKS a tale voce di accesso. La voce di accesso è per cluster anziché per ambiente di elaborazione, quindi tutti gli ambienti di AWS Batch calcolo che hanno come target lo stesso cluster la condividono.

**Nota**  
L'eliminazione di un ambiente di calcolo non rimuove la voce di accesso, anche se si tratta dell'ultimo ambiente di AWS Batch calcolo del cluster. Per rimuovere una voce AWS Batch di accesso gestita, chiama `UpdateComputeEnvironment` with `desiredState=DISABLED` su tutti gli ambienti di AWS Batch elaborazione destinati al cluster prima di eliminarli.

Una voce di accesso non è sufficiente da sola per eseguire processi sul cluster. Per le Kubernetes autorizzazioni e l'accesso ai nodi che devi configurare tu stesso, consulta[Configurazione del cluster che devi comunque fornire](#eks-access-entries-additional-configuration).

## Autorizzazioni richieste
<a name="eks-access-entries-permissions"></a>

AWS Batch gestisce la voce di accesso utilizzando le credenziali dell'identità IAM che chiama l'operazione `CreateComputeEnvironment` or`UpdateComputeEnvironment`. Tale identità deve essere autorizzata a eseguire le seguenti azioni Amazon EKS:
+ `eks:DescribeCluster`
+ `eks:DescribeAccessEntry`
+ `eks:CreateAccessEntry`
+ `eks:AssociateAccessPolicy`
+ `eks:DeleteAccessEntry`

## Configura la voce di accesso
<a name="eks-access-entries-configure"></a>

È possibile configurare la voce di accesso in un ambiente di calcolo tramite il `eksConfiguration.accessEntry` campo dell'[UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)API [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) or.

------
#### [ AWS CLI ]

**Abilita una voce AWS Batch di accesso gestita durante la creazione di un ambiente di elaborazione **

```
$ aws batch create-compute-environment \
    --compute-environment-name {{my-eks-ce}} \
    --type MANAGED \
    --eks-configuration 'eksClusterArn={{arn:aws:eks:us-east-1:123456789012:cluster/my-cluster}},kubernetesNamespace={{my-aws-batch-namespace}},accessEntry={desiredState=ENABLED}' \
    --compute-resources 'type=EC2,maxvCpus=128,subnets={{subnet-a123456b}},securityGroupIds={{sg-a12b3456}},instanceRole={{arn:aws:iam::123456789012:instance-profile/my-node-instance-profile}}'
```

**Abilita una voce AWS Batch di accesso gestito in un ambiente di elaborazione esistente **

```
$ aws batch update-compute-environment \
    --compute-environment {{my-eks-ce}} \
    --eks-configuration 'accessEntry={desiredState=ENABLED}'
```

**Controlla lo stato **

```
$ aws batch describe-compute-environments \
    --compute-environments {{my-eks-ce}} \
    --query "computeEnvironments[0].eksConfiguration.accessEntry"
```

La risposta include sia `desiredState` ciò che hai specificato che quello osservato`status`:

```
{
    "desiredState": "ENABLED",
    "status": "ACTIVE"
}
```

**Nota**  
AWS Batch viene restituito `accessEntry.status` per tutti gli ambienti di calcolo Amazon EKS e viene restituito `desiredState` solo se è stato impostato. Un ambiente di calcolo in cui non hai mai specificato i `accessEntry` rendimenti `status` da solo.

Per interrompere la gestione AWS Batch della voce di accesso, imposta `DISABLED` invece `desiredState` su. Prima di farlo, review[Interazione con l'AuthenticationMode del cluster ``](#eks-access-entries-matrix): `DISABLED` viene rifiutato su un cluster la cui modalità di autenticazione è `API` impostata e su un cluster la cui modalità di autenticazione è `API_AND_CONFIG_MAP` la voce di accesso viene rimosso solo dopo che ogni ambiente di AWS Batch calcolo destinato al `DISABLED` cluster è stato impostato su.

------
#### [ API ]

Usa l'`eksConfiguration.accessEntry`oggetto nella tua [ CreateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) richiesta.

**Crea un ambiente di elaborazione con una voce AWS Batch di accesso gestita **

`accessEntry`Includi nel corpo della richiesta:

```
{
    "computeEnvironmentName": "{{my-eks-ce}}",
    "type": "MANAGED",
    "state": "ENABLED",
    "eksConfiguration": {
        "eksClusterArn": "{{arn:aws:eks:us-east-1:123456789012:cluster/my-cluster}}",
        "kubernetesNamespace": "{{my-aws-batch-namespace}}",
        "accessEntry": {
            "desiredState": "ENABLED"
        }
    },
    "computeResources": {
        "type": "EC2",
        "maxvCpus": 128,
        "subnets": ["{{subnet-a123456b}}"],
        "securityGroupIds": ["{{sg-a12b3456}}"],
        "instanceRole": "{{arn:aws:iam::123456789012:instance-profile/my-node-instance-profile}}"
    }
}
```

**Aggiorna la voce di accesso in un ambiente di elaborazione esistente **

```
{
    "computeEnvironment": "{{my-eks-ce}}",
    "eksConfiguration": {
        "accessEntry": {
            "desiredState": "ENABLED"
        }
    }
}
```

Per ulteriori informazioni [`EksAccessEntry`](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksAccessEntry.html) [ CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html), consulta e [ UpdateComputeEnvironment ](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) nella sezione *AWS Batch API Reference*.

------

## Configurazione del cluster che devi comunque fornire
<a name="eks-access-entries-additional-configuration"></a>

Una voce di accesso controlla solo la modalità di AWS Batch autenticazione nel cluster. Non concede AWS Batch le Kubernetes autorizzazioni necessarie per eseguire i processi e non consente alle istanze AWS Batch avviate di unirsi al cluster. Indipendentemente dal meccanismo di autenticazione utilizzato, è comunque necessario configurare entrambi i seguenti elementi.

**Importante**  
Una volta creata una voce di accesso AWS Batch gestito per il ruolo AWS Batch collegato al servizio su un cluster (`accessEntry.status=ACTIVE`), ha la precedenza sulla `aws-auth` ConfigMap configurazione del ruolo. Le ConfigMap voci per il ruolo AWS Batch collegato al servizio non sono utilizzate e AWS Batch vengono autenticate utilizzando invece la voce di accesso. Per tornare all' ConfigMap autenticazione, impostala `desiredState=DISABLED` su tutti gli ambienti di calcolo destinati al cluster. Ciò rimuove la voce AWS Batch-managed access.

Kubernetesautorizzazioni per il namespace AWS Batch   
AWS Batch necessita Kubernetes delle autorizzazioni per creare e gestire i pod nello spazio dei nomi specificato. `eksConfiguration.kubernetesNamespace` Crea il namespace, quindi configura tali autorizzazioni utilizzando uno dei seguenti metodi a seconda del tuo approccio di autenticazione:  
+ **Associazione ai criteri di accesso (richiesta per l'accesso`status=ACTIVE`)**: quando si imposta l'impostazione `desiredState=ENABLED` su tutti gli ambienti di elaborazione destinati a un cluster, AWS Batch crea una voce di accesso a livello di cluster. `AWSBatchClusterPolicy` È quindi necessario associare il namespace-scoped `AWSBatchNamespacePolicy` per concedere l'autorizzazione a creare e gestire i pod. AWS Batch 

  Una volta raggiunta la voce di accesso`status=ACTIVE`, associa la politica dello spazio dei nomi utilizzando: AWS CLI

  ```
  $ aws eks associate-access-policy \
      --cluster-name {{my-cluster}} \
      --principal-arn {{arn:aws:iam::123456789012:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch}} \
      --policy-arn arn:aws:eks::aws:cluster-access-policy/AWSBatchNamespacePolicy \
      --access-scope type=namespace,namespaces={{my-aws-batch-namespace}}
  ```

  Sostituisci {{my-aws-batch-namespace}} con il valore specificato in. `eksConfiguration.kubernetesNamespace`
**Importante**  
Senza l'associazione dei criteri con ambito di namespace, lo stato dei lavori rimarrà bloccato. `RUNNABLE` La policy a livello di cluster da sola non concede autorizzazioni di gestione dei pod.
+ **Kubernetesruoli e associazioni di ruolo (quando si accede`status=INACTIVE`)**: se la voce AWS Batch-managed access non è attiva, crea i Kubernetes ruoli e le associazioni di ruolo che concedono tali autorizzazioni, come descritto in. [Fase 2: Prepara il tuo cluster Amazon EKS per AWS Batch](getting-started-eks.md#getting-started-eks-step-1) Questa operazione viene eseguita una volta per ogni cluster.
**Nota**  
Quando è attiva una voce di accesso AWS Batch gestita (`status=ACTIVE`), i ruoli Kubernetes RBAC vengono ignorati. È invece necessario utilizzare il metodo di associazione dei criteri di accesso.
AWS Batch non crea queste risorse per te e una voce AWS Batch di accesso gestito non le sostituisce. Se mancano, l'ambiente di elaborazione può comunque diventare obsoleto `VALID` mentre i lavori non vengono avviati.

Accesso al cluster per il ruolo di istanza del nodo  
Le istanze AWS Batch avviate si uniscono al cluster utilizzando il profilo di istanza specificato in. `computeResources.instanceRole` Tale ruolo richiede il proprio accesso al cluster, che è separato dalla voce AWS Batch-managed access e che AWS Batch non è configurabile.  
Il metodo di configurazione dipende dal cluster: `authenticationMode`  
+ **Sui cluster il cui `authenticationMode` è `CONFIG_MAP`**: è necessario utilizzare il `aws-auth` ConfigMap. Le voci di accesso non sono supportate in questi cluster.
+ **Sui cluster il cui `authenticationMode` è `API_AND_CONFIG_MAP`**: il ruolo dell'istanza del nodo può autenticarsi utilizzando la `aws-auth` ConfigMap o una voce di accesso. Se il ruolo dell'istanza è già mappato in ConfigMap, i nodi si uniranno correttamente senza creare una voce di accesso per il ruolo.
+ **Sui cluster il cui `authenticationMode` è `API`**: è necessario creare una voce di accesso per il ruolo di istanza del nodo. Non `aws-auth` ConfigMap viene utilizzato per l'autenticazione su questi cluster.
Per creare una voce di accesso per il ruolo di istanza del nodo, usa: AWS CLI  

```
$ aws eks create-access-entry \
    --cluster-name {{my-cluster}} \
    --principal-arn {{arn:aws:iam::123456789012:role/my-node-instance-role}} \
    --type EC2_LINUX
```

```
$ aws eks associate-access-policy \
    --cluster-name {{my-cluster}} \
    --principal-arn {{arn:aws:iam::123456789012:role/my-node-instance-role}} \
    --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \
    --access-scope type=cluster
```
Per ulteriori informazioni, consulta [ Creazione di voci di accesso ](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) nella * * Amazon EKS User Guide **.  
Senza un accesso adeguato al cluster per il ruolo di istanza del nodo, le istanze EC2 non possono entrare a far parte del cluster. I job rimarranno nello `RUNNABLE` stato perché nessuna capacità viene registrata nel cluster.

## Scelta tra le voci `aws-auth` ConfigMap e access
<a name="eks-access-entries-choosing"></a>

L'autenticazione degli accessi è il percorso consigliato per i nuovi ambienti di calcolo AWS Batch su Amazon EKS e offre i seguenti vantaggi:
+ Elimina la necessità di modificare manualmente le impostazioni `aws-auth` ConfigMap per concedere AWS Batch l'accesso al cluster.
+ Fornisce un API-driven registro verificabile dei principali che hanno accesso al cluster.
+ È obbligatorio per i cluster il `authenticationMode` cui `API` ID non supporta. `aws-auth` ConfigMap

Se il tuo cluster `authenticationMode` è`CONFIG_MAP`, le voci di accesso non sono disponibili e vengono AWS Batch autenticate tramite. `aws-auth` ConfigMap Per istruzioni, consulta [Verifica che `aws-auth ConfigMap` sia configurato correttamente](verify-configmap-config.md).