

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

# Ruolo IAM delle istanze di container Amazon ECS
<a name="instance_IAM_role"></a>

Le istanze di container Amazon ECS, incluse le istanze Amazon EC2 e le istanze esterne, eseguono l'agente del container di Amazon ECS e richiedono un ruolo IAM che consenta al servizio di rilevare che l'agente appartiene a te. Prima di avviare le istanze di container e registrarle in un cluster, devi creare un ruolo IAM per le istanze da utilizzare. Il ruolo viene creato nell'account che usi per accedere alla console o eseguire i AWS CLI comandi.

**Importante**  
Se registri le istanze esterne nel cluster, il ruolo IAM utilizzato richiede anche le autorizzazioni di Systems Manager. Per ulteriori informazioni, consulta [Ruolo IAM di Amazon ECS Anywhere](iam-role-ecsanywhere.md).

Amazon ECS fornisce la policy IAM gestita da `AmazonEC2ContainerServiceforEC2Role` che contiene le autorizzazioni necessarie per utilizzare il set completo di funzionalità di Amazon ECS. Questa policy gestita può essere associata a un ruolo IAM e alle istanze del container. In alternativa, è possibile utilizzare la policy gestita come guida durante la creazione di una policy personalizzata da utilizzare. Il ruolo dell'istanza del contenitore fornisce le autorizzazioni necessarie affinché l'agente contenitore Amazon ECS e il daemon Docker possano effettuare chiamate per tuo conto. AWS APIs Per ulteriori informazioni sulla policy gestita, consulta [EC2ContainerServiceforEC2Ruolo di Amazon](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEC2ContainerServiceforEC2Role).

## Crea il ruolo dell'istanza di container
<a name="instance-iam-role-create"></a>

**Importante**  
Se registri istanze esterne nel cluster, consulta [Ruolo IAM di Amazon ECS Anywhere](iam-role-ecsanywhere.md).

Puoi creare manualmente il ruolo e collegare la policy IAM gestita per le istanze di container in modo da consentire ad Amazon ECS di aggiungere le autorizzazioni per funzionalità e miglioramenti futuri man mano che vengono introdotti. Usa la seguente procedura per collegare la policy IAM gestita, se necessario.

------
#### [ Console di gestione AWS ]

**Per creare il ruolo di servizio per Elastic Container Service (console IAM)**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Nel pannello di navigazione della console IAM, scegliere **Ruoli** e quindi **Crea ruolo**.

1. Per **Tipo di entità attendibile**, seleziona **Servizio AWS**.

1. Per **Servizio o caso d'uso**, seleziona **Elastic Container Service** e poi il **ruolo EC2 per il caso d'uso Elastic Container Service**.

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

1. Nella sezione **Politiche di autorizzazione**, verifica che sia selezionata la politica di **Amazon EC2 ContainerServicefor EC2 Role**.
**Importante**  
La policy gestita di **Amazon EC2 ContainerServicefor EC2 Role** deve essere allegata al ruolo IAM dell'istanza del contenitore, altrimenti riceverai un errore durante l'utilizzo Console di gestione AWS di to create cluster.

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

1.  Per il **nome del ruolo**, inserisci **ecsInstanceRole**

1. Verificare il ruolo e quindi scegliere **Create role (Crea ruolo)**.

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

Sostituisci tutti i *user input* con i valori in tuo possesso.

1. Crea un file denominato `instance-role-trust-policy.json` con i seguenti contenuti.  
****  

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

1. Usa il seguente comando per creare il ruolo IAM dell'istanza utilizzando il documento della policy di attendibilità.

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

1. Create un profilo di istanza denominato `ecsInstanceRole-profile` utilizzando il [create-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html)comando. 

   ```
   aws iam create-instance-profile --instance-profile-name ecsInstanceRole-profile
   ```

   Esempio di risposta

   ```
   {
       "InstanceProfile": {
           "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE",
           "Roles": [],
           "CreateDate": "2022-04-12T23:53:34.093Z",
           "InstanceProfileName": "ecsInstanceRole-profile",
           "Path": "/",
           "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile"
       }
   }
   ```

