使用 Amazon EMR 屏蔽公共访问 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon EMR 屏蔽公共访问

如果集群的安全配置允许来自公有 IP 地址的入站流量通过端口,Amazon EMR block public access (BPA) 会阻止您启动公有子网中的集群。

重要

默认情况下,阻止公有访问处于启用状态。为了增强账户保护,我们建议您将其保持启用状态。

了解阻止公有访问

您可以使用禁止公有访问账户级别的配置来集中管理对 Ama EMR zon 集群的公用网络访问。

当您的用户 Amazon Web Services 账户 启动集群时,Amazon EMR 会检查该集群的安全组中的端口规则,并将其与您的入站流量规则进行比较。如果安全组有向公有 IP 地址 IPv4 0.0.0.0/0 或IPv6:: /0 开放端口的入站规则,并且这些端口未被指定为账户的例外情况,则 Amazon EMR 不允许用户创建集群。

如果用户修改了公有子网中正在运行的集群的安全组规则,使其具有违反您账户BPA配置的公有访问规则,Amazon 将EMR撤销新规则(前提是它有权这样做)。如果 Amazon EMR 无权撤销该规则,它会在 Amazon Health 控制面板中创建一个描述违规行为的事件。要向 Amazon 授予撤销规则权限EMR,请参阅将 Amazon 配置EMR为撤销安全组规则

默认情况下,您的每个 Amazon Web Services 区域 集群中的所有集群都启用了阻止公共访问权限 Amazon Web Services 账户。 BPA适用于集群的整个生命周期,但不适用于您在私有子网中创建的集群。您可以配置BPA规则的例外;默认情况下,端口 22 是例外。有关设置例外的更多信息,请参阅 配置阻止公有访问

配置阻止公有访问

您可以随时更新账户中的安全组和阻止公有访问配置。

您可以使用 Amazon Web Services Management Console、(BPA) 和 Amazon 开启和关闭封锁公共访问 Amazon Command Line Interface (Amazon CLI) 设置EMRAPI。设置会Region-by-Region 根据具体情况应用于您的账户。为了维护集群安全,我们建议您使用BPA。

Console
使用控制台配置阻止公有访问
  1. 登录 Amazon Web Services Management Console,然后通过 https://console.aws.amazon.com/em r 打开亚马逊EMR控制台。

  2. 在顶部导航栏中,如果还未选中,则选中要配置的区域

  3. EC2在左侧导航窗格的 “开” 下EMR,选择 “阻止公共访问”。

  4. Block public access settings (阻止公有访问设置) 下,完成以下步骤。

    要…… 请执行此操作...

    打开或关闭阻止公有访问

    选择 Edit(编辑),根据需要选择 Turn on(打开)或 Turn off(关闭),然后选择 Save(保存)。

    编辑例外列表中的端口

    1. 选择 Edit(编辑),然后找到 Port range exceptions(端口范围例外)部分。

    2. 要将端口添加到例外列表,请选择 Add a port range (添加端口范围) 并输入新端口或端口范围。对要添加的每个端口或端口范围重复此过程。

    3. 要删除端口或端口范围,请选择端口范围列表中条目旁边的 Remove(删除)。

    4. 选择保存

Amazon CLI
要配置阻止公共访问,请使用 Amazon CLI
  • 使用 aws emr put-block-public-access-configuration 命令可配置阻止公有访问,如以下示例所示。

    要…… 请执行此操作...

    打开阻止公有访问

    BlockPublicSecurityGroupRules 设置为 true,如以下示例所示。要启动集群,与集群关联的安全组不得具有允许公有访问的入站规则。

    aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=true

    关闭阻止公有访问

    BlockPublicSecurityGroupRules 设置为 false,如以下示例所示。与集群关联的安全组可以具有允许在任何端口上进行公有访问的入站规则。不推荐您使用此配置。

    aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=false

    打开阻止公有访问并将端口指定为例外

    以下示例将打开阻止公有访问,并将端口 22 和端口 100-101 指定为例外。这样,如果关联的安全组具有允许在端口 22、端口 100 或端口 101 上进行公有访问的入站规则,则允许创建集群。

    aws emr put-block-public-access-configuration --block-public-access-configuration '{ "BlockPublicSecurityGroupRules": true, "PermittedPublicSecurityGroupRuleRanges": [ { "MinRange": 22, "MaxRange": 22 }, { "MinRange": 100, "MaxRange": 101 } ] }'

将 Amazon 配置EMR为撤销安全组规则

Amazon EMR 需要获得撤销安全组规则并遵守您的屏蔽公开访问配置的许可。您可以使用以下方法之一向 Amazon 授EMR予其所需的权限:

  • (建议)AmazonEMRServicePolicy_v2 托管的策略附加到服务角色。有关更多信息,请参阅 Amazon 的服务角色EMR(EMR角色)

  • 创建允许对安全组执行 ec2:RevokeSecurityGroupIngress 操作的新内联策略。有关如何修改角色权限策略的更多信息,请参阅《IAM用户指南》Amazon CLI中的 “使用IAM控制台修改角色权限策略” 和。Amazon API

解决阻止公有访问违规问题

如果发生阻止公有访问违规,则可以通过以下操作之一来缓解违规:

  • 如果要访问集群上的 Web 界面,请使用中查看 Amazon EMR 集群上托管的网页界面描述的选项之一通过SSH(端口 22)访问该接口。

  • 要允许来自特定 IP 地址而不是公有 IP 地址的流量进入集群,请添加安全组规则。有关更多信息,请参阅《Amazon EC2 入门指南》中的向安全组添加规则

  • (不推荐)您可以将 Amazon EMR BPA 例外配置为包括所需的端口或端口范围。指定BPA例外时,未受保护的端口会带来风险。如果您计划指定例外,则应在不再需要该例外时立即将其删除。有关更多信息,请参阅 配置阻止公有访问

识别与安全组规则关联的集群

您可能需要识别与给定安全组规则关联的所有集群,或者找到给定集群的安全组规则。

  • 如果您知道安全组,则可以在找到安全组的网络接口时识别其关联的集群。有关更多信息,请参阅如何找到与 Amazon EC2 安全组关联的资源? 上 Amazon Web Services re:Post。连接到这些网络接口的 Amazon EC2 实例将使用其所属集群的 ID 进行标记。

  • 如果要查找已知集群的安全组,请按照 查看 Amazon EMR 集群状态和详细信息 中的步骤操作。您可以在控制台的网络和安全面板中找到集群的安全组,也可以从 Amazon CLI的 Ec2InstanceAttributes 字段中找到集群的安全组。