

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

# Profilo delle istanze gestite da Amazon ECS
<a name="managed-instances-instance-profile"></a>

Un profilo dell'istanza è un container IAM che contiene esattamente un ruolo IAM e permette alle istanze gestite da Amazon ECS di assumere tale ruolo in modo sicuro. Il profilo dell'istanza contiene un ruolo dell'istanza che l'agente ECS assume per registrare le istanze nei cluster e comunicare con il servizio ECS.

**Importante**  
Se utilizzi Amazon ECS Managed Instances con la policy `AmazonECSInfrastructureRolePolicyForManagedInstances` gestita, il nome del ruolo dell'istanza deve iniziare con. `ecsInstanceRole` L'ambito della policy è valido `iam:PassRole``arn:aws:iam::*:role/ecsInstanceRole*`, quindi un nome non corrispondente causa un errore di autorizzazione all'avvio dell'attività. Questo è comune CloudFormation quando si omette`RoleName`, perché CloudFormation genera automaticamente nomi come. `MyStack-InstanceRole-ABC123`  
Se invece utilizzi una policy personalizzata per il ruolo dell'infrastruttura, il ruolo dell'istanza può avere qualsiasi nome purché la policy includa una `iam:PassRole` concessione destinata all'ARN del ruolo dell'istanza.

## Crea il ruolo con la policy di attendibilità
<a name="create-instance-role"></a>

Sostituisci tutto *user input* con le tue informazioni.

1. Crea un file denominato `ecsInstanceRole-trust-policy.json` contenente la policy di attendibilità da utilizzare per il ruolo IAM. Il file deve contenere il testo seguente:

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

****  

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

------

1. Utilizzate il AWS CLI comando seguente per creare un ruolo denominato `ecsInstanceRole` utilizzando la politica di fiducia creata nel passaggio precedente.

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

1. Allega la `AmazonECSInstanceRolePolicyForManagedInstances` politica AWS gestita al `ecsInstanceRole` ruolo.

   ```
   aws iam attach-role-policy \
         --role-name ecsInstanceRole \
         --policy-arn arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances
   ```
**Nota**  
Se scegli di applicare le autorizzazioni con privilegi minimi e di specificare invece le tue autorizzazioni, puoi aggiungere le seguenti autorizzazioni per aiutarti a risolvere i problemi relativi alle attività con Amazon ECS Managed Instances:   
`ecs:StartTelemetrySession`
`ecs:PutSystemLogEvents`

Puoi inoltre usare il flusso di lavoro della **policy di attendibilità** della console IAM per creare il ruolo. Per ulteriori informazioni, consulta [Creazione di un ruolo utilizzando criteri di attendibilità personalizzati (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) nella *Guida per l'utente di IAM*.

Dopo aver creato il file, è necessario concedere all'utente l'autorizzazione a trasferire il ruolo ad Amazon ECS.

## Crea il profilo dell'istanza utilizzando AWS CLI
<a name="create-instance-profile"></a>

Dopo aver creato il ruolo, crea il profilo dell'istanza usando la AWS CLI:

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

Aggiungi il ruolo al profilo dell'istanza:

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

Verificare che il profilo sia stato creato correttamente:

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

## Crea il profilo dell'istanza utilizzando CloudFormation
<a name="create-instance-profile-cfn"></a>

È possibile utilizzare AWS CloudFormation per creare il ruolo e il profilo dell'istanza. Scegli una delle seguenti opzioni a seconda che utilizzi la politica AWS di infrastruttura gestita o una politica personalizzata.

### Opzione 1: utilizza la convenzione di ecsInstanceRole denominazione (consigliata)
<a name="create-instance-profile-cfn-managed"></a>

Quando si utilizza la politica AWS di infrastruttura gestita, è necessario `RoleName` impostarla in modo esplicito su un valore che inizia con. `ecsInstanceRole` Se ometti`RoleName`, CloudFormation genera automaticamente un nome che non corrisponde alla `iam:PassRole` condizione della policy gestita e le attività non vengono avviate.

```
Resources:
  EcsInstanceRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: ecsInstanceRole
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: ec2.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances

  EcsInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      InstanceProfileName: ecsInstanceRole
      Roles:
        - !Ref EcsInstanceRole
```

### Opzione 2: utilizza un nome di ruolo personalizzato
<a name="create-instance-profile-cfn-custom"></a>

Se preferisci lasciare che venga CloudFormation generato il nome del ruolo o utilizzi un nome personalizzato che non inizi con`ecsInstanceRole`, devi aggiungere una policy in linea al tuo ruolo di infrastruttura che `iam:PassRole` conceda il ruolo dell'istanza.

```
Resources:
  EcsInstanceRole:
    Type: AWS::IAM::Role
    Properties:
      # No RoleName — CFN auto-generates
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: ec2.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances

  EcsInstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Roles:
        - !Ref EcsInstanceRole

  EcsInfrastructureRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: ecs.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForManagedInstances
      Policies:
        - PolicyName: PassInstanceRoleToEC2
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action: iam:PassRole
                Resource: !GetAtt EcsInstanceRole.Arn
                Condition:
                  StringLike:
                    iam:PassedToService: "ec2.*"
```

## Risoluzione dei problemi
<a name="managed-instances-instance-profile-troubleshooting"></a>

### Le attività falliscono con iam: PassRole errore di autorizzazione
<a name="managed-instances-instance-profile-ts-passrole"></a>

Se le tue attività falliscono con una `ResourceInitializationError` menzione`iam:PassRole`, verifica che il nome del ruolo dell'istanza inizi con`ecsInstanceRole`. Puoi controllare il nome generato automaticamente nella CloudFormation console nella scheda **Risorse** del tuo stack. Se il nome non corrisponde, puoi anche:
+ Aggiungi `RoleName: ecsInstanceRole` alla tua `AWS::IAM::Role` risorsa.
+ Aggiungi una policy in `iam:PassRole` linea esplicita al tuo ruolo di infrastruttura. Per ulteriori informazioni, consulta [Opzione 2: utilizza un nome di ruolo personalizzato](#create-instance-profile-cfn-custom).