Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon EMR 如何与 IAM 协同工作

使用 IAM 基于身份的策略,您可以指定允许或拒绝的操作和资源,以及指定在什么条件下允许或拒绝哪些操作。Amazon EMR 支持特定操作、资源和条件键。要了解您在 JSON 策略中使用的所有元素,请参阅 IAM 用户指南 中的 IAM JSON 策略元素参考

Amazon EMR 不支持基于资源的策略。

操作

基于 IAM 身份的策略的 Action 元素描述该策略将允许或拒绝的特定操作。策略操作通常与关联的 AWS API 操作同名。此操作用于策略中以授予执行关联操作的权限。

Amazon EMR 中的策略操作在操作前使用以下前缀:elasticmapreduce:。例如,要授予某人使用 RunJobFlow API 操作创建集群的权限,您应将 elasticmapreduce:RunJobFlow 操作纳入其策略中。策略语句必须包括 ActionNotAction 元素。Amazon EMR 定义了自己的一组操作,描述了您可以使用该服务执行的任务。

要在单个语句中指定多项操作,请使用逗号将它们隔开,如下所示:

"Action": [ "elasticmapreduce:action1", "elasticmapreduce:action2"

您也可以使用通配符 (*) 指定多个操作。例如,要指定以单词 Describe 开头的所有操作,包括以下操作:

"Action": "elasticmapreduce:Describe*"

要查看 Amazon EMR 操作的列表,请参阅 IAM 用户指南 中的 Actions Defined by Amazon EMR

资源

Resource 元素指定要向其应用操作的对象。语句必须包含 ResourceNotResource 元素。您可使用 ARN 来指定资源,或使用通配符 (*) 以指明该语句适用于所有资源。

要查看 Amazon EMR 资源类型及其 ARN 的列表,请参阅 IAM 用户指南 中的 Resources Defined by Amazon EMR。要了解您可以使用哪些操作指定每个资源的 ARN,请参阅 Actions Defined by Amazon EMR

条件键

Condition 元素或 Condition 中,可以指定语句生效的条件。Condition 元素是可选的。您可以构建使用条件运算符(例如,等于或小于)的条件表达式,以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个 Condition 元素,或在单个 Condition 元素中指定多个键,则 AWS 使用逻辑 AND 运算评估它们。如果您为单个条件键指定多个值,则 AWS 使用逻辑 OR 运算来评估条件。在授予语句的权限之前必须满足所有的条件。

在指定条件时,您也可以使用占位符变量。例如,仅当 IAM 用户使用其 IAM 用户名进行标记时,您才可为其授予访问资源的权限。有关更多信息,请参阅 IAM 用户指南中的 IAM 策略元素:变量和标签

Amazon EMR 定义自己的一组条件键,还支持使用一些全球条件键。要查看所有 AWS 全局条件键,请参阅 IAM 用户指南 中的 AWS 全局条件上下文键

所有 Amazon EC2 操作都支持 aws:RequestedRegionec2:Region 条件键。有关更多信息,请参阅示例:限制对特定区域的访问

要查看 Amazon EMR 条件键的列表,请参阅 IAM 用户指南 中的 Condition Keys for Amazon EMR。要了解您可以对哪些操作和资源使用条件键,请参阅 Actions Defined by Amazon EMR

将集群和笔记本标签与 IAM 访问控制策略结合使用

可以将基于标签的访问控制与基于身份的 IAM 策略结合使用,精细调整与 EMR 笔记本 和 EMR 集群关联的 Amazon EMR 操作的权限。您可以使用 Condition 元素(也称作 Condition 块)内的 条件键 ,来允许仅在笔记本和/或集群具有特定标签键或键-值组合时执行某些操作。您也可以限制 CreateEditor 操作(创建 EMR 笔记本)和 RunJobFlow 操作(创建集群),以便在创建资源时必须提交标签请求。

在 Amazon EMR 中,可用于 Condition 元素中的条件键仅应用于 ClusterIDNotebookID 为必需请求参数的 Amazon EMR API 操作。例如,ModifyInstanceGroups 操作不支持上下文密钥,因为 ClusterID 是可选参数。

您创建 EMR 笔记本时,系统会应用一个默认标签,其中 creatorUserId 的键字符串会设置为创建笔记本的 IAM 用户 ID 的值。这在将笔记本的允许操作仅限定为创建者时非常有用。

以下条件键可用于 Amazon EMR 中:

  • 使用 elasticmapreduce:ResourceTag/TagKeyString 条件上下文键可允许或拒绝用户对带有您指定的 TagKeyString 的标签的集群或笔记本执行操作。如果某个操作同时传递 ClusterIDNotebookID,则该条件同时适用于集群和笔记本。这意味着这两个资源都必须具有您指定的标签键字符串或键-值组合。您可以使用 Resource 元素来限制语句,以便它能根据需要仅适用于集群或笔记本。有关更多信息,请参阅 Amazon EMR 基于身份的策略示例

  • 使用 elasticmapreduce:RequestTag/TagKeyString 条件上下文密钥要求带操作/API 调用的特定标签。例如,您可以将此条件上下文键与 CreateEditor 操作一起使用,以在创建笔记本时对其应用 TagKeyString

示例

要查看 Amazon EMR 基于身份的策略的示例,请参阅 Amazon EMR 基于身份的策略示例

本页内容: