本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予使用者對 Amazon EMR on EKS 的存取權
對於您在 Amazon EMR on EKS 上執行的任何動作,您需要該動作的對應 IAM 許可。必須建立 IAM 政策,以便執行 Amazon EMR on EKS 動作,並將政策附接至您使用的 IAM 使用者或角色。
本主題提供建立新政策並將其附接至使用者的步驟。它還涵蓋了設定 Amazon EMR on EKS 環境所需的基本許可。建議您根據業務需求,盡可能完善特定資源的許可。
在 IAM 主控台中建立新的 IAM 政策並將其附接至使用者
建立新的 IAM 政策
-
登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/
。 -
在 IAM 主控台的左側導覽窗格中,選擇政策。
-
在 Policies (政策) 頁面上,選擇 Create a policy (建立政策)。
-
在建立政策視窗中,導覽至編輯 JSON 索引標籤。建立具有一個或多個 JSON 陳述式的政策文件,如此程序後面的範例所示。接下來,選擇檢閱政策。
-
在 Review Policy (檢閱政策) 畫面上,輸入 Policy Name (政策名稱),例如
AmazonEMROnEKSPolicy
。輸入選用描述,然後選擇建立政策。
將政策附接至使用者或角色
-
登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/
-
在導覽窗格中,選擇政策。
-
在政策清單中,選取在上一節中建立的政策旁的核取方塊。您可用篩選功能表和搜尋方塊來篩選政策清單。
-
選擇政策動作,再選擇附加。
-
選擇要與政策附接的使用者或角色。您可用篩選功能表和搜尋方塊來篩選主體實體清單。選擇要與政策附接的使用者或角色後,選擇附接政策。
用於管理虛擬叢集的許可
若要管理 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 和驗證碼政策,以便在 Amazon EKS 叢集的命名空間中執行 Amazon EMR Spark 任務。若要這麼做,您必須具備下列權限:
{ "Effect": "Allow", "Action": [ "eks:DescribeAccessEntry", "eks:CreateAccessEntry", "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:AssociateAccessPolicy", "eks:DisassociateAccessPolicy" ], "Resource": "*" }
如需詳細資訊,請參閱在 EKS 上自動啟用 Amazon EMR 的叢集存取。
第一次從 AWS 帳戶叫用CreateVirtualCluster
操作時,您還需要獲得CreateServiceLinkedRole
許可,才能在 EKS 上為 Amazon EMR 建立服務連結角色。如需詳細資訊,請參閱 使用 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 日誌。