Amazon EMR Serverless 的作业运行时角色 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EMR Serverless 的作业运行时角色

您可以指定 EMR Serverless 作业运行在代表您调用其他服务时可以代入的 IAM 角色权限。这包括访问任何数据源、目标以及其他 Amazon 资源(例如 Amazon Redshift 集群和 DynamoDB 表)的 Amazon S3。要了解有关如何创建角色的更多信息,请参阅 创建作业运行时角色

运行时策略示例

您可以将运行时策略(如下所示)附加到作业运行时角色。以下作业运行时策略允许:

  • 对包含 EMR 示例的 Amazon S3 存储桶的读取访问权限。

  • 对 S3 存储桶的完全访问权限。

  • 创建并读取 Amazon Glue 数据目录的权限。

要添加对 DynamoDB 等其他 Amazon 资源的访问权限,您需要在创建运行时角色时在策略中包含这些资源的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessForEMRSamples", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*" ] }, { "Sid": "FullAccessToS3Bucket", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GlueCreateAndReadDataCatalog", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDataBases", "glue:CreateTable", "glue:GetTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetUserDefinedFunctions" ], "Resource": ["*"] } ] }

传递角色权限

您可以将 IAM 权限策略附加到用户角色,允许用户仅传递批准的角色。这样,管理员就可以控制哪些用户可以将特定作业运行时角色传递给 EMR Serverless 作业。要了解有关设置权限的更多信息,请参阅向用户授予将角色传递给 Amazon 服务的权限

以下是一个示例策略,该策略允许将作业运行时角色传递给 EMR Serverless 服务主体。

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::1234567890:role/JobRuntimeRoleForEMRServerless", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }

与运行时角色关联的托管权限策略

当您通过 EMR Studio 控制台向 EMR 无服务器提交作业运行时,有一个步骤是选择要与应用程序关联的运行时角色。控制台中的每个选项都有与之相关的底层托管策略,需要注意。三个选项如下:

  1. 所有存储桶 — 当您选择此选项时,它会指定 AmazonS3 FullAccess Amazon 托管策略,该策略提供对所有存储桶的完全访问权限。

  2. 特定存储桶 — 它指定您选择的每个存储桶的 Amazon 资源名称 (ARN) 标识符。不包括底层托管策略。

  3. — 不包括托管策略权限。

我们建议添加特定的存储桶。如果您选择所有存储桶,请记住,它会为所有存储分区设置完全访问权限。