授予使用者EMR對 Amazon 的存取權 EKS - Amazon EMR

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

授予使用者EMR對 Amazon 的存取權 EKS

對於您在 Amazon EMR 上執行的任何動作EKS,您都需要該動作的對應IAM許可。您必須建立一個IAM政策,讓您執行 Amazon EMR 的EKS動作,並將該政策附加到您使用的使用IAM者或角色。

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

建立新IAM原則並將其附加至IAM主控台中的使用者

建立新IAM策略
  1. 登入 AWS Management Console 並開啟IAM主控台,位於https://console.aws.amazon.com/iam/

  2. 在IAM主控台的左側導覽窗格中,選擇 [原則]。

  3. Policies (政策) 頁面上,選擇 Create a policy (建立政策)。

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

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

將政策附接至使用者或角色
  1. 登入 AWS Management Console 並開啟IAM主控台,網址為:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇政策

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

  4. 選擇政策動作,再選擇附加

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

用於管理虛擬叢集的許可

若要管理 AWS 帳戶中的虛擬叢集,請建立具有下列權限的IAM原則。這些權限可讓您建立、列出、描述和刪除 AWS 帳戶中的虛擬叢集。

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

Amazon EMR 與 Amazon EKS 叢集存取管理 (CAM) 整合,因此您可以自動設定必要的 AuthN 和 AuthZ 政策,以便在 Amazon 叢集的命名空間中執行 Amazon EMR Spark 任務。EKS若要這麼做,您必須具備下列權限:

{ "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

第一次從 AWS 帳戶叫用CreateVirtualCluster操作時,您還需要CreateServiceLinkedRole許可以為 Amazon EMR on EKS 建立服務連結角色。如需詳細資訊,請參閱使用 Amazon EMR on EKS 的服務連結角色

用於提交作業的許可

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

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

用於偵錯和監控的許可

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

重要

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

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

有關如何設定任務執行以將日誌推送到 Amazon S3 的詳細資訊 CloudWatch,請參閱設定任務執行以使用 S3 日誌設定任務執行以使用 CloudWatch 日誌