本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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" } } }