

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 実行 IAM ポリシー。
<a name="jobs-cli-execution"></a>

EMR Serverless でジョブ実行を送信する時に、実行ロールに加えて実行 IAM ポリシーを指定できます。ジョブ実行によって引き受けられるアクセス許可は、実行ロールのアクセス許可と指定された実行 IAM ポリシーの共通部分です。

## 開始方法
<a name="jobs-cli-execution-getting-started"></a>

実行 IAM ポリシーを使用する手順:

`emr-serverless` アプリケーションを作成するか、既存のアプリケーションを使用して、以下の aws cli を実行して、インライン IAM ポリシーでジョブ実行を開始します:

```
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"}'
```

## CLI コマンドの例
<a name="jobs-cli-execution-examples"></a>

以下のポリシーがマシンの `policy.json` ファイルに格納されている場合:

------
#### [ 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"
    }
  ]
}
```

------

その後、次の AWS CLI コマンドを使用して、このポリシーでジョブを開始できます。

```
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)'
      }'
```

 AWS とカスタマー管理ポリシーの両方を使用し、ARNsを通じて指定することもできます。

```
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"
          ]
    }'
```

同じリクエストでインライン IAM ポリシーとマネージドポリシー ARN の両方を指定することもできます:

```
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"
          ]
      }'
```

## 重要な注意事項
<a name="jobs-cli-execution-important-notes"></a>
+ `execution-role-policy` の `policy` フィールドの最大長は 2048 文字です。
+ `execution-iam-policy` の `policy`フィールドで指定されたインライン IAM ポリシー文字列は、json 文字列標準に準拠する必要があります。前の例のように改行や引用符はエスケープされません。
+ 最大 10 個の管理ポリシー ARNs のリストは、`execution-iam-policy` の `policyArns` フィールドの値として指定できます。
+ 管理ポリシー ARNs は、有効な AWS またはカスタマー管理ポリシー ARN のリストである必要があります。カスタマー管理ポリシー ARN を指定する場合、ポリシーは EMR-S JobRun の同じ AWS アカウントに属している必要があります。
+ インライン IAM ポリシーと 管理ポリシーの両方を使用する場合、インラインポリシーと 管理ポリシーの組み合わせに使用するプレーンテキストは 2,048 文字を超えることはできません。
+ JobRun によって引き受けられるアクセス許可は、実行ロールのアクセス許可と指定された実行 IAM ポリシーの共通部分です。

## ポリシーの交差
<a name="jobs-cli-execution-policy-intersection"></a>

ジョブ実行によって引き受けられるアクセス許可は、実行ロールのアクセス許可と指定された実行 IAM ポリシーの共通部分です。つまり、JobRun を機能させるには、必要なアクセス許可を両方の場所で指定しなければなりません。ただし、更新または上書きする予定のないアクセス許可については、インラインポリシーで追加の一括許可ステートメントを指定できます。

例

以下の実行 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"
    }
  ]
}
```

------

そして以下のインライン IAM ポリシー。

------
#### [ 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"
    }
  ]
}
```

------

JobRun によって引き受けられるアクセス許可は次のとおりです:

------
#### [ 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"
    }
  ]
}
```

------