Amazon EMR 托管式策略 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon EMR 托管式策略

授予对所需 Amazon EMR 操作的完全访问权限或只读访问权限的最简单方式是使用适用于 Amazon EMR 的 IAM 托管式策略。托管式策略提供了在权限要求发生更改时自动更新的好处。如果您使用内联策略,则可能出现导致权限错误的服务更改。

Amazon EMR 将弃用现有托管式策略(v1 策略)以支持新的托管策略(v2 策略)。新的托管策略已经缩小了范围,以符合 Amazon 最佳实践。弃用现有 v1 托管式策略之后,您将无法将这些策略附加到任何新的 IAM 角色或用户。现有角色和使用弃用策略的用户可以继续使用它们。v2 托管式策略使用标签限制访问。它们仅允许指定的 Amazon EMR 操作,并需要使用 EMR 特定密钥标记的集群资源。我们建议您在使用新的 v2 策略之前仔细阅读文档。

在 IAM 控制台的策略列表中,v1 策略将被标记为已弃用,并在其旁边显示一个警告图标。已弃用的策略具有以下特征:

  • 该策略继续为所有当前附加的用户、组和角色工作。什么都不会中断。

  • 该策略不能附加到任何新的用户、组或角色。该策略若与当前实体分离,则不能重新附加。

  • 从所有当前实体分离 v1 策略后,该策略将不再可见且无法再使用。

下表总结了当前策略 (v1) 与 v2 策略之间的更改。

亚马逊 EMR 托管政策变更
策略类型 策略名称 策略目的 对 v2 策略的更改

默认 EMR 服务角色和附加的托管式策略

角色名称:EMR_ DefaultRole

