更新您的安全组以引用对等 VPC 组 - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

更新您的安全组以引用对等 VPC 组

您可以更新 VPC 安全组的入站或出站规则以引用对等的 VPC 中的安全组。此操作将允许流量流入和流出与对等的 VPC 中的已引用安全组关联的实例。

Requirements

  • 对等 VPC 可以是您的账户中的 VPC,也可以是另一Amazon账户中的 VPC。要在另一个Amazon账户中引用安全组,请在 SourceDestination 字段中包括账号;例如 123456789012/sg-1a2b3c4d

  • 您无法引用位于不同区域内的对等 VPC 的安全组。而是使用对等 VPC 的 CIDR 块。

  • 要在对等 VPC 中引用安全组,VPC 对等连接必须处于active状态。

使用控制台更新安全组规则

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Security Groups

  3. 选择安全组,然后选择 Inbound Rules (入站规则) 以修改入站规则或选择 Outbound Rules (出站规则) 以修改出站规则。

  4. 选择 EditAdd another rule

  5. 根据需要指定类型、协议和端口范围。对于 Source(源)(或针对出站规则的 Destination (目标)),键入对等 VPC 中的安全组的 ID(如果它位于同一区域)或对等 VPC 的 CIDR 块(如果它位于不同的区域)。

    注意

    对等 VPC 中的安全组不会自动显示。

  6. 选择 Save

使用命令行更新入站规则

使用命令行更新出站规则

例如,要更新安全组 sg-aaaa1111 以允许通过 HTTP 从对等 VPC 中的 sg-bbbb2222 进行入站访问,可以使用以下 Amazon CLI 命令:

aws ec2 authorize-security-group-ingress --group-id sg-aaaa1111 --protocol tcp --port 80 --source-group sg-bbbb2222

在更新安全组规则后,使用 describe-security-groups 命令来查看安全组规则中引用的安全组。

确定引用的安全组

要确定在对等 VPC 中的安全组规则中是否正在引用您的安全组,请对账户中的一个或多个安全组使用以下命令之一。

在以下示例中,响应表示安全组 sg-bbbb2222 正在被 VPC vpc-aaaaaaaa 中的安全组引用:

aws ec2 describe-security-group-references --group-id sg-bbbb2222
{ "SecurityGroupsReferenceSet": [ { "ReferencingVpcId": "vpc-aaaaaaaa", "GroupId": "sg-bbbb2222", "VpcPeeringConnectionId": "pcx-b04deed9" } ] }

如果删除 VPC 对等连接,或者对等 VPC 的拥有者删除引用的安全组,则安全组规则将过时。

使用过时的安全组规则

过时的安全组规则是一种引用对等 VPC 中的安全组的规则,其中,已删除 VPC 对等连接或已删除对等 VPC 中的安全组。系统不会从您的安全组中自动移除过时的安全组规则,您必须手动删除它们。当安全组规则因删除了 VPC 对等连接而变得过时的时候,如果您使用相同的 VPC 创建了新的 VPC 对等连接,则安全组规则将不再标记为过时。

您可以使用 Amazon VPC 控制台查看和删除某个 VPC 的过时安全组规则。

查看和删除过时安全组规则

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Security Groups

  3. 选择 Actions (操作)Manage stale rules (管理过时规则)

  4. 对于 VPC,请选择具有过时规则的 VPC。

  5. 选择 Edit

  6. 选择您希望删除的规则旁边的 Delete(删除)按钮。选择 Preview changes (预览更改),然后选择 Save rules (保存规则)

使用命令行或 API 描述您的过时的安全组规则

在以下示例中,VPC A (vpc-aaaaaaaa) 和 VPC B 是对等的,并且已删除 VPC 对等连接。您在 VPC A 中的安全组 sg-aaaa1111 引用了 VPC B 中的 sg-bbbb2222。在为您的 VPC 运行 describe-stale-security-groups 命令时,响应表示安全组 sg-aaaa1111 具有引用了 sg-bbbb2222 的过时 SSH 规则。

aws ec2 describe-stale-security-groups --vpc-id vpc-aaaaaaaa
{ "StaleSecurityGroupSet": [ { "VpcId": "vpc-aaaaaaaa", "StaleIpPermissionsEgress": [], "GroupName": "Access1", "StaleIpPermissions": [ { "ToPort": 22, "FromPort": 22, "UserIdGroupPairs": [ { "VpcId": "vpc-bbbbbbbb", "PeeringStatus": "deleted", "UserId": "123456789101", "GroupName": "Prod1", "VpcPeeringConnectionId": "pcx-b04deed9", "GroupId": "sg-bbbb2222" } ], "IpProtocol": "tcp" } ], "GroupId": "sg-aaaa1111", "Description": "Reference remote SG" } ] }

找到过时的安全组规则后,您可以使用 revoke-security-group-ingressrevoke-security-group-egress 命令将其删除。