

# 配置多区域接入点以便与 AWS PrivateLink 共同使用
<a name="MultiRegionAccessConfiguration"></a>

您可以使用多区域接入点在 AWS 区域之间路由 Amazon S3 请求流量。每个多区域接入点全局端点可路由来自多个来源的 Amazon S3 数据请求流量，而无需使用单独的端点构建复杂的网络配置。这些数据请求流量来源包括：
+ 源自虚拟私有云（VPC）的流量
+ 通过 AWS PrivateLink 传输的来自本地数据中心的流量 
+ 来自公共互联网的流量

如果您与 S3 多区域接入点建立 AWS PrivateLink 连接，则可以使用简单的网络架构和配置，通过私有连接将 S3 请求路由到 AWS 或跨多个 AWS 区域路由请求。使用 AWS PrivateLink 时，无需配置 VPC 对等连接。

**Topics**
+ [配置多区域接入点选择加入区域](ConfiguringMrapOptInRegions.md)
+ [配置多区域接入点以便与 AWS PrivateLink 共同使用](MultiRegionAccessPointsPrivateLink.md)
+ [从 VPC 端点删除对多区域接入点的访问](RemovingMultiRegionAccessPointAccess.md)

# 配置多区域接入点选择加入区域
<a name="ConfiguringMrapOptInRegions"></a>

AWS 选择加入区域是默认情况下未在您的 AWS 账户中启用的区域。相比之下，默认情况下启用的区域称为 AWS 区域或商业区域。

要开始在 AWS 选择加入区域中使用多区域接入点，必须在创建多区域接入点之前，手动为您的 AWS 账户启用选择加入区域。启用选择加入区域后，可以使用选定的选择加入区域中的存储桶创建多区域接入点。有关如何为您的 AWS 账户或 AWS 组织启用或禁用选择加入区域的说明，请参阅 [Enable or disable a Region for standalone accounts](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone) 或 [Enable or disable a Region in your organization](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-organization)。

**注意**  
目前仅通过 AWS SDK 和 AWS CLI 来支持多区域接入点选择加入区域。

 S3 多区域接入点支持以下 AWS 选择加入区域：
+ `Africa (Cape Town)`
+ `Asia Pacific (Hong Kong)`
+ `Asia Pacific (Jakarta)`
+ `Asia Pacific (Melbourne)`
+ `Asia Pacific (Hyderabad)`
+ `Canada West (Calgary)`
+ `Europe (Zurich)`
+ `Europe (Milan)`
+ `Europe (Spain)`
+ `Israel (Tel Aviv)`
+ `Middle East (Bahrain)`
+ `Middle East (UAE)`

**注意**  
启用选择加入区域不需要额外费用。但是，在多区域接入点中创建或使用资源会产生账单费用。

## 在 AWS 选择加入区域中使用多区域接入点
<a name="UsingMrapOptInRegions"></a>

要在多区域接入点上执行[数据面板操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MrapOperations.html)，所有关联的 AWS 账户都必须启用作为多区域接入点一部分的选择加入区域。此要求适用于请求者账户、多区域接入点拥有者、S3 存储桶拥有者和 VPC 端点拥有者。如果其中的任何账户未启用 AWS 选择加入区域，则多区域接入点请求将失败。有关 `InvalidToken` 或 `AllAccessDisabled` 错误的更多信息，请参阅 [List of error codes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList)。

**注意**  
[控制面板操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MrapOperations.html)（例如，更新多区域接入点策略或更新失效转移配置）不受作为多区域接入点一部分的任何区域的选择加入区域状态影响。在删除多区域接入点之前，也不需要禁用任何活动的选择加入区域。

## 禁用活动的 AWS 选择加入区域
<a name="DisablingMrapOptInRegions"></a>

如果禁用作为多区域接入点一部分的选择加入区域，则路由到此区域的请求将导致 `403 AllAccessDisabled` 错误。为了安全地禁用选择加入区域，我们建议您首先在多区域接入点配置中确定一个备用区域，以便将流量路由到该区域。然后，可以使用多区域接入点失效转移控制措施来将备用区域标记为主动区域，并将要禁用的区域标记为被动区域。更改失效转移控制措施后，可以禁用要选择退出的区域。

## 启用之前禁用的 AWS 选择加入区域
<a name="EnablingDisabledMrapOptInRegions"></a>

要启用之前为多区域接入点禁用的选择加入 AWS 区域，请务必更新您的 AWS 账户设置。重新启用选择加入区域后，运行 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html) API 操作，以便将多区域接入点策略应用于选择加入区域。

如果通过 VPC 端点访问多区域接入点，我们建议您更新 VPCE 策略，并使用 [ModifyVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html) API 操作将更新后的 VPC 端点策略应用于重新启用的选择加入区域。

## 多区域接入点策略和多个 AWS 账户
<a name="UsingMrapPolicyOptInRegions"></a>

如果多区域接入点策略向多个 AWS 账户授予访问权限，则所有请求者账户还必须在其账户设置中启用相同的选择加入区域。如果请求者账户提交多区域接入点请求，但没有启用作为多区域接入点一部分的选择加入区域，则会导致 `400 InvalidToken` 错误。

## AWS 选择加入区域注意事项
<a name="MrapOptInRegionsConsiderations"></a>

