本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予使用者EMR對 Amazon 的存取權 EKS
對於您在 Amazon EMR 上執行的任何動作EKS,您都需要該動作的對應IAM許可。您必須建立一個IAM政策,讓您執行 Amazon EMR 的EKS動作,並將該政策附加到您使用的使用IAM者或角色。
本主題提供建立新政策並將其附接至使用者的步驟。它還涵蓋了EMR在EKS環境上設置 Amazon 所需的基本許可。建議您根據業務需求,盡可能完善特定資源的許可。
建立新IAM原則並將其附加至IAM主控台中的使用者
建立新IAM策略
-
登入 AWS Management Console 並開啟IAM主控台,位於https://console.aws.amazon.com/iam/
。 -
在IAM主控台的左側導覽窗格中,選擇 [原則]。
-
在 Policies (政策) 頁面上,選擇 Create a policy (建立政策)。
-
在「建立原則」視窗中,瀏覽至 JSON「編輯」索引標籤。建立具有一或多個JSON陳述式的政策文件,如此程序後面的範例所示。接下來,選擇檢閱政策。
-
在 Review Policy (檢閱政策) 畫面上,輸入 Policy Name (政策名稱),例如
AmazonEMROnEKSPolicy
。輸入選用描述,然後選擇建立政策。
將政策附接至使用者或角色
-
登入 AWS Management Console 並開啟IAM主控台,網址為: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 和 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 日誌。