1. Aggiungi il ruolo `ecsInstanceRole` al profilo dell'istanza `ecsInstanceRole-profile`.

   ```
   aws iam add-role-to-instance-profile \
       --instance-profile-name ecsInstanceRole-profile \
       --role-name ecsInstanceRole
   ```

1. Collega la policy gestita da `AmazonEC2ContainerServiceForEC2Role` al ruolo usando il comando seguente.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \
       --role-name ecsInstanceRole
   ```

------

Dopo aver creato il ruolo, aggiungi ad esso ulteriori autorizzazioni per le seguenti funzionalità.


|  Funzionalità  |  Autorizzazioni aggiuntive  | 
| --- | --- | 
|  Amazon ECR ha l'immagine del container  |  [Autorizzazioni Amazon ECR](#container-instance-role-ecr)  | 
| Fai in modo che CloudWatch Logs monitori le istanze del contenitore | [Monitoraggio delle autorizzazioni delle istanze di container](#cwl_iam_policy) | 
| File di configurazione di host in un bucket Amazon S3 | [Accesso in sola lettura ad Amazon S3](#container-instance-role-s3) | 

## Autorizzazioni Amazon ECR
<a name="container-instance-role-ecr"></a>

Il ruolo dell'istanza di container di Amazon ECS utilizzato con le istanze di container deve possedere le seguenti autorizzazioni di policy IAM per Amazon ECR.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Se utilizzi la policy gestita `AmazonEC2ContainerServiceforEC2Role` per le tue istanze di container, il tuo ruolo dispone già delle opportune autorizzazioni.

## Autorizzazioni necessarie per configurare l'impostazione dell'account awsvpcTrunking
<a name="container-instance-role-awsvpcTrunking-setting"></a>

Amazon ECS supporta l'avvio di istanze di container con densità ENI aumentata mediante i tipi di istanze Amazon EC2 supportati. Se usi questa funzionalità, consigliamo di creare 2 ruoli dell'istanza di container. Abilita l'impostazione dell'account `awsvpcTrunking` per un ruolo e usare quel ruolo per attività che richiedono il trunking ENI. Per informazioni sulle impostazioni dell'account `awsvpcTrunking`, consulta [Accedi alle funzionalità di Amazon ECS con le impostazioni dell'account](ecs-account-settings.md).

Il ruolo dell'istanza di container utilizzato con le istanze di container deve possedere le seguenti autorizzazioni di policy IAM per configurare le impostazioni dell'account 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:ListAccountSettings", 
                "ecs:ListAttributes", 
                "ecs:PutAccountSetting" 
            ],
            "Resource": "*"
        }
    ]
}
```

------

Per usare il ruolo dell'istanza di container, aggiungi quanto segue ai dati utente dell'istanza:

```
#!/bin/bash
aws ecs put-account-setting --name awsvpcTrunking --value enabled --region region
ECS_CLUSTER=MyCluster>> /etc/ecs/ecs.config
EOF
```

Per maggiori informazioni sull'aggiunta di dati utente alle istanze EC2, consulta [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) nella *Guida dell'utente di Amazon EC2*.

## Accesso in sola lettura ad Amazon S3
<a name="container-instance-role-s3"></a>

Archiviare le informazioni di configurazione in un bucket privato in Amazon S3 e concedere l'accesso in sola lettura al ruolo IAM dell'istanza di container è un modo sicuro e conveniente per permettere la configurazione delle istanze di container all'ora di avvio. Puoi archiviare una copia del tuo `ecs.config` file in un bucket privato, utilizzare i dati utente di Amazon EC2 per AWS CLI installarlo e quindi copiare le informazioni di configurazione `/etc/ecs/ecs.config` all'avvio dell'istanza.