V1 策略(待弃用):AmazonElasticMapReduce角色(EMR 服务角色

v2(缩小范围)策略名称:AmazonEMRServicePolicy_v2

允许 Amazon EMR 在配置资源和执行 Amazon 服务级别操作时代表您调用其他服务。所有集群都需要该角色。

策略添加了新权限"ec2:DescribeInstanceTypeOfferings"。此 API 操作返回给定可用区列表所支持的实例类型列表。

IAM 托管策略允许关联的用户、角色或群组完全访问 Amazon EMR

V2(范围)策略名称:AmazonEMRServicePolicy_v2

允许用户执行 EMR 操作的完全权限。包括 ia PassRole m:资源权限。

策略添加了一个先决条件,即用户必须将用户标记添加到资源,然后才能使用此策略。请参阅 标记资源以使用托管式策略

iam: PassRole 操作需要将 ia PassedToService m: 条件设置为指定服务。默认情况下,不允许访问 Amazon EC2、Amazon S3 和其它服务。请参阅用于完全访问的 IAM 托管式策略(v2 托管默认策略)

IAM 托管式策略,用于通过附加的用户、角色或组只读访问 EMR

V1 策略(将被弃用):AmazonElasticMapReduceReadOnlyAccess

V2(范围)策略名称:AmazonEMRReadOnlyAccessPolicy_v2

允许用户执行 Amazon EMR 操作的只读权限。

权限只允许指定的 elasticmapreduce 只读操作。默认情况下,不允许访问 Amazon S3。请参阅用于只读访问的 IAM 托管式策略(v2 托管默认策略)

默认 EMR 服务角色和附加的托管式策略

角色名称:EMR_ DefaultRole

V1 策略(待弃用):AmazonElasticMapReduce角色(EMR 服务角色

v2(缩小范围)策略名称:AmazonEMRServicePolicy_v2

允许 Amazon EMR 在配置资源和执行 Amazon 服务级别操作时代表您调用其他服务。所有集群都需要该角色。

v2 服务角色和 v2 默认策略将替换已弃用的角色和策略。策略添加了一个先决条件,即用户必须将用户标记添加到资源,然后才能使用此策略。请参阅标记资源以使用托管式策略。请参阅 Amazon EMR 的服务角色(EMR 角色)

集群 EC2 实例(EC2 实例配置文件)的服务角色

V1 策略(待弃用):EMR_ DefaultRole EC2_(实例配置文件)

已弃用的策略名称:AmazonElasticMapReduceforec2Role

允许在 EMR 集群上运行的应用程序访问其它 Amazon 资源,例如 Amazon S3。如果您运行处理来自 Amazon S3 的数据的 Apache Spark 任务,则策略需要允许访问此类资源。

默认角色和默认策略都将逐渐被弃用。没有替代的 Amazon 默认托管角色或策略。您需要提供基于资源或基于身份的策略。这意味着,默认情况下,在 EMR 集群上运行的应用程序无权访问 Amazon S3 或其它资源,除非您手动将其添加到策略中。请参阅 默认角色和托管式策略

其它 EC2 服务角色策略

当前策略名称:AmazonElasticMapReduceforAutoScaling角色、 AmazonElasticMapReduceEditorsRole、AmazonEMR CleanupPolicy

提供 Amazon EMR 在使用自动扩展、笔记本或清理 EC2 Amazon 资源时访问其他资源和执行操作所需的权限。

对 v2 没有更改。

保护 iam:PassRole

Amazon EMR 完全权限默认托管策略包含 iam:PassRole 安全配置,包括以下内容:

  • iam:PassRole 权限仅适用于特定默认 Amazon EMR 角色。

  • iam:PassedToService允许您仅将策略用于指定 Amazon 服务(例如elasticmapreduce.amazonaws.com和)的条件ec2.amazonaws.com

你可以在 IAM 控制台中查看 Amazonemr FullAccess policy_v2 和 Amazonemr _v2 政策的 JSON 版本。ServicePolicy建议您使用 v2 托管式策略创建新的集群。

要创建自定义策略,建议您从托管式策略开始,然后根据您的需求编辑这些策略。

有关如何将策略附加到用户(主体)的信息,请参阅《IAM 用户指南》中的通过 Amazon Web Services Management Console使用托管式策略

标记资源以使用托管式策略

Amazonemr ServicePolicy _v2AmazonEMR P FullAccess olicy_v2 取决于对亚马逊 EMR 配置或使用的资源的限定访问权限。缩小范围是通过限制对那些具有预定义用户标签关联的资源的访问权限来实现的。当您使用这两个策略中的任何一个时,您必须在配置集群时传递预定义的用户标签 for-use-with-amazon-emr-managed-policies = true。然后,Amazon EMR 将自动传播该标签。此外,您必须将用户标签添加到以下部分中列出的资源。如果您使用 Amazon EMR 控制台启动集群,请参阅 使用 Amazon EMR 控制台启动具有 v2 托管式策略的集群的注意事项

若要使用托管策略,在使用 CLI、SDK 或其他方法配置集群时传递用户标签 for-use-with-amazon-emr-managed-policies = true

当您传递标签时,Amazon EMR 会将标签传播到它创建的私有子网 ENI、EC2 实例和 EBS 卷。Amazon EMR 还会自动为其创建的安全组添加标签。但是,如果您希望 Amazon EMR 与特定安全组一起启动,则必须对其进行标记。对于非 Amazon EMR 创建的资源,您必须向这些资源添加标签。例如,您必须标记 Amazon EC2 子网、EC2 安全组(如果不是由 Amazon EMR 创建)和 VPC(如果您希望 Amazon EMR 创建安全组)。要在 VPC 中启动具有 v2 托管式策略的集群,必须使用预定义的用户标签标记这些 VPC。请参阅使用 Amazon EMR 控制台启动具有 v2 托管式策略的集群的注意事项

传播用户指定的标记

Amazon EMR 使用您在创建集群时指定的 Amazon EMR 标签来标记其创建的资源。Amazon EMR 将标签应用于它在集群生命周期内创建的资源。

Amazon EMR 传播以下资源的用户标签:

  • 私有子网 ENI(服务访问弹性网络接口)

  • EC2 实例

  • EBS 卷

  • EC2 启动模板

自动标记的安全组

Amazon EMR 使用 Amazon EMR 的 v2 托管式策略所需的标签 for-use-with-amazon-emr-managed-policies 标记它创建的 EC2 安全组,而无论您在创建集群命令中指定哪些标签。对于在引入 v2 托管式策略之前创建的安全组,Amazon EMR 不会自动标记。如果要对账户中已存在的默认安全组使用 v2 托管式策略,则需要使用 for-use-with-amazon-emr-managed-policies = true 手动标记安全组。

手动标记的集群资源

您必须手动标记一些集群资源,以便 Amazon EMR 默认角色可以访问。

  • 您必须使用 Amazon EMR 托管式策略标签 for-use-with-amazon-emr-managed-policies 手动标记 EC2 安全组和 EC2 子网。

  • 如果您希望 Amazon EMR 创建默认安全组,则必须手动标记 VPC。如果默认安全组不存在,EMR 将尝试使用特定标记创建安全组。

Amazon EMR 会自动为以下资源添加标签:

  • EMR 创建的 EC2 安全组

您必须手动为以下资源添加标签:

  • EC2 子网

  • EC2 安全组

(可选)您可以手动为以下资源添加标签:

  • VPC – 仅当您希望 Amazon EMR 创建安全组时

使用 Amazon EMR 控制台启动具有 v2 托管式策略的集群的注意事项

您可以使用 Amazon EMR 控制台预置具有 v2 托管式策略的集群。以下是您使用控制台启动 Amazon EMR 集群时的一些注意事项。

注意

我们重新设计了 Amazon EMR 控制台。自动标记功能在新控制台中尚不可用,新控制台也不会向您显示哪些资源(VPC/子网)需要标记。请参阅 亚马逊 EMR 控制台,以了解有关新旧控制台体验差异的更多信息。

  • 您不需要传递预定义标签。Amazon EMR 会自动添加标签并将其传播到恰当组件。

  • 对于需要手动标记的组件,如果您具有标记资源所需的权限,Amazon EMR 旧控制台会尝试自动标记这些组件。如果您没有标记资源的权限或如果您想使用新控制台,请让管理员标记这些资源。

  • 除非满足所有先决条件,否则无法启动具有 v2 托管式策略的集群。

  • Amazon EMR 旧控制台向您显示哪些资源(VPC/子网)需要标记。

Amazon 亚马逊 EMR 的托管政策

Amazon 托管策略是由创建和管理的独立策略 Amazon。 Amazon 托管策略旨在为许多常见用例提供权限,以便您可以开始为用户、组和角色分配权限。

请记住, Amazon 托管策略可能不会为您的特定用例授予最低权限权限,因为它们可供所有 Amazon 客户使用。我们建议通过定义特定于您的使用场景的客户管理型策略来进一步减少权限。

您无法更改 Amazon 托管策略中定义的权限。如果 Amazon 更新 Amazon 托管策略中定义的权限,则更新会影响该策略所关联的所有委托人身份(用户、组和角色)。 Amazon 最有可能在启动新的 API 或现有服务可以使用新 Amazon Web Service 的 API 操作时更新 Amazon 托管策略。

有关更多信息,请参阅《IAM 用户指南》中的 Amazon 托管式策略