

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

# 授予使用者對 Amazon EMR on EKS 的存取權
<a name="setting-up-iam"></a>

對於您在 Amazon EMR on EKS 上執行的任何動作，您需要該動作的對應 IAM 許可。必須建立 IAM 政策，以便執行 Amazon EMR on EKS 動作，並將政策附接至您使用的 IAM 使用者或角色。

本主題提供建立新政策並將其附接至使用者的步驟。它還涵蓋了設定 Amazon EMR on EKS 環境所需的基本許可。建議您根據業務需求，盡可能完善特定資源的許可。

## 在 IAM 主控台中建立新的 IAM 政策並將其附接至使用者
<a name="setting-up-iam-console"></a>

**建立新的 IAM 政策**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在 IAM 主控台的左側導覽窗格中，選擇**政策**。

1. 在 **Policies** (政策) 頁面上，選擇 **Create a policy** (建立政策)。

1. 在**建立政策**視窗中，導覽至**編輯 JSON** 索引標籤。建立具有一個或多個 JSON 陳述式的政策文件，如此程序後面的範例所示。接下來，選擇**檢閱政策**。

1. 在 **Review Policy** (檢閱政策) 畫面上，輸入 **Policy Name** (政策名稱)，例如 `AmazonEMROnEKSPolicy`。輸入選用描述，然後選擇**建立政策**。

**將政策附接至使用者或角色**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台 

1. 在導覽窗格中，選擇**政策**。

1. 在政策清單中，選取在上一節中建立的政策旁的核取方塊。您可用**篩選**功能表和搜尋方塊來篩選政策清單。

1. 選擇**政策動作**，再選擇**附加**。

1. 選擇要與政策附接的使用者或角色。您可用**篩選**功能表和搜尋方塊來篩選主體實體清單。選擇要與政策附接的使用者或角色後，選擇**附接政策**。

## 用於管理虛擬叢集的許可
<a name="permissions-virtual-cluster"></a>

若要管理 AWS 帳戶中的虛擬叢集，請使用下列許可建立 IAM 政策。這些許可可讓您在 AWS 帳戶中建立、列出、描述和刪除虛擬叢集。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateServiceLinkedRole"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "emr-containers.amazonaws.com"
        }
      },
      "Sid": "AllowIAMCreateservicelinkedrole"
    },
    {
      "Effect": "Allow",
      "Action": [
        "emr-containers:CreateVirtualCluster",
        "emr-containers:ListVirtualClusters",
        "emr-containers:DescribeVirtualCluster",
        "emr-containers:DeleteVirtualCluster"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEMRCONTAINERSCreatevirtualcluster"
    }
  ]
}
```

------

Amazon EMR 已與 Amazon EKS 叢集存取管理 (CAM) 整合，因此您可以自動設定必要的 AuthN 和 AuthZ 政策，以在 Amazon EKS 叢集命名空間中執行 Amazon EMR Spark 任務。若要這樣做，您必須具有下列許可：

```
{
  "Effect": "Allow",
  "Action": [
    "eks:CreateAccessEntry"
  ],
  "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:cluster/<EKS_CLUSTER_NAME>"
}, 
{
  "Effect": "Allow",
  "Action": [
    "eks:DescribeAccessEntry",
    "eks:DeleteAccessEntry",
    "eks:ListAssociatedAccessPolicies",
    "eks:AssociateAccessPolicy",
    "eks:DisassociateAccessPolicy"
  ],
  "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:access-entry/<EKS_CLUSTER_NAME>/role/<AWS_ACCOUNT_ID>/AWSServiceRoleForAmazonEMRContainers/*"
}
```

如需詳細資訊，請參閱[自動啟用 Amazon EMR on EKS 的叢集存取](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-cluster-access.html#setting-up-cluster-access-cam-integration)。

第一次從 AWS 帳戶叫用 `CreateVirtualCluster`操作時，您也需要`CreateServiceLinkedRole`許可才能為 Amazon EMR on EKS 建立服務連結角色。如需詳細資訊，請參閱[使用 Amazon EMR on EKS 的服務連結角色](using-service-linked-roles.md)。

## 用於提交作業的許可
<a name="permissions-submitting-jobs"></a>

若要在 AWS 帳戶中的虛擬叢集上提交任務，請使用下列許可建立 IAM 政策。這些許可可讓您啟動、列出、描述和取消帳戶中所有虛擬叢集的作業執行。應該考慮新增許可以列出或描述虛擬叢集，這可讓您在提交作業之前檢查虛擬叢集的狀態。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-containers:StartJobRun",
        "emr-containers:ListJobRuns",
        "emr-containers:DescribeJobRun",
        "emr-containers:CancelJobRun"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEMRCONTAINERSStartjobrun"
    }
  ]
}
```

------

## 用於偵錯和監控的許可
<a name="permissions-debugging-monitoring"></a>

若要存取推送到 Amazon S3 和 CloudWatch 的日誌，或在 Amazon EMR 主控台中檢視應用程式事件日誌，請建立具有下列許可的 IAM 政策。建議您根據業務需求，盡可能完善特定資源的許可。

**重要**  
如果尚未建立 Amazon S3 儲存貯體，則需要將 `s3:CreateBucket` 許可新增至政策陳述式。如果尚未建立日誌群組，則需要將 `logs:CreateLogGroup` 新增至政策陳述式。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-containers:DescribeJobRun",
        "elasticmapreduce:CreatePersistentAppUI",
        "elasticmapreduce:DescribePersistentAppUI",
        "elasticmapreduce:GetPersistentAppUIPresignedURL"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEMRCONTAINERSDescribejobrun"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowS3Getobject"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:Get*",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowLOGSGet"
    }
  ]
}
```

------

如需有關如何設定作業執行以將日誌推入 Amazon S3 和 CloudWatch 的詳細資訊，請參閱[設定作業執行以使用 S3 日誌](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3)和[設定作業執行以使用 CloudWatch 日誌](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch)。