EMR无服务器的用户访问策略示例 - Amazon EMR

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

EMR无服务器的用户访问策略示例

您可以根据您希望每个用户在与EMR无服务器应用程序交互时执行的操作,为用户设置精细的策略。以下策略是可能有助于为用户设置正确权限的示例。本节仅重点介绍EMR无服务器策略。有关 EMR Studio 用户策略的示例,请参阅配置 EMR Studio 用户权限。有关如何向IAM用户(委托人)附加策略的信息,请参阅IAM用户指南中的管理IAM策略

高级用户政策

要向 EMR Serverless 授予所有必需的操作,请创建AmazonEMRServerlessFullAccess策略并将其附加到所需的IAM用户、角色或组。

以下是允许高级用户创建和修改EMR无服务器应用程序,以及执行其他操作(例如提交和调试作业)的策略示例。它揭示了 EMR Serverless 需要对其他服务执行的所有操作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun" ], "Resource": "*" } ] }

当您启用与您的网络连接时VPC,EMR无服务器应用程序会创建 Amazon EC2 弹性网络接口 (ENIs) 来与VPC资源通信。以下策略确保所有新内容EC2ENIs都只能在EMR无服务器应用程序的上下文中创建。

注意

我们强烈建议您设置此政策,以确保用户EC2ENIs只能在启动EMR无服务器应用程序的情况下进行创建。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com" } } } }

如果要限制对某些子网的EMR无服务器访问,则可以使用标记条件标记每个子网。此IAM策略可确保EMR无服务器应用程序只能EC2ENIs在允许的子网内创建。

{ "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/KEY": "VALUE" } } }
重要

如果您是创建第一个应用程序的管理员或高级用户,则必须配置权限策略以允许您创建EMR无服务器服务相关角色。要了解更多信息,请参阅 在无服务器中使用服务相关角色 EMR

以下IAM策略允许您为账户创建EMR无服务器服务相关角色。

{ "Sid":"AllowEMRServerlessServiceLinkedRoleCreation", "Effect":"Allow", "Action":"iam:CreateServiceLinkedRole", "Resource":"arn:aws:iam::account-id:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless" }

数据工程师政策

以下是一个策略示例,它允许用户拥有EMR无服务器应用程序的只读权限,以及提交和调试作业的能力。请记住,由于此策略不会明确拒绝操作,因此仍可使用其它策略声明来授予对指定操作的访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun" ], "Resource": "*" } ] }

使用标签进行访问控制

您可以使用标签条件进行精细的访问控制。例如,您可以限制来自一个团队的用户,使他们只能向标有团队名称的EMR无服务器应用程序提交作业。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Team": "team-name" } } } ] }