

# 在 CloudFront 中使用共享的资源
<a name="sharing-resources"></a>

Amazon CloudFront 与 AWS Resource Access Manager（AWS RAM）集成来实现资源共享。AWS RAM 使您能够与其他 AWS 账户或通过 AWS Organizations 共享一些 CloudFront 资源。利用 AWS RAM，您可通过创建*资源共享*来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用者可包括：
+ AWS Organizations 中其组织内部或外部的特定 AWS 账户。
+ AWS Organizations 中的所有者组织内部的组织单位
+ 它在 AWS Organizations 中的整个组织

有关 AWS RAM 的更多信息，请参阅 [AWS RAM 用户指南](https://docs.aws.amazon.com/ram/latest/userguide/)。

本主题说明如何共享您拥有的资源以及如何使用共享给您的资源。

**Topics**
+ [共享资源的先决条件](#sharing-prereqs)
+ [共享 VPC 源](#sharing-share)
+ [使用共享 VPC 源](#using-shared-vpc-origin)
+ [识别共享 VPC 源](#sharing-identify)
+ [取消对共享 VPC 源的共享](#sharing-unshare)
+ [共享 VPC 源的责任和权限](#sharing-perms)
+ [计费和计量](#sharing-billing)
+ [共享资源配额](#sharing-quotas)

## 共享资源的先决条件
<a name="sharing-prereqs"></a>
+ 您必须拥有 AWSRAMDefaultPermissionCloudFront 托管式策略才能授予对资源共享的只读访问权限。有关更多信息，请参阅 [AWSRAMDefaultPermissionCloudFront](#aws-ram-default-permission-cloudfront)。
+ 要共享 VPC 源，您必须在您的 AWS 账户中拥有它。这意味着必须在您的账户中分配或预置资源。您无法共享已与您共享的资源。
+ 要与您的组织或 AWS Organizations 内的组织单元共享资源，您必须允许与 AWS Organizations 共享。有关更多信息，请参阅《AWS RAM 用户指南》**中的[在 AWS Organizations 中启用资源共享](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。

## 共享 VPC 源
<a name="sharing-share"></a>

**注意**  
目前，CloudFront 支持共享 VPC 源。如果您尚未创建 VPC 源，请参阅[通过 VPC 源限制访问](private-content-vpc-origins.md)。

在与其他 AWS 账户共享您拥有的 VPC 源时，您必须允许其将该资源用作 CloudFront 分配的源。

要共享一个 VPC 源，您必须将其添加到资源共享中。资源共享是一项 AWS RAM 资源，可让您跨 AWS 账户共享资源。

资源共享将指定：
+ 要共享的资源
+ 与之共享资源的使用者
+ 该服务的托管式策略，用于确定对资源的权限

在使用 CloudFront 控制台共享 VPC 源时，必须将其添加到现有资源共享中。如果您尚未拥有资源共享，则可在从 CloudFront 控制台共享 VPC 源时创建一个资源共享。您也可以使用 [AWS RAM 控制台](https://console.aws.amazon.com/ram)或 AWS CLI 单独创建一个资源共享。

您可以与其他 AWS 账户和 AWS Organizations 共享 VPC 源。
+ 如果您与 AWS 组织共享资源，则该特定组织中的所有使用者都有权访问 VPC 源。
+ 如果您与非自己所属的 AWS 账户或组织进行共享，则使用者将收到接受资源共享的邀请。接受后，他们便能使用 VPC 源。

您可以使用 CloudFront 控制台、AWS RAM 控制台或 AWS CLI 共享您拥有的 VPC 源。

**使用 CloudFront 控制台创建资源共享**

1. 通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，选择 **VPC 源**。

1. 选择一个或多个资源，然后选择**共享 VPC 源**。

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

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

1. 对于**主体类型**，选择下列选项之一：
   + **AWS 账户**：授予对特定 AWS 账户的访问权限。
   + **组织单元**：授予对特定组织单元（OU）的访问权限。
   + **组织**：授予对整个组织的访问权限，包括其子 OU 和 AWS 账户。

   1. 如果您已选择 **AWS 账户**，请输入账户 ID 号。您可以选择**添加新账户**以添加最多 5 个 AWS 账户。

   1. 如果您已选择**组织单元**，请输入 OU 单元 ARN。您只能输入 1 个 OU。

   1. 如果您已选择**组织**，则输入组织 ARN。您只能输入 1 个组织。

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

   默认情况下，CloudFront 对资源共享应用 AWS 托管式策略 [AWSRAMDefaultPermissionCloudFront](#aws-ram-default-permission-cloudfront)。此策略允许对资源共享执行只读操作，因此，使用账户无法更新或删除共享资源。您无法在资源共享中编辑或删除此策略。
**提示**  
创建资源共享后，您可以从 AWS RAM 控制台添加其他 AWS 账户。有关更多信息，请参阅《AWS RAM 用户指南》**中的[在 AWS RAM 中更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html?icmpid=docs_cf_help_panel)。

**使用 CloudFront 控制台共享您拥有的 VPC 源**

1. 通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，选择 **VPC 源**。

1. 选择一个资源，然后选择**共享 VPC 源**。

1. 在**共享 VPC 源**页面上，您可以选择要将此 VPC 源添加到其中的现有资源共享。

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

   在资源详细信息页面上的**共享对象**下，您会看到共享的 VPC 源与以下详细信息：
   + 资源共享名称
   + 共享状态
   + 上次修改日期

在您创建资源共享并将其与使用账户共享后，这些账户需在 12 小时内接受该邀请。有关更多信息，请参阅《AWS RAM 用户指南》**中的[接受和拒绝资源共享邀请](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-invitations.html)。

**重要**  
要支持使用账户为 CloudFront 分配使用 VPC 源，您还必须向这些账户提供 VPC 源的弹性负载均衡或 Amazon EC2 端点。

**使用 AWS RAM 控制台共享您拥有的 VPC 源**  
创建一个资源共享，然后选择要向该资源共享添加的 CloudFront 资源。有关更多信息，请参阅《AWS RAM 用户指南》**中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)。

**使用 AWS CLI 共享您拥有的 VPC 源**  
使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

## 使用共享 VPC 源
<a name="using-shared-vpc-origin"></a>

要使用共享 VPC 源，收到邀请的账户必须接受资源共享。为此，您可以导航到美国东部（弗吉尼亚州北部）区域的 AWS Resource Access Manager 控制台，然后在**待处理**选项卡中接受任何待处理的请求。有关更多信息，请参阅《AWS RAM 用户指南》**中的[接受共享资源](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-invitations.html)。

接受资源共享后，您可以使用 VPC 源作为 CloudFront 分配的源。

**使用共享 VPC 源**

1. 通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，对于**分配**，执行下列操作之一：
   + 对于新分配，选择**创建分配**。
   + 对于现有分配，选择分配 ID。

1. 对于**源类型**，选择 **VPC 源**，然后指定已与您共享的 VPC 源。

1. 对于 **VPC 源端点**，输入 Amazon EC2 实例或弹性负载均衡的负载均衡器的私有 DNS 名称，或输入源域。如果您尚未获得此值，则必须从拥有该 VPC 源的 AWS 账户中获取它。如果您尚未获得此端点，可从拥有该 VPC 源的 AWS 账户中获取它。

1. 执行其余的控制台步骤来创建或更新分配。

## 识别共享 VPC 源
<a name="sharing-identify"></a>

拥有者和使用者均可以使用 CloudFront 控制台和 AWS CLI 来识别共享 VPC 源。

**使用 CloudFront 控制台识别共享 VPC 源**

1. 通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，选择 **VPC 源**。您可以使用**所有者 ID** 列来识别该资源所属的 AWS 账户。

1. 选择资源。

1. 在资源详细信息页面上的**共享对象**下，您会看到共享的 VPC 源与以下详细信息：
   + 资源共享名称
   + 共享状态
   + 上次修改日期

## 取消对共享 VPC 源的共享
<a name="sharing-unshare"></a>

取消共享资源后，AWS 账户（使用账户）无法再将该资源用于新的分配或更新现有分配。

**注意**  
如果您取消共享某个资源，则仍在使用该资源的现有分配将保持活动状态，并将继续提供流量服务。但是，在删除作为源的已取消共享的资源之前，将无法编辑这些分配。我们建议您确保所有使用账户在您取消共享资源前，停止使用该资源。

要取消共享您拥有的共享 VPC 源，必须从资源共享中将其删除。您可以使用 CloudFront 控制台、AWS RAM 控制台或 AWS CLI 完成此操作。

**使用 CloudFront 控制台取消共享您拥有的共享 VPC 源**

1. 通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，选择 **VPC 源**。

1. 选择一个资源，然后选择**取消共享**。

1. 查看**取消共享资源**对话框中的详细信息，然后选择**取消共享**。列出的主体将无法再访问您的共享资源。

**使用 AWS RAM 控制台取消共享您拥有的共享 VPC 源**  
请参阅《AWS RAM 用户指南》**中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)。

**使用 AWS CLI 取消共享您拥有的共享 VPC 源**  
使用 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 命令。

## 共享 VPC 源的责任和权限
<a name="sharing-perms"></a>

### 所有者的权限
<a name="perms-owner"></a>

作为拥有资源的账户，请确保所有使用账户在您取消共享或删除资源之前停止使用该资源。

### 使用者的权限
<a name="perms-consumer"></a>

使用账户可使用共享资源作为其 CloudFront 分配的源，但无法编辑或删除资源。默认情况下，AWS 托管式策略 [AWSRAMDefaultPermissionCloudFront](#aws-ram-default-permission-cloudfront) 将应用于共享账户（拥有资源的账户）中的资源共享。

### AWSRAMDefaultPermissionCloudFront
<a name="aws-ram-default-permission-cloudfront"></a>

当您在 CloudFront 中创建资源共享时，CloudFront 会使用 AWS 托管式策略 **AWSRAMDefaultPermissionCloudFront** 并将其应用于您的资源共享。此策略对资源所有者可以共享的 CloudFront 资源，向使用账户授予只读权限。

有关管理 AWS RAM 中的权限的更多信息，请参阅《AWS Resource Access Manager 用户指南》**中的[在 AWS RAM 中管理权限](https://docs.aws.amazon.com/ram/latest/userguide/security-ram-permissions.html)。

## 计费和计量
<a name="sharing-billing"></a>

与其他 AWS 账户共享 VPC 源不会产生额外费用。使用共享 VPC 源的分配所产生的流量使用费用，将由拥有该分配的使用账户支付。

## 共享资源配额
<a name="sharing-quotas"></a>

CloudFront 使用 AWS RAM 所指定的资源共享配额。在 CloudFront 控制台中，您最多可以添加 5 个 AWS 账户、1 个 OU 或 1 个组织。要添加更多内容，请使用 AWS RAM 控制台或 AWS RAM API。

有关更多信息，请参阅《AWS RAM 用户指南》**中的 [AWS RAM 的服务配额](https://docs.aws.amazon.com/ram/latest/userguide/service-quotas.html)。