

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

# Autorizzazioni del parco istanze spot
<a name="spot-fleet-prerequisites"></a>

Se gli utenti IAM creano o gestiscono una serie di istanze spot, occorre concedere loro le autorizzazioni richieste.

Se utilizzi la console Amazon EC2 per creare una serie di istanze spot, viene creato un ruolo collegato ai due servizi denominato `AWSServiceRoleForEC2SpotFleet` e `AWSServiceRoleForEC2Spot` e un ruolo denominato `aws-ec2-spot-fleet-tagging-role` che concede al serie di istanze spot le autorizzazioni per richiedere, avviare, terminare e assegnare tag alle risorse per tuo conto. Se utilizzi AWS CLI o un'API, devi assicurarti che questi ruoli esistano.

Utilizzare le istruzioni seguenti per concedere le autorizzazioni necessarie e creare i ruoli.

**Topics**
+ [Concessione di autorizzazioni a un utente per la serie di istanze spot](#spot-fleet-iam-users)
+ [Ruolo collegato al servizio per il parco istanze spot](#service-linked-roles-spot-fleet-requests)
+ [Ruolo collegato ai servizi per le istanze spot](#service-linked-roles-spot-instances)
+ [Ruolo IAM per l’assegnazione di tag a un parco istanze spot](#spot-fleet-service-linked-role)

## Concessione di autorizzazioni a un utente per la serie di istanze spot
<a name="spot-fleet-iam-users"></a>

Se gli utenti creano o gestiscono una serie di istanze spot, assicurati di concedere loro le autorizzazioni richieste.

**Per creare una policy per la serie di istanze spot**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, selezionare **Policies (Policy)**, quindi **Create policy (Crea policy)**.

1. Nella pagina **Crea policy** scegliere **JSON** e sostituire il testo con il seguente.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:RunInstances",
                   "ec2:CreateTags",
                   "ec2:RequestSpotFleet",
                   "ec2:ModifySpotFleetRequest",
                   "ec2:CancelSpotFleetRequests",
                   "ec2:DescribeSpotFleetRequests",
                   "ec2:DescribeSpotFleetInstances",
                   "ec2:DescribeSpotFleetRequestHistory"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/aws-ec2-spot-fleet-tagging-role"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:CreateServiceLinkedRole",
                   "iam:ListRoles",
                   "iam:ListInstanceProfiles"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   La policy di esempio precedente concede a un utente le autorizzazioni richieste dalla maggior parte dei casi d’uso della serie di istanze spot. Per limitare l’utente a operazioni API specifiche, specificare solo tali operazioni API.

   **EC2 e IAM richiesti APIs**

   Nella policy APIs deve essere incluso quanto segue:
   + `ec2:RunInstances` - Obbligatorio per avviare istanze in una serie di istanze spot
   + `ec2:CreateTags` - Obbligatorio per applicare tag alla richiesta della serie di istanze spot, alle istanze o ai volumi
   + `iam:PassRole` - Obbligatorio per specificare il ruolo della serie di istanze spot
   + `iam:CreateServiceLinkedRole` - Obbligatorio per creare il ruolo collegato ai servizi
   + `iam:ListRoles` - Obbligatorio per enumerare i ruoli IAM esistenti
   + `iam:ListInstanceProfiles` - Obbligatorio per enumerare i profili delle istanze esistenti
**Importante**  
Se specifichi un ruolo per il profilo dell’istanza IAM nella specifica di avvio o nel modello di avvio, devi concedere all’utente l’autorizzazione per passare il ruolo al servizio. A tale scopo, nella policy IAM includere `"arn:aws:iam::*:role/IamInstanceProfile-role"` come risorsa per l’operazione `iam:PassRole`. Per ulteriori informazioni, consulta [Concedere a un utente le autorizzazioni per passare un ruolo a un AWS servizio nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) per l'*utente IAM*.

   **Spot Fleet APIs**

   Aggiungere le operazioni API del parco istanze spot seguenti alla policy, se necessario:
   + `ec2:RequestSpotFleet`
   + `ec2:ModifySpotFleetRequest`
   + `ec2:CancelSpotFleetRequests`
   + `ec2:DescribeSpotFleetRequests`
   + `ec2:DescribeSpotFleetInstances`
   + `ec2:DescribeSpotFleetRequestHistory`

   **IAM opzionale APIs**

   (Facoltativo) Per consentire a un utente di creare ruoli o profili delle istanze utilizzando la console IAM, è anche necessario aggiungere le operazioni seguenti alla policy:
   + `iam:AddRoleToInstanceProfile`
   + `iam:AttachRolePolicy`
   + `iam:CreateInstanceProfile`
   + `iam:CreateRole`
   + `iam:GetRole`
   + `iam:ListPolicies`

1. Scegliere **Review policy (Esamina policy)**.

1. Nella pagina **Review policy (Rivedi policy)**, immettere un nome policy e una descrizione, poi selezionare **Create policy (Crea policy)**.

1. Per fornire l’accesso, aggiungi autorizzazioni agli utenti, gruppi o ruoli:
   + Utenti e gruppi in AWS IAM Identity Center:

     Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) (Creazione di un set di autorizzazioni) nella *Guida per l’utente di AWS IAM Identity Center *.
   + Utenti gestiti in IAM tramite un provider di identità:

     Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) della *Guida per l’utente IAM*.
   + Utenti IAM:
     + Crea un ruolo che l’utente possa assumere. Segui le istruzioni riportate nella pagina [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) della *Guida per l’utente IAM*.
     + (Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina [Aggiunta di autorizzazioni a un utente (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) nella *Guida per l’utente IAM*.

## Ruolo collegato al servizio per il parco istanze spot
<a name="service-linked-roles-spot-fleet-requests"></a>

Amazon EC2 utilizza ruoli collegati ai servizi per le autorizzazioni di cui ha bisogno per eseguire chiamate ad altri servizi AWS per tuo conto. Un ruolo collegato al servizio è un tipo unico di ruolo IAM collegato direttamente a un AWS servizio. I ruoli collegati ai servizi forniscono un modo sicuro per delegare le autorizzazioni ai AWS servizi perché solo il servizio collegato può assumere un ruolo collegato al servizio. Per ulteriori informazioni, consulta [Ruoli collegati ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) nella *Guida per l’utente di IAM*.

Amazon EC2 utilizza il ruolo collegato al servizio denominato **AWSServiceRoleForEC2SpotFleet**per avviare e gestire le istanze per tuo conto.

**Importante**  
Se specifichi un'[AMI crittografata](AMIEncryption.md) o uno snapshot Amazon EBS crittografato nella tua flotta Spot, devi concedere al **AWSServiceRoleForEC2SpotFleet**ruolo l'autorizzazione a utilizzare la CMK in modo che Amazon EC2 possa avviare istanze per tuo conto. Per ulteriori informazioni, consulta [Concedi l'accesso a CMKs per l'utilizzo con istantanee crittografate AMIs ed EBS](#spot-fleet-service-linked-roles-access-to-cmks).

### Autorizzazioni concesse da AWSService RoleFor EC2 SpotFleet
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2SpotFleet"></a>

Il **AWSServiceRoleForEC2SpotFleet**ruolo concede a Spot Fleet l'autorizzazione a richiedere, avviare, terminare e contrassegnare le istanze per tuo conto. Amazon EC2 utilizza questo ruolo collegato ai servizi per completare le operazioni seguenti:
+ `ec2:RequestSpotInstances` – Richiesta di Istanze spot
+ `ec2:RunInstances` - Avviare istanze
+ `ec2:TerminateInstances` - Terminare istanze
+ `ec2:DescribeImages`- Descrivi Amazon Machine Images (AMIs) per le istanze
+ `ec2:DescribeInstanceStatus` - Monitorare lo stato delle istanze.
+ `ec2:DescribeSubnets` - Descrivere le sottoreti per le istanze
+ `ec2:CreateTags` - Aggiungere tag alla richiesta della serie di istanze spot, alle istanze e ai volumi
+ `elasticloadbalancing:RegisterInstancesWithLoadBalancer` - Aggiungere le istanze specificate al load balancer specificato
+ `elasticloadbalancing:RegisterTargets` - Registrare le destinazioni specificate nel gruppo di destinazioni specificato

### Creazione del ruolo collegato ai servizi
<a name="service-linked-role-creating-for-spot-fleet"></a>

In gran parte dei casi, non è necessario creare manualmente un ruolo collegato ai servizi. Amazon EC2 crea il ruolo **AWSServiceRoleForEC2SpotFleet**collegato ai servizi la prima volta che crei una flotta Spot utilizzando la console. 

Se hai ricevuto una richiesta Spot Fleet attiva prima di ottobre 2017, quando Amazon EC2 ha iniziato a supportare questo ruolo collegato al servizio, Amazon EC2 ha creato il ruolo nel tuo account. **AWSServiceRoleForEC2SpotFleet** AWS *Per ulteriori informazioni, consulta [A new role appeared in my AWS account nella](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared) IAM User Guide.*

Se utilizzi AWS CLI o un'API per creare una flotta Spot, devi prima assicurarti che questo ruolo esista.

**Per creare il AWSService RoleFor EC2 SpotFleet ruolo per Spot Fleet utilizzando la console**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, seleziona **Roles** (Ruoli).

1. Selezionare **Create role (Crea ruolo)**.

1. Nella pagina **Seleziona un’entità attendibile**, esegui le operazioni seguenti:

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

   1. In **Caso d’uso**, per **Servizio o caso d’uso**, scegli **EC2**.

   1. In **Caso d’uso**, scegli **EC2 – Parco istanze spot**.
**Nota**  
Lo use case **EC2 - Spot Fleet** creerà automaticamente una policy con le autorizzazioni IAM richieste e la suggerirà **AWSEC2SpotFleetServiceRolePolicy**come nome del ruolo.

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

1. Nella pagina **Add permissions** (Aggiungi autorizzazioni), scegli **Next** (Successivo).

1. Nella pagina **Nomina, rivedi e crea** scegli **Crea ruolo**.

**Per creare il AWSService RoleFor EC2 SpotFleet ruolo di Spot Fleet utilizzando il AWS CLI**  
Utilizza il comando [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) come riportato di seguito.

```
aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com
```

Se non hai più bisogno di utilizzare Spot Fleet, ti consigliamo di eliminare il **AWSServiceRoleForEC2SpotFleet**ruolo. Dopo che questo ruolo è stato eliminato dall’account, Amazon EC2 creerà di nuovo il ruolo se viene richiesto un parco istanze spot utilizzando la console. Per ulteriori informazioni, consulta [Eliminazione del ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) nella *Guida per l'utente IAM*.

### Concedi l'accesso a CMKs per l'utilizzo con istantanee crittografate AMIs ed EBS
<a name="spot-fleet-service-linked-roles-access-to-cmks"></a>

Se specifichi un [AMI crittografato](AMIEncryption.md) o uno snapshot Amazon EBS crittografato nella tua richiesta Spot Fleet e utilizzi una chiave gestita dal cliente per la crittografia, devi concedere al **AWSServiceRoleForEC2SpotFleet**ruolo l'autorizzazione a utilizzare la CMK in modo che Amazon EC2 possa avviare istanze per tuo conto. Per farlo, occorre aggiungere una concessione alla chiave CMK, come mostrato nella procedura seguente.

Nel processo di assegnazione delle autorizzazioni, le concessioni rappresentano un’alternativa alle policy delle chiavi. Per ulteriori informazioni, consulta [Utilizzo delle concessioni](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) e [Utilizzo delle policy delle chiavi in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

**Per concedere al AWSService RoleFor EC2 SpotFleet ruolo le autorizzazioni per utilizzare la CMK**
+ Utilizzate il comando [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) per aggiungere una concessione alla CMK e specificare il principale (il ruolo **AWSServiceRoleForEC2SpotFleet**collegato al servizio) a cui viene concessa l'autorizzazione per eseguire le operazioni consentite dalla concessione. La CMK è specificata dal parametro `key-id` e dal relativo ARN. Il principale è specificato dal `grantee-principal` parametro e dall'ARN del ruolo collegato al **AWSServiceRoleForEC2SpotFleet**servizio.

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spotfleet.amazonaws.com/AWSServiceRoleForEC2SpotFleet \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

## Ruolo collegato ai servizi per le istanze spot
<a name="service-linked-roles-spot-instances"></a>

Amazon EC2 utilizza il ruolo collegato al servizio denominato **AWSServiceRoleForEC2Spot** per avviare e gestire le istanze Spot per tuo conto. Per ulteriori informazioni, consulta [Ruolo collegato ai servizi per le richieste di istanza spot](service-linked-roles-spot-instance-requests.md).

## Ruolo IAM per l’assegnazione di tag a un parco istanze spot
<a name="spot-fleet-service-linked-role"></a>

Il ruolo IAM `aws-ec2-spot-fleet-tagging-role` concede l’autorizzazione al serie di istanze spot per assegnare tag alla richiesta, alle istanze e ai volumi della serie di istanze spot. Per ulteriori informazioni, consulta [Applicare un tag a una richiesta nuova o esistente per un parco istanze spot e alle istanze e ai volumi che avvia](tag-spot-fleet.md).

**Importante**  
Se scegli di applicare tag alle istanze nel parco istanze e scegli anche di mantenere la capacità obiettivo (la richiesta della serie di istanze spot è di tipo `maintain`), le differenze nelle autorizzazioni impostate per l’utente e il `IamFleetRole` potrebbero generare un comportamento incoerente nell’assegnazione di tag alle istanze nel parco istanze. Se l’autorizzazione `IamFleetRole` `CreateTags` non include, alcune delle istanze lanciate dal parco istanze potrebbero non essere taggate. Mentre stiamo lavorando per risolvere questa incoerenza, per garantire che tutte le istanze lanciate dal parco istanze siano taggate, si consiglia di utilizzare il ruolo `aws-ec2-spot-fleet-tagging-role` per `IamFleetRole`. In alternativa, per utilizzare un ruolo esistente, collega la `AmazonEC2SpotFleetTaggingRole` AWS Managed Policy al ruolo esistente. In caso contrario, è necessario aggiungere manualmente l’autorizzazione `CreateTags` alla policy esistente.

**Per creare il ruolo IAM per l’assegnazione di tag a un parco istanze spot**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, seleziona **Roles** (Ruoli).

1. Selezionare **Create role (Crea ruolo)**.

1. Nella pagina **Select trusted entity** (Seleziona entità attendibile) in **Trusted entity type** (Tipo di entità attendibile), scegli **AWS service** (Servizio ).

1. In **Use case** (Caso d’uso), da **Use cases for other AWS services** (Casi d’uso per altri servizi ), scegli **EC2**, quindi scegli **EC2 - Spot Fleet Tagging** (EC2 - Assegnazione di tag per la serie di istanze spot).

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

1. Nella pagina **Add permissions** (Aggiungi autorizzazioni), scegli **Next** (Successivo).

1. Nella pagina **Name, review, and create** (Nome, revisione e creazione), per **Role name** (Nome ruolo) inserisci un nome per il ruolo (ad esempio **aws-ec2-spot-fleet-tagging-role**).

1. Rivedi le informazioni presenti nella pagina, quindi scegli **Create role** (Crea ruolo).

### Prevenzione del confused deputy tra servizi
<a name="cross-service-confused-deputy-prevention"></a>

Il [problema confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) è un problema di sicurezza in cui un’entità che non dispone dell’autorizzazione per eseguire un’azione può costringere un’entità maggiormente privilegiata a eseguire l’azione. Consigliamo di utilizzare le chiavi di contesto delle condizioni globali [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) nelle policy di attendibilità `aws-ec2-spot-fleet-tagging-role` per limitare le autorizzazioni con cui la serie di istanze spot fornisce un altro servizio alla risorsa.

**Per aggiungere le chiavi aws: SourceArn e aws: SourceAccount condition alla policy di `aws-ec2-spot-fleet-tagging-role` fiducia**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, seleziona **Ruoli**.

1. Individuare la policy `aws-ec2-spot-fleet-tagging-role` creata in precedenza e scegliere il collegamento (non la casella di spunta).

1. In **Summary** (Riepilogo), scegliere la scheda **Trust relationships** (Relazioni di attendibilità), quindi scegliere **Edit trust policy** (Modifica policy di attendibilità).

1. Nell’istruzione JSON, aggiungere un elemento `Condition` contenente le proprie chiavi di contesto delle condizioni globali `aws:SourceAccount` e `aws:SourceArn` per prevenire il [problema del “deputy confused”](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), come segue:

   ```
   "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
   ```
**Nota**  
Se si utilizzano entrambe le chiavi di contesto delle condizioni globali e il valore `aws:SourceArn` contiene l’ID account, il valore `aws:SourceAccount` e l’account nel valore `aws:SourceArn` devono utilizzare lo stesso ID account quando viene utilizzato nella stessa dichiarazione di policy.

   La policy di attendibilità finale sarà la seguente:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Sid": "ConfusedDeputyPreventionExamplePolicy",
       "Effect": "Allow",
       "Principal": {
         "Service": "spotfleet.amazonaws.com"
       },
       "Action": "sts:AssumeRole",
       "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
       }
     }
   }
   ```

------

1. Scegli **Aggiorna policy**.

La tabella seguente fornisce valori potenziali affinché `aws:SourceArn` limiti l’ambito di `aws-ec2-spot-fleet-tagging-role` secondo diversi gradi di specificità.


****  

| Operazione API | Servizio chiamato | Scope | `aws:SourceArn` | 
| --- | --- | --- | --- | 
| RequestSpotFleet | AWS STS (AssumeRole) | Limita la AssumeRole funzionalità aws-ec2-spot-fleet-tagging-role spot-fleet-requests all'account specificato. | arn:aws:ec2:\$1:123456789012:spot-fleet-request/sfr-\$1 | 
| RequestSpotFleet | AWS STS (AssumeRole) | Limita la AssumeRole capacità aws-ec2-spot-fleet-tagging-role spot-fleet-requests all'account e alla regione specificati. Questo ruolo non sarà utilizzabile in altre regioni. | arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-\$1 | 
| RequestSpotFleet | AWS STS (AssumeRole) | Limita la capacità di AssumeRole in aws-ec2-spot-fleet-tagging-role alle sole operazioni che interessano il parco istanze sfr-11111111-1111-1111-1111-111111111111. Questo ruolo potrebbe non essere utilizzabile per altre serie di istanze spot. Inoltre, questo ruolo non può essere utilizzato per lanciare nuove flotte Spot tramite request-spot-fleet. | arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-11111111-1111-1111-1111-111111111111 | 