从选择加入区域访问多区域接入点时，请注意以下几点：
+ 启用选择加入区域后，就可以使用该选择加入区域中的存储桶来创建多区域接入点了。禁用选择加入区域后，选择加入区域将不再支持多区域接入点。如果您不再想为多区域接入点启用选择加入区域，请务必先[为您的账户禁用该区域](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone)。然后，使用您首选的选择加入区域列表创建一个新的多区域接入点。
+ 如果尝试使用禁用的选择加入区域来创建多区域接入点，则会收到 `403 InvalidRegion` 错误。启用选择加入区域后，再次尝试创建多区域接入点。
+ 一个多区域接入点支持的最大区域数为 17 个区域。这包括选择加入区域和商业区域。有关更多信息，请参阅[多区域接入点限制和局限性](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRestrictions.html)。
+ 即使您没有选择加入任何区域，对多区域接入点的控制面板请求也会起作用。
+ 首次尝试创建多区域接入点时，必须选择加入所有作为多区域接入点一部分的区域。
+ 通过多区域接入点策略获得对 S3 多区域接入点的访问权限的任何 AWS 账户，也必须启用作为多区域接入点一部分的相同选择加入区域。

# 配置多区域接入点以便与 AWS PrivateLink 共同使用
<a name="MultiRegionAccessPointsPrivateLink"></a>

 AWS PrivateLink使用虚拟私有云（VPC）中的私有 IP 地址， 为您提供与 Amazon S3 的私有连接。您可以在 VPC 内预置一个或多个接口端点，连接到 Amazon S3 多区域接入点。

 通过 AWS 管理控制台、AWS CLI 或 AWS 开发工具包，您可以创建多区域接入点的 **com.amazonaws.s3-global.accesspoint** 端点。要了解有关如何为多区域接入点配置接口端点的更多信息，请参阅 *VPC 用户指南*中的[接口 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)。

 要通过接口端点向多区域接入点发出请求，请按照以下步骤配置 VPC 和多区域接入点。

**配置多区域接入点与 AWS PrivateLink 一起使用**

1. 创建或拥有可连接到多区域接入点的适当 VPC 端点。有关创建 VPC 端点的更多信息，请参阅 *VPC 用户指南*中的[接口 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)。
**重要**  
 请确保创建 **com.amazonaws.s3-global.accesspoint** 端点。其他端点类型无法访问多区域接入点。

   创建此 VPC 端点后，如果为端点启用了私有 DNS，则 VPC 中的所有多区域接入点请求都会通过此端点路由。默认为启用状态。

1. 如果多区域接入点策略不支持来自 VPC 端点的连接，需要对其进行更新。

1. 验证各个桶策略是否允许访问多区域接入点的用户。

请记住，多区域接入点的工作方式是将请求路由到桶，而不是自行完成请求。重要的是要牢记，因为请求的发起人必须具有对多区域接入点的权限，并允许访问多区域接入点中的各个桶。否则，请求可能会被路由到发起方没有执行请求的权限的桶。多区域接入点和关联的桶必须由相同或另一个 AWS 账户拥有。但是，如果权限配置正确，来自不同帐户的 VPC 可以使用多区域接入点。

因此，VPC 端点策略必须允许访问多区域接入点和您希望能够满足请求的每个底层桶。例如，假设您有一个别名为 `mfzwi23gnjvgw.mrap` 的多区域接入点。它由桶 `amzn-s3-demo-bucket1` 和 `amzn-s3-demo-bucket2` 提供支持，所有这些都归 AWS 账户 `123456789012` 所有。在这种情况下，以下 VPC 端点策略将允许来自 VPC 的对 `mfzwi23gnjvgw.mrap` 发出的 `GetObject` 请求由任一备份桶来完成。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Sid": "Read-buckets-and-MRAP-VPCE-policy",
        "Principal": "*",
        "Action": [
            "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "arn:aws:s3:::amzn-s3-demo-bucket2/*",
            "arn:aws:s3::111122223333:accesspoint/mfzwi23gnjvgw.mrap/object/*"
        ]
    }]
}
```

------

如前所述，您还必须确保将多区域接入点策略配置为支持通过 VPC 端点进行访问。您无需指定正在请求访问的 VPC 端点。以下示例策略将向任何试图使用多区域接入点进行 `GetObject` 请求的请求者授予访问权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Sid": "Open-read-MRAP-policy",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
            "s3:GetObject"
          ],
        "Resource": "arn:aws:s3::111122223333:accesspoint/mfzwi23gnjvgw.mrap/object/*"
    }]
}
```

------

当然，每个桶都需要一个策略来支持通过 VPC 端点提交请求的访问。以下示例策略向任何匿名用户授予读取权限，其中包括通过 VPC 端点发出的请求。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
       "Sid": "Public-read",
       "Effect": "Allow",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket1",
           "arn:aws:s3:::amzn-s3-demo-bucket2/*"]
    }]
}
```

------

 有关编辑 VPC 端点策略的更多信息，请参阅《VPC 用户指南》**中的[使用 VPC 端点控制对服务的访问](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

# 从 VPC 端点删除对多区域接入点的访问
<a name="RemovingMultiRegionAccessPointAccess"></a>

如果您拥有多区域接入点，并希望从接口端点删除对该接入点的访问权限，则必须为多区域接入点提供新的访问策略，以防止访问通过 VPC 端点的请求。但是，如果您的多区域接入点中的桶支持通过 VPC 端点的请求，它们将继续支持这些请求。如果想阻止该支持，还必须更新桶的策略。向多区域接入点提供新的访问策略只会阻止访问多区域接入点，而不会阻止访问底层桶。

**注意**  
您无法删除多区域接入点的访问策略。要删除对多区域接入点的访问权限，必须提供一个新的访问策略，其中包含所需的修改访问权限。

您可以更新桶策略来阻止通过 VPC 端点的请求，而不是更新多区域接入点的访问策略。在这种情况下，用户仍然可以通过 VPC 端点访问多区域接入点。但是，如果多区域接入点请求路由到某个桶，而该桶中的桶策略阻止访问，则该请求将生成错误消息。