Per ulteriori informazioni sulla creazione di un file `ecs.config`, sull'archiviazione di tale file in Amazon S3 e sull'avvio di istanze con questa configurazione, consulta [Archiviazione della configurazione di un'istanza di container Amazon ECS in Amazon S3](ecs-config-s3.md).

Puoi utilizzare il seguente AWS CLI comando per consentire l'accesso in sola lettura ad Amazon S3 per il tuo ruolo di istanza di contenitore. *ecsInstanceRole*Sostituiscilo con il nome del ruolo che hai creato.

```
aws iam attach-role-policy \
      --role-name ecsInstanceRole \
      --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
```

Puoi usare la console IAM per aggiungere l'accesso in sola lettura ad Amazon S3 (`AmazonS3ReadOnlyAccess`) al tuo ruolo. Per ulteriori informazioni, consulta [Aggiornamento delle autorizzazioni per un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) nella *Guida per l'utente di AWS Identity and Access Management *.

## Monitoraggio delle autorizzazioni delle istanze di container
<a name="cwl_iam_policy"></a>

Prima che le istanze del contenitore possano inviare dati di log a CloudWatch Logs, devi creare una policy IAM per consentire all'agente Amazon ECS di scrivere i log delle applicazioni del cliente CloudWatch (normalmente gestiti tramite il driver). `awslogs` Dopo aver creato la policy, collegala a `ecsInstanceRole`.

------
#### [ Console di gestione AWS ]

**Come utilizzare l'editor di policy JSON per creare una policy**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Nel riquadro di navigazione a sinistra, seleziona **Policies (Policy)**. 

   Se è la prima volta che selezioni **Policy**, verrà visualizzata la pagina **Benvenuto nelle policy gestite**. Seleziona **Inizia**.

1. Nella parte superiore della pagina, scegli **Crea policy**.

1. Nella sezione **Editor di policy**, scegli l'opzione **JSON**.

1. Inserisci il documento di policy JSON seguente:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogStreams"
               ],
               "Resource": ["arn:aws:logs:*:*:*"]
           }
       ]
   }
   ```

1. Scegli **Next (Successivo)**.
**Nota**  
È possibile alternare le opzioni dell'editor **Visivo** e **JSON** in qualsiasi momento. Se tuttavia si apportano modifiche o si seleziona **Successivo** nell'editor **Visivo**, IAM potrebbe ristrutturare la policy in modo da ottimizzarla per l'editor visivo. Per ulteriori informazioni, consulta [Modifica della struttura delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure) nella *Guida per l'utente di IAM*.

1. Nella pagina **Rivedi e crea**, inserisci un valore in **Nome policy** e **Descrizione** (facoltativo) per la policy in fase di creazione. Rivedi **Autorizzazioni definite in questa policy** per visualizzare le autorizzazioni concesse dalla policy.

1. Seleziona **Crea policy** per salvare la nuova policy.

Dopo avere creato la policy, collegala al ruolo dell'istanza di container. Per informazioni su come associare la policy al ruolo, consulta [Aggiornamento delle autorizzazioni per un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) nella *Guida per l'utente di AWS Identity and Access Management *

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

1. Crea un file denominato `instance-cw-logs.json`, con il seguente contenuto:  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogStreams"
               ],
               "Resource": ["arn:aws:logs:*:*:*"]
           }
       ]
   }
   ```

1. Usa il seguente comando per creare la policy IAM utilizzando il file del documento della policy JSON.

   ```
   aws iam create-policy \
         --policy-name cwlogspolicy \
         --policy-document file://instance-cw-logs.json
   ```

1. Recupera l'ARN della policy IAM che hai creato usando il seguente comando. Sostituiscila *cwlogspolicy* con il nome della policy che hai creato.

   ```
   aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cwlogspolicy`].Arn'
   ```

1. Usa il seguente comando per collegare la policy al ruolo IAM dell'istanza di container utilizzando la policy ARN.

   ```
   aws iam attach-role-policy \
         --role-name ecsInstanceRole \
         --policy-arn arn:aws:iam:111122223333:aws:policy/cwlogspolicy
   ```

------