本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立作業執行角色
若要在 Amazon EMR on EKS 上執行工作負載,您需要建立 IAM 角色。在本文件中,我們將此角色稱為作業執行角色。如需有關如何建立 IAM 角色的詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 角色。
您還必須建立 IAM 政策來指定作業執行角色的許可,然後將 IAM 政策附接至作業執行角色。
作業執行角色的下列政策允許存取資源目標、Amazon S3 和 CloudWatch。這些許可是監控作業和存取日誌所必需的。若要使用 遵循相同的程序 AWS CLI:
建立任務執行的 IAM 角色:讓我們建立 EMR 將用於任務執行的角色。這是 角色,EMR 任務將在 EKS 上執行時擔任。
cat <<EoF > ~/environment/emr-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EoF aws iam create-role --role-name EMRContainers-JobExecutionRole --assume-role-policy-document file://~/environment/emr-trust-policy.json
接下來,我們需要將必要的 IAM 政策連接到角色,以便它可以將日誌寫入 s3 和 cloudwatch。
cat <<EoF > ~/environment/EMRContainers-JobExecutionRole.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] } EoF aws iam put-role-policy --role-name EMRContainers-JobExecutionRole --policy-name EMR-Containers-Job-Execution --policy-document file://~/environment/EMRContainers-JobExecutionRole.json
注意
應適當確定存取權限的範圍,而不是授予給作業執行角色中的所有 S3 物件。
如需詳細資訊,請參閱使用作業執行角色、設定作業執行以使用 S3 日誌以及設定作業執行以使用 CloudWatch 日誌。