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

使用安全组控制网络流量

安全组充当您的集群中 EC2 实例的虚拟防火墙,以控制入站和出站流量。每个安全组都有一组规则来控制入站流量,并有另外一组规则来控制出站流量。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的适用于 Linux 实例的 Amazon EC2 安全组

您将两种类型的安全组与 Amazon EMR 结合使用:Amazon EMR 管理的安全组其他安全组

每个集群都有与其关联的托管安全组。您可以使用默认托管安全组,或指定自定义托管安全组。无论哪种方式,Amazon EMR 都会向托管安全组自动添加集群在集群实例和 AWS 服务之间通信所需的规则。

其他安全组是可选的。除了托管安全组以外,您还可以指定这些规则,以定制访问权限。其他安全组仅包含您定义的规则。Amazon EMR 不会修改它们。

Amazon EMR 在托管安全组中创建的规则允许集群在内部组件间进行通信。要允许用户和应用程序从该集群外部访问某集群,您可以在托管安全组中编辑规则和/或使用其他规则创建其他安全组。

警告

公有子网中主实例的默认 EMR 托管安全组 ElasticMapReduce-master 预配置了一个规则,该规则允许端口 22 上来自所有来源 (IPv4 0.0.0.0/0) 的入站流量。这是为了简化到主节点的初始 SSH 客户端连接。我们强烈建议您编辑此入站规则,以限制流量仅来自可信的来源或指定旨在限制访问的自定义安全组。有关更多信息,请参阅 使用 Amazon EMR 托管的安全组

您只能在创建集群时指定安全组。它们不能在集群正在运行时被添加到集群或集群实例,但您可以从现有安全组编辑、添加和删除规则。规则在您保存后立即生效。

默认情况下,安全组是限制性的。除非添加了允许流量的规则,否则流量会被拒绝。如果有多个规则应用于相同流量和相同源,则使用最宽松的规则。例如,如果有一条规则允许来自 IP 地址 192.0.2.12/32 的 SSH,而另一条规则允许访问来自地址范围 192.0.2.0/24 的所有 TCP 流量,则优先使用允许来自包含 192.0.2.12 的地址范围的所有 TCP 流量的规则。在这种情况下,192.0.2.12 处的客户端的访问数可能会超出您的预期数量。

重要

在编辑安全组规则时要小心。请务必为所需的协议和端口添加仅允许来自可信客户的流量的规则。我们不推荐任何允许来自 0.0.0.0/0 的流量的入站规则,这种规则会使您的集群对于来自 Internet 上的任何客户端的流量都是开放的。

此外,在托管安全组中编辑规则可能会造成意外后果。您可能无意中阻止了集群要正常运行所需的流量,并且由于无法访问节点而导致错误。请在实施前仔细计划并测试安全组配置。