Amazon EMR Serverless 的 Job 运行时角色 - Amazon EMR

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

Amazon EMR Serverless 的 Job 运行时角色

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

运行时策略示例

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

  • 阅读带EMR示例的 Amazon S3 存储桶访问权限。

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

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

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

{ "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 作业。要了解有关设置权限的更多信息,请参阅向用户授予将角色传递给 AWS 服务的权限

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

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