

# 与 AWS Organizations 共享安全组
<a name="security-group-sharing"></a>

共享安全组功能使您能够与同一 AWS 区域中的其他 AWS Organizations 账户共享安全组，并使安全组可供这些账户使用。

下图演示如何使用共享安全组功能来简化 AWS Organizations 中的跨账户安全组管理：

![\[与共享 VPC 子网中的其他账户共享安全组的示意图。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/userguide/images/sec-group-sharing.png)


此示意图显示属于同一组织的三个账户。账户 A 与账户 B 和账户 C 共享一个 VPC 子网。账户 A 使用共享安全组功能与账户 B 和账户 C 共享该安全组。然后，账户 B 和账户 C 在共享子网中启动实例时使用该安全组。这使账户 A 也能够管理该安全组；对安全组进行的任何更新都会应用于账户 B 和账户 C 在共享 VPC 子网中运行的资源。

**共享安全组功能的要求**
+ 此功能仅适用于 AWS Organizations 中同一组织的账户。必须在 AWS Organizations 中启用[资源共享](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html)。
+ 共享安全组的账户必须同时拥有 VPC 和安全组。
+ 您不能共享默认安全组。
+ 您无法共享位于默认 VPC 中的安全组。
+ 参与者账户可以在共享 VPC 中创建安全组，但无法共享这些安全组。
+ IAM 主体需要一组最低权限才能与 AWS RAM 共享一个安全组。使用 `AmazonEC2FullAccess` 和 `AWSResourceAccessManagerFullAccess` 托管 IAM 策略，确保 IAM 主体拥有共享和使用所共享安全组所需的权限。如果使用自定义 IAM 策略，则需要进行 `c2:PutResourcePolicy` 和 `ec2:DeleteResourcePolicy` 操作。这些是仅限权限的 IAM 操作。如果 IAM 主体未获得这些权限，则在尝试使用 AWS RAM 共享安全组时将出错。

**支持此功能的服务**
+ Amazon API Gateway
+ Amazon EC2
+ Amazon ECS
+ Amazon EFS
+ Amazon EKS
+ Amazon EMR
+ Amazon FSx
+ Amazon ElastiCache
+ AWS Elastic Beanstalk
+ AWS Glue
+ Amazon MQ
+ Amazon SageMaker AI
+ Elastic Load Balancing
  + 应用程序负载均衡器
  + 网络负载均衡器

**此功能如何影响现有的配额**

[安全组配额](amazon-vpc-limits.md#vpc-limits-security-groups)适用。但是，对于“每个网络接口的安全组数”配额，如果参与者在弹性网络接口（ENI）上同时使用自有和共享的组，则所有者和参与者的最低配额适用。

演示此功能如何影响配额的示例：
+ 所有者账户配额：每个接口 4 个安全组
+ 参与者账户配额：每个接口 5 个安全组。
+ 所有者与参与者共享的组 SG-O1、SG-O2、SG-O3、SG-O4、SG-O5。参与者在 VPC 中已经有自己的组：SG-P1、SG-P2、SG-P3、SG-P4、SG-P5。
+ 如果参与者创建 ENI 并且仅使用自己的组，则他们可以关联所有 5 个安全组（SG-P1、SG-P2、SG-P3、SG-P4、SG-P5），因为这是他们的配额。
+ 如果参与者创建 ENI 并在其上使用任何共享的组，则他们最多只能关联 4 个组。在这种情况下，此类 ENI 的配额是所有者和参与者的最低配额。可能的有效配置将如下所示：
  + SG-O1、SG-P1、SG-P2、SG-P3
  + SG-O1、SG-O2、SG-O3、SG-O4

## 共享安全组
<a name="share-sg-org"></a>

本节介绍如何使用 AWS 管理控制台和 AWS CLI 与组织中的其他账户共享安全组。

------
#### [ AWS Management Console ]

**要共享安全组**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在左侧导航窗格中，选择**安全组**。

1. 选择安全组以查看详细信息。

1. 选择 **Sharing (共享)** 选项卡。

1. 选择**共享安全组**。

1. 选择**创建资源共享**。这样，AWS RAM 控制台就会打开，您将在其中为安全组创建资源共享。

1. 输入资源共享的**名称**。

1. 在**资源 – 可选**下，选择**安全组**。

1. 选择安全组。该安全组不能是默认安全组，也不能与默认 VPC 关联。

1. 选择**下一步**。

1. 查看允许主体执行的操作，然后选择**下一步**。

1. 在**主体 – 可选**下，选择**仅允许在企业内共享**。

1. 在**主体**下，选择以下主体类型之一，然后输入相应的数字：
   + **AWS 账户**：您的组织中账户的账号。
   + **组织**：AWS Organizations ID。
   + **组织单元 (OU)**：组织中 OU 的 ID。
   + **IAM 角色**：IAM 角色的 ARN。创建该角色的账户必须与创建此资源共享的账户属于同一组织。
   + **IAM 用户**：IAM 用户的 ARN。创建该用户的账户必须与创建此资源共享的账户属于同一组织。
   + **服务主体**：您不能与服务主体共享安全组。

1. 选择**添加**。

1. 选择**下一步**。

1. 选择**创建资源共享**。

1. 在**共享资源**下，等待看到**状态**为 `Associated`。如果安全组关联失败，则可能是由于上面列出的限制之一所致。查看安全组的详细信息以及详细信息页面上的**共享**选项卡，以查看与安全组不可共享的原因相关的所有消息。

1. 返回 VPC 控制台安全组列表。

1. 选择您共享的安全组。

1. 选择 **Sharing (共享)** 选项卡。您的 AWS RAM 资源应该在其中显示。如果未显示，则资源共享创建可能失败，您可能需要重新创建。

------
#### [ Command line ]

**要共享安全组**

1. 您必须先为想要与 AWS RAM 共享的安全组创建资源共享。有关如何使用 AWS CLI 创建与 AWS RAM 的资源共享的步骤，请参阅《AWS RAM User Guide》**中的 [Creating a resource share in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) 

1. 要查看创建的资源共享关联，请使用 [get-resource-share-associations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/get-resource-share-associations.html)。

------

安全组现已共享。您可以在同一 VPC 内的共享子网中[启动 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html)时选择安全组。

## 停止共享安全组
<a name="stop-share-sg-org"></a>

本节介绍如何使用 AWS 管理控制台和 AWS CLI 停止与组织中的其他账户共享安全组。

------
#### [ AWS Management Console ]

**要停止共享安全组**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在左侧导航窗格中，选择**安全组**。

1. 选择安全组以查看详细信息。

1. 选择 **Sharing (共享)** 选项卡。

1. 选择安全组资源共享，然后选择**停止共享**。

1. 选择**是的，停止共享**。

------
#### [ Command line ]

**要停止共享安全组**

使用 [delete-resource-share](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-resource-share.html) 删除资源共享。

------

该安全组不再共享。在所有者停止共享安全组后，以下规则适用：
+ 现有的参与者弹性网络接口（ENI）将继续获取对已取消共享的安全组进行的任何安全组规则更新。取消共享只会阻止参与者与已取消共享组创建新关联。
+ 参与者无法再将已取消共享的安全组与其拥有的任何 ENI 关联。
+ 参与者可以描述和删除仍与已取消共享安全组关联的 ENI。
+ 如果参与者仍具有与已取消共享的安全组关联的 ENI，则所有者无法删除已取消共享的安全组。仅当参与者从其所有 ENI 取消关联（删除）安全组后，所有者才能删除该安全组。
+ 参与者不能使用与非共享安全组关联的 ENI 启动新的 EC2 实例。