

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

# Esecuzione della politica IAM
<a name="jobs-cli-execution"></a>

È possibile specificare una policy IAM di esecuzione, oltre a un ruolo di esecuzione, quando si inviano job run su EMR Serverless. Le autorizzazioni risultanti assunte dall'esecuzione del job sono l'intersezione delle autorizzazioni nell'Execution Role e nella Execution IAM Policy specificata.

## Nozioni di base
<a name="jobs-cli-execution-getting-started"></a>

Passaggi per utilizzare la politica Execution IAM:

Crea un'`emr-serverless`applicazione o usane una esistente, quindi esegui la seguente riga di comando aws per avviare un job run con una policy IAM in linea:

```
aws emr-serverless start-job-run --region us-west-2 \
      --application-id application-id \
      --execution-role-arn execution-role-arn \
      --job-driver job-driver-options \
      --execution-iam-policy '{"policy": "inline-policy"}'
```

## Esempi di comandi CLI
<a name="jobs-cli-execution-examples"></a>

Se abbiamo la seguente politica memorizzata nel `policy.json` file sul computer:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-test-bucket",
        "arn:aws:s3:::my-test-bucket/*"
      ],
      "Sid": "AllowS3Getobject"
    }
  ]
}
```

------

Quindi possiamo iniziare un lavoro con questa politica usando il seguente AWS CLI comando:

```
aws emr-serverless start-job-run --region us-west-2 \
      --application-id application-id \
      --execution-role-arn execution-role-arn \
      --job-driver job-driver-options
      --execution-iam-policy '{
          "policy": '$(jq -c '. | @json' policy.json)'
      }'
```

Puoi anche utilizzare entrambe AWS le politiche gestite dal cliente, specificandole ARNs tramite:

```
aws emr-serverless start-job-run --region us-west-2 \
      --application-id application-id \
      --execution-role-arn execution-role-arn \
      --job-driver job-driver-options
      --execution-iam-policy '{
          "policyArns": [
          "arn:aws:iam::aws:policy/AmazonS3FullAccess",
          "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess"
          ]
    }'
```

È possibile specificare sia una policy IAM in linea che una policy gestita ARNs nella stessa richiesta:

```
aws emr-serverless start-job-run --region us-west-2 \
      --application-id application-id \
      --execution-role-arn execution-role-arn \
      --job-driver job-driver-options
      --execution-iam-policy '{
          "policy": '$(jq -c '. | @json' policy.json)',
          "policyArns": [
          "arn:aws:iam::aws:policy/AmazonS3FullAccess",
          "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess"
          ]
      }'
```

## Note importanti
<a name="jobs-cli-execution-important-notes"></a>
+ Il `policy` campo `execution-role-policy`'s può avere una lunghezza massima di 2048 caratteri.
+ La stringa di policy IAM in linea specificata nel `policy` campo `execution-iam-policy`'s deve essere conforme allo standard delle stringhe json, senza che vengano evitate nuove righe e virgolette come nell'esempio precedente.
+ È ARNs possibile specificare un elenco di un massimo di 10 policy gestite come valore nel campo's. `execution-iam-policy` `policyArns`
+ La policy gestita ARNs deve essere un elenco di ARN di policy gestite dal cliente valide AWS o gestite dal cliente. Quando viene specificato un ARN di policy gestita dal cliente, la policy deve appartenere allo stesso AWS account dell'EMR-S. JobRun
+ Quando vengono utilizzate sia la policy IAM in linea che le policy gestite, il testo semplice utilizzato per la combinazione delle policy inline e gestite non può superare i 2.048 caratteri.
+ Le autorizzazioni risultanti assunte da sono l'intersezione delle JobRun autorizzazioni nell'Execution Role e nella Execution IAM Policy specificata.

## Intersezione delle politiche
<a name="jobs-cli-execution-policy-intersection"></a>

Le autorizzazioni risultanti assunte dall'esecuzione del job sono l'intersezione delle autorizzazioni nell'Execution Role e nella Execution IAM Policy specificata. Ciò significa che qualsiasi autorizzazione richiesta dovrà essere specificata in entrambi i luoghi per JobRun funzionare. Tuttavia, è possibile specificare un'ulteriore dichiarazione di autorizzazione generale nella politica in linea per tutte le autorizzazioni che non intendi aggiornare o sovrascrivere.

Esempio

Data la seguente politica di esecuzione del ruolo IAM:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowS3"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:us-west-2:123456789012:log-group::log-stream"
      ],
      "Sid": "AllowLOGSDescribeloggroups"
    },
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:DescribeTable"
      ],
      "Resource": [
        "arn:aws:dynamodb:*:*:table/MyCompany1table"
      ],
      "Sid": "AllowDYNAMODBDescribetable"
    }
  ]
}
```

------

E la seguente politica IAM in linea:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-test-bucket/tenant1",
        "arn:aws:s3:::my-test-bucket/tenant1/*"
      ],
      "Sid": "AllowS3Getobject"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:*",
        "dynamodb:*"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowLOGS"
    }
  ]
}
```

------

Le autorizzazioni risultanti assunte da JobRun sono:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-test-bucket/tenant1",
        "arn:aws:s3:::my-test-bucket/tenant1/*"
      ],
      "Sid": "AllowS3Getobject"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:us-west-2:123456789012:log-group::log-stream"
      ],
      "Sid": "AllowLOGSDescribeloggroups"
    },
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:DescribeTable"
      ],
      "Resource": [
        "arn:aws:dynamodb:*:*:table/MyCompany1table"
      ],
      "Sid": "AllowDYNAMODBDescribetable"
    }
  ]
}
```

------