使用 Amazon EMR 管理的安全组 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用 Amazon EMR 管理的安全组

不同的托管安全组与集群中的主实例以及核心和任务实例相关联。在私有子网中创建集群时,需要用于服务访问的其他托管安全组。有关网络配置的托管安全组角色的更多信息,请参阅 Amazon VPC 选项

当您为集群指定托管安全组时,必须对所有托管安全组使用相同类型的安全组(默认或自定义)。例如,您无法为主实例指定自定义安全组,也无法为核心和任务实例指定自定义安全组。

如果您使用默认托管安全组,则无需在创建集群时指定它们。亚马逊 EMR 会自动使用默认值。此外,如果您的集群 VPC 中不存在默认值,则 Amazon EMR 会创建它们。如果您明确指定了它们但它们尚不存在,则 Amazon EMR 还会创建它们。

您可以在创建集群时,在托管安全组中编辑规则。在创建新集群时,Amazon EMR 会检查托管安全组中指定的规则,然后创建任何缺失的规则。入站新集群除早前可能已添加的规则以外所需要的规则。除非另有明确说明,否则,默认 EMR 托管安全组的每个规则也会添加到您指定的自定义 EMR 托管安全组。

默认托管安全组如下所示:

Amazon EMR 托管的主实例(公有子网)安全组

公有子网中主实例的默认托管安全组的组名ElasticMapReduce-master. 它具有以下规则。如果您指定自定义托管安全组,Amazon EMR 将向自定义安全组添加所有相同规则。

类型 协议 端口范围 详细信息
入站规则
All ICMP-IPv4 (所有 ICMP-IPv4) All 不适用 主实例的托管安全组的组 ID。换句话说,规则出现在相同安全组内。

这些反身规则允许来自与指定安全组关联的任何实例的入站流量。对多个集群使用默认 ElasticMapReduce-master 允许这些集群的核心和任务节点通过 ICMP 或者任何 TCP 或 UDP 端口相互通信。指定自定义托管安全组以限制跨集群访问。

所有 TCP TCP All
所有 UDP UDP All
All ICMP-IPV4 (所有 ICMP-IPV4) All 不适用 为核心和任务节点指定的托管安全组的组 ID。

这些规则允许所有入站 ICMP 流量以及来自与指定安全组关联的任何核心和任务实例的通过任何 TCP 或 UDP 端口的流量,即使这些实例位于不同的集群中。

所有 TCP TCP All
所有 UDP UDP All
自定义 TCP 8443 各种 Amazon IP 地址范围 这些规则允许集群管理器与主节点通信。

允许对弹性映射减少主安全组的受信任源进行 SSH 访问

您必须先登录Amazon作为 root 用户或允许用于管理集群所在 VPC 的安全组的 IAM 委托人。有关更多信息,请参阅 。更改 IAM 用户的权限示例策略,它允许管理IAM 用户指南.

  1. 从打开 Amazon EMR 控制台https://console.aws.amazon.com/elasticmapreduce/.

  2. 选择 Clusters

  3. 选择集群的 Name (名称)

  4. Security and access (安全与访问) 下,选择 Security groups for Master (主节点的安全组) 链接。

  5. 从列表中选择 ElasticMapReduce-master

  6. 选择入站编辑.

  7. 通过以下设置检查允许公共访问的入站规则。如果存在,请选择Delete以将其删除。

    • 类型

      SSH

    • 端口

      22

    • 0.0.0.0.0.0.0.0.0.0.0.0.0.0.

    警告

    在 2020 年 12 月之前,使用预配置的规则创建了公有子网中主实例的默认 EMR 托管安全组,以便允许端口 22 上来自所有来源的入站流量。创建此规则是为了简化到主节点的初始 SSH 连接。我们强烈建议您删除此入站规则,并限制流量仅来自可信的来源。

  8. 滚动到规则列表底部,然后选择添加规则.

  9. 对于Type (类型),选择 SSH

    这会自动输入TCP对于 来说为协议22对于 来说为端口范围.

  10. 对于源,选择 My IP (我的 IP)

    这会自动将您的客户端计算机的 IP 地址添加为源地址。或者,您可以添加一系列Custom (自定义)可信客户端 IP 地址,然后选择 Add rule (添加规则) 来创建针对其他客户端的其他规则。许多网络环境动态分配 IP 地址,因此您可能需要定期编辑安全组规则以更新可信客户端的 IP 地址。

  11. 选择 Save

  12. (可选) 选择ElasticMapReduce-slave并重复上述步骤以允许从可信客户端对核心和任务节点执行 SSH 客户端访问。

Amazon EMR 管理的安全组,用于核心和任务实例(公有子网)

公有子网中核心和任务实例的默认托管安全组的组名ElasticMapReduce-slave. 默认托管安全组具有以下规则,如果您指定自定义托管安全组,则 Amazon EMR 将添加相同规则。

类型 协议 端口范围 详细信息
入站规则
All ICMP-IPV4 (所有 ICMP-IPV4) All 不适用 核心和任务实例托管安全组的组 ID。换句话说,规则出现在相同安全组内。

这些反身规则允许来自与指定安全组关联的任何实例的入站流量。对多个集群使用默认 ElasticMapReduce-slave 允许这些集群的核心和任务实例通过 ICMP 或者任何 TCP 或 UDP 端口相互通信。指定自定义托管安全组以限制跨集群访问。

所有 TCP TCP All
所有 UDP UDP All
All ICMP-IPV4 (所有 ICMP-IPV4) All 不适用 主实例的托管安全组的组 ID。

