

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Eksekusi kebijakan IAM
<a name="jobs-cli-execution"></a>

Anda dapat menentukan Kebijakan IAM Eksekusi, selain Peran Eksekusi, saat mengirimkan pekerjaan berjalan di EMR Tanpa Server. Izin yang dihasilkan yang diasumsikan oleh job run adalah persimpangan izin dalam Peran Eksekusi dan Kebijakan IAM Eksekusi yang ditentukan.

## Memulai
<a name="jobs-cli-execution-getting-started"></a>

Langkah-langkah untuk menggunakan kebijakan Eksekusi IAM:

Buat `emr-serverless` aplikasi atau gunakan yang sudah ada dan kemudian jalankan aws cli berikut untuk memulai pekerjaan dengan kebijakan IAM sebaris:

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

## Contoh perintah CLI
<a name="jobs-cli-execution-examples"></a>

Jika kami memiliki kebijakan berikut yang disimpan dalam `policy.json` file di mesin:

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

------

Kemudian kita dapat memulai pekerjaan dengan kebijakan ini menggunakan AWS CLI perintah berikut:

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

Anda juga dapat menggunakan keduanya AWS dan kebijakan yang dikelola Pelanggan, menentukannya ARNs melalui:

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

Dimungkinkan untuk menentukan kebijakan IAM sebaris dan kebijakan terkelola ARNs dalam permintaan yang sama juga:

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

## Catatan Penting
<a name="jobs-cli-execution-important-notes"></a>
+ `execution-role-policy``policy`Bidang ini dapat memiliki panjang maksimum 2048 karakter.
+ String kebijakan IAM sebaris yang ditentukan dalam `policy` bidang `execution-iam-policy`'s harus sesuai dengan standar string json, tanpa baris baru dan tanda kutip yang lolos seperti pada contoh sebelumnya.
+ Daftar hingga 10 kebijakan terkelola ARNs dapat ditentukan sebagai nilai pada `execution-iam-policy` `policyArns` bidang.
+ Kebijakan terkelola ARNs harus berupa daftar ARN yang valid AWS atau yang dikelola Nasabah kebijakan ARN, ketika kebijakan yang dikelola Nasabah ARN ditentukan, kebijakan tersebut harus dimiliki oleh AWS akun EMR-S yang sama. JobRun
+ Jika kebijakan IAM sebaris dan kebijakan terkelola digunakan, teks biasa yang Anda gunakan untuk gabungan kebijakan sebaris dan terkelola tidak dapat melebihi 2.048 karakter.
+ Izin yang dihasilkan diasumsikan oleh JobRun adalah persimpangan izin dalam Peran Eksekusi dan Kebijakan IAM Eksekusi yang ditentukan.

## Persimpangan Kebijakan
<a name="jobs-cli-execution-policy-intersection"></a>

Izin yang dihasilkan yang diasumsikan oleh job run adalah persimpangan izin dalam Peran Eksekusi dan Kebijakan IAM Eksekusi yang ditentukan. Yang berarti setiap izin yang diperlukan harus ditentukan di kedua tempat JobRun agar dapat berfungsi. Namun, Anda dapat menentukan pernyataan izin selimut tambahan dalam kebijakan sebaris untuk izin apa pun yang tidak ingin Anda perbarui atau timpa.

Contoh

Mengingat kebijakan peran IAM eksekusi berikut:

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

------

Dan kebijakan IAM inline berikut:

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

------

Izin yang dihasilkan diasumsikan oleh JobRun adalah::

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

------