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

配置其他安全组

无论是使用默认托管安全组还是自己的自定义托管安全组,您都可以向集群中的主实例和核心/任务实例分配其他安全组。通过应用其他安全组,您能够将其他安全规则应用于您的安全组,这样就不必修改规则。其他安全组是可选的。可以将这些安全组应用于主组以及核心和任务组,可以应用于这两个组,或者两个组都不应用。您还可以将相同的其他安全组应用于多个集群。

例如,如果使用自己的托管安全组,希望允许对特定集群的主组的入站 SSH 访问,则可以创建包含该规则的其他安全组,并将其添加到该集群的主安全组。Amazon EMR 不会修改或维护其他安全组。

通常,其他安全组用于:

  • 向不属于 Amazon EMR 托管安全组的集群中的实例添加访问规则

  • 授予特定集群对特定资源 (如 Amazon Redshift 数据库) 的访问权限

默认情况下,安全组是限制性的。它们拒绝所有流量。您可以添加规则以允许特定端口上传送到自定义安全组或其他安全组的流量。如果应用于相同实例的两个安全组中的特定端口有一个以上规则,则应用最宽松的规则。例如,如果有一个规则允许从 IP 地址 203.0.113.1 通过 TCP 端口 22 进行 SSH 访问,以及另一个规则允许从任何 IP 地址 (0.0.0.0/0) 访问 TCP 端口 22,则优先使用允许由任何 IP 地址访问的规则。

您可以向主安全组和核心/任务安全组应用最多四个其他安全组。允许的其他组的数量取决于:

  • 您的账户允许的安全组数量

  • 您的账户允许的规则数量

有关 VPC 安全组中的规则限制的更多信息,请参阅 Amazon VPC User Guide 中的您的 VPC 的安全组。您可以向主安全组和核心/任务安全组应用相同的其他安全组。

可以使用控制台、API、CLI 或开发工具包来应用其他安全组。

使用控制台指定其他安全组

  1. Open the Amazon EMR console at https://console.amazonaws.cn/elasticmapreduce/.

  2. 选择 Create cluster

  3. 选择 Go to advanced options

  4. Security and Access 部分的 EC2 Security Groups 子部分中:

    • 对于 Master,请从列表中选择默认安全组或自定义安全组。

    • Additional security groups 列中,选择图标以向主安全组添加最多四个其他组。

    • 对于 Core & Task,请从列表中选择默认安全组或自定义安全组。

    • Additional security groups 列中,选择图标以向核心和任务安全组添加最多四个其他组。

    注意

    您不能将自定义安全组和默认安全组进行组合。

  5. 按照计划和配置集群中所述继续创建集群。

使用 AWS CLI 指定其他安全组

结合使用 create-cluster 命令和 --ec2-attributes 参数,同时为 AdditionalSlaveSecurityGroupsAdditionalMasterSecurityGroups 变量指定安全组 ID。其他安全组是可选的。可以将这些安全组应用于主组以及核心和任务组,可以应用于这两个组,或者两个组都不应用。

注意

Amazon EMR CLI 不支持 Amazon EMR 托管的安全组和其他安全组。

  1. 要使用更多安全组启动集群,请键入以下命令。将 myKey 替换为您的 Amazon EC2 密钥对的名称,将 securityGroupId 替换为您的主安全组、核心/任务安全组和其他安全组的 ID。

    aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --applications Name=Hue Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey,ServiceAccessSecurityGroup=sg-service-accessId,EmrManagedMasterSecurityGroup=sg-masterId,EmrManagedSlaveSecurityGroup=sg-slaveId,AdditionalMasterSecurityGroups=securityGroupId,AdditionalSlaveSecurityGroups=securityGroupId --instance-type m4.large --instance-count 3

    如果不使用 --instance-groups 参数指定实例计数,则将启动单个主节点,其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。

  2. 要检索集群的安全组信息,请键入以下命令并将 j-1K48XXXXXXHCB 替换为您的集群 ID:

    aws emr describe-cluster --cluster-id j-1K48XXXXXXHCB

    有关更多信息,请参阅 AWS CLI 中的 Amazon EMR 命令