这些规则允许所有入站 ICMP 流量以及来自与指定安全组关联的任何主实例的通过任何 TCP 或 UDP 端口的流量,即使这些实例位于不同的集群中。

所有 TCP TCP All
所有 UDP UDP All

Amazon EMR 托管的主实例(私有子网)安全组

私有子网中主实例的默认托管安全组的组名ElasticMapReduce-Master-Private. 默认托管安全组具有以下规则,如果您指定自定义托管安全组,则 Amazon EMR 将添加相同规则。

类型 协议 端口范围 详细信息
入站规则
All ICMP-IPv4 (所有 ICMP-IPv4) All 不适用 主实例的托管安全组的组 ID。换句话说,规则出现在相同安全组内。

这些反身规则允许来自与指定安全组关联且可从私有子网中进行访问的任何实例的入站流量。对多个集群使用默认 ElasticMapReduce-Master-Private 允许这些集群的核心和任务节点通过 ICMP 或者任何 TCP 或 UDP 端口相互通信。指定自定义托管安全组以限制跨集群访问。

所有 TCP TCP All
所有 UDP UDP All
All ICMP-IPV4 (所有 ICMP-IPV4) All 不适用 核心和任务节点的托管安全组的组 ID。

这些规则允许所有入站 ICMP 流量以及来自与指定安全组关联且从私有子网内进行访问的任何核心和任务实例的通过任何 TCP 或 UDP 端口的流量,即使这些实例位于不同的集群中。

所有 TCP TCP All
所有 UDP UDP All
HTTPS (8443) TCP 8443 私有子网中用于服务访问的托管安全组的组 ID。 此规则允许集群管理器与主节点通信。
出站规则
所有流量 All All 0.0.0.0/0 提供对 Internet 的出站访问。
自定义 TCP TCP 9443 私有子网中用于服务访问的托管安全组的组 ID。 如果删除了上述 “所有流量” 默认出站规则,则此规则是 EMR 5.30.0 及更高版本的最低要求。

Amazon EMR 管理的安全组,用于核心和任务实例(私有子网)

私有子网中核心和任务实例的默认托管安全组的 Group组名ElasticMapReduce-Slave-Private. 默认托管安全组具有以下规则,如果您指定自定义托管安全组,则 Amazon EMR 将添加相同规则。

类型 协议 端口范围 详细信息
入站规则
All ICMP-IPV4 (所有 ICMP-IPV4) All 不适用 核心和任务实例托管安全组的组 ID。换句话说,规则出现在相同安全组内。

这些反身规则允许来自与指定安全组关联的任何实例的入站流量。对多个集群使用默认 ElasticMapReduce-slave 允许这些集群的核心和任务实例通过 ICMP 或者任何 TCP 或 UDP 端口相互通信。指定自定义托管安全组以限制跨集群访问。

所有 TCP TCP All
所有 UDP UDP All
All ICMP-IPV4 (所有 ICMP-IPV4) All 不适用 主实例的托管安全组的组 ID。

这些规则允许所有入站 ICMP 流量以及来自与指定安全组关联的任何主实例的通过任何 TCP 或 UDP 端口的流量,即使这些实例位于不同的集群中。

所有 TCP TCP All
所有 UDP UDP All
HTTPS (8443) TCP 8443 私有子网中用于服务访问的托管安全组的组 ID。 此规则允许集群管理器与核心和任务节点通信。
出站规则
所有流量 All All 0.0.0.0/0 请参阅下面的编辑出站规则

编辑出站规则

默认情况下,Amazon EMR 使用允许所有协议和端口上的所有出站流量的出站规则创建此安全组。选择允许所有出站流量,因为可以在 Amazon EMR 集群上运行的各种 Amazon EMR 和客户应用程序可能需要不同的出口规则。在创建默认安全组时,EMR 无法预测这些特定设置。您可以缩小安全组中的出口范围,以便仅包括那些适合您的使用案例和安全策略的规则。此安全组至少需要以下出站规则,但某些应用程序可能需要额外的出站。

类型 协议 端口范围 目的地 详细信息
所有 TCP TCP All pl-XXXXXXXX Amazon S3 前缀列表com.amazonaws.MyRegion.s3.
所有流量 All All SG-三十三年三十一届 的 IDElasticMapReduce-Slave-Private安全组。
所有流量 All All SG-三十三年三十一届 的 IDElasticMapReduce-Master-Private安全组。
自定义 TCP TCP 9443 SG-三十三年三十一届 的 IDElasticMapReduce-ServiceAccess安全组。

Amazon EMR 托管的用于服务访问的安全组(私有子网)

私有子网中服务访问的默认托管安全组的 Group Name (组名称)ElasticMapReduce-ServiceAccess。它具有入站规则和允许流量通过 HTTPS(端口 8443、端口 9443)到私有子网中其他托管安全组的出站规则。这些规则允许集群管理器与主节点以及核心节点和任务节点进行通信。如果您使用的是自定义安全组,则需要相同的规则。

类型 协议 端口范围 详细信息
入站规则对于具有 Amazon EMR 版本 5.30.0 及更高版本的 EMR 集群,必需。
HTTPS (9443) TCP 9443 主实例的托管安全组的组 ID。

此规则允许在主实例的安全组与服务访问安全组之间进行通信。

所有 EMR 集群都需要出站规则
HTTPS (8443) TCP 8443 主实例的托管安全组的组 ID。

这些规则允许集群管理器与主节点以及核心节点和任务节点进行通信。

HTTPS (8443) TCP 8443 核心和任务实例托管安全组的组 ID。

这些规则允许集群管理器与主节点以及核心节点和任务节点进行通信。