

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon EMR Serverless 的任務執行期角色
<a name="security-iam-runtime-role"></a>

您可以指定 EMR Serverless 任務執行可在代您呼叫其他 服務時擔任的 IAM 角色許可。這包括存取 Amazon S3 的任何資料來源、目標，以及其他 AWS 資源，例如 Amazon Redshift 叢集和 DynamoDB 資料表。若要進一步了解如何建立角色，請參閱 [建立任務執行期角色](getting-started.md#gs-runtime-role)。

**範例執行時間政策**

您可以將執行期政策，例如下列政策連接至任務執行期角色。下列任務執行時間政策允許：
+ 使用 EMR 範例讀取 Amazon S3 儲存貯體的存取權。
+ 完整存取 S3 儲存貯體。
+ 建立和讀取 Glue Data Catalog AWS 的存取權。

若要新增對其他資源的存取權，例如 DynamoDB，您需要在建立執行時間角色時，在政策中包含這些 AWS 資源的許可。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ReadAccessForEMRSamples",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::*.elasticmapreduce",
        "arn:aws:s3:::*.elasticmapreduce/*"
      ]
    },
    {
      "Sid": "FullAccessToS3Bucket",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
        "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
      ]
    },
    {
      "Sid": "GlueCreateAndReadDataCatalog",
      "Effect": "Allow",
      "Action": [
        "glue:GetDatabase",
        "glue:CreateDatabase",
        "glue:GetDataBases",
        "glue:CreateTable",
        "glue:GetTable",
        "glue:UpdateTable",
        "glue:DeleteTable",
        "glue:GetTables",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:CreatePartition",
        "glue:BatchCreatePartition",
        "glue:GetUserDefinedFunctions"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

**傳遞角色權限**

您可以將 IAM 許可政策連接至使用者的角色，以允許使用者只傳遞已核准的角色。這可讓管理員控制哪些使用者可以將特定任務執行期角色傳遞給 EMR Serverless 任務。若要進一步了解如何設定許可，請參閱[授予使用者將角色傳遞至 AWS 服務的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)。

以下是允許將任務執行期角色傳遞給 EMR Serverless 服務主體的範例政策。

```
{
     "Effect": "Allow",
     "Action": "iam:PassRole",
     "Resource": "arn:aws:iam::1234567890:role/JobRuntimeRoleForEMRServerless",
        "Condition": {
                "StringLike": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com"
                }
            }
}
```

## 與執行期角色相關聯的受管許可政策
<a name="security-iam-user-access-policies-permissions"></a>

當您透過 EMR Studio 主控台將任務執行提交至 EMR Serverless 時，有一個步驟可讓您選擇要與應用程式建立關聯的**執行期角色**。主控台中的每個選擇都有相關的基礎受管政策，請務必注意這些政策。三個選項如下：

1. **所有儲存貯**體 – 當您選擇此選項時，它會指定 [AmazonS3FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3FullAccess.html) AWS 受管政策，提供所有儲存貯體的完整存取權。

1. **特定儲存貯**體 – 這會指定您選擇的每個儲存貯體的 Amazon 資源名稱 (ARN) 識別符。不包含基礎 受管政策。

1. **無** – 不包含受管政策許可。

我們建議新增特定儲存貯體。如果您選擇所有儲存貯體，請記住，它會設定所有儲存貯體的完整存取權。