

# 创建目录存储桶的接入点
<a name="creating-access-points-directory-buckets"></a>

与目录存储桶一样，可以在可用区或专用本地区域中创建接入点。接入点必须在与其关联的目录存储桶所在的同一区域中创建。

一个接入点只与一个 Amazon S3 目录存储桶相关联。如果您想使用您的 AWS 账户中的目录存储桶，则必须首先创建目录存储桶。有关创建目录存储桶的更多信息，请参阅[在可用区中创建目录存储桶](directory-bucket-create.md)或[在本地区域中创建目录存储桶](create-directory-bucket-LZ.md)。

您也可以创建与另一个 AWS 账户中的存储桶关联的跨账户接入点，只要您知道存储桶名称和存储桶拥有者的账户 ID。但是，在获得存储桶拥有者授予的权限之前，创建跨账户接入点不会授予您访问存储桶中数据的权限。存储桶拥有者必须通过存储桶策略向接入点拥有者的账户（您的账户）授予对存储桶的访问权限。有关更多信息，请参阅 [授予跨账户接入点的权限](access-points-policies.md#access-points-cross-account)。

您可以使用 AWS 管理控制台、AWS CLI、REST API 或 AWS SDK 为任何目录存储桶创建接入点。每个接入点都与单个目录存储桶相关联，并且可以为每个存储桶创建数百个接入点。创建接入点时，您可以选择接入点的名称以及要与之关联的目录存储桶。接入点名称由您提供的基本名称和包含存储桶位置的可用区 ID 的后缀组成，后跟 `--xa-s3`。例如 `myaccesspoint-zoneID--xa-s3`。您还可以通过虚拟私有云（VPC）限制对接入点的访问。然后，您可以使用接入点的名称立即开始通过接入点读取和写入数据，就像使用目录存储桶名称一样。

您可以使用接入点范围，将通过接入点对目录存储桶的访问限制为特定前缀或 API 操作。如果您不向接入点添加范围，则当通过接入点进行访问时，可以对存储桶中的对象执行目录存储桶中的所有前缀和所有 API 操作。创建接入点后，您可以使用 AWS CLI、AWS SDK 或 REST API 添加、修改或删除范围。有关更多信息，请参阅 [管理目录存储桶的接入点的范围](access-points-directory-buckets-manage-scope.md)。

创建接入点后，您可以配置接入点 IAM 资源策略。有关更多信息，请参阅 [查看、编辑或删除接入点策略](access-points-directory-buckets-policy.md)。

## 使用 S3 控制台
<a name="access-points-directory-buckets-create-ap"></a>

**注意**  
也可以从目录存储桶屏幕为目录存储桶创建接入点。执行此操作时，将提供目录存储桶名称，并且在创建接入点时无需选择存储桶。有关更多信息，请参阅 [列出目录存储桶](directory-buckets-objects-ListExamples.md)。

**创建目录存储桶的接入点**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要在其中创建接入点的区域。接入点和关联存储桶必须位于同一区域中。

1. 在左侧导航窗格中，选择**目录存储桶的接入点**。

1. 在**接入点**页面上，选择**创建接入点**。

1. 您可以在您的账户或其它账户中创建目录存储桶的接入点。要在其它账户中创建目录存储桶的接入点，请执行以下操作：
**注意**  
如果您使用其他 AWS 账户中的存储桶，存储桶拥有者必须更新存储桶策略才能授权来自接入点的请求。有关存储桶策略示例，请参阅 [授予跨账户接入点的权限](access-points-directory-buckets-policies.md#access-points-directory-buckets-cross-account)。

   1. 在**目录存储桶**字段中，选择**指定另一个账户中的存储桶**。

   1. 在**存储桶所有者账户 ID** 字段中，输入拥有存储桶的 AWS 账户 ID。

   1. 在**存储桶名称**字段中，输入存储桶的名称，包括基本名称和可用区 ID。例如 ***bucket-base-name*--*zone-id*--x-s3**。

1. 要在您的账户中创建目录存储桶的接入点，请执行以下操作：

   1. 在**目录存储桶**字段中，选择**选择此账户中的存储桶**。

   1. 在**存储桶名称**字段中，输入存储桶的名称，包括基本名称和可用区 ID。例如 ***bucket-base-name*--*zone-id*--x-s3**。要从列表中选择存储桶，请选择**浏览 S3** 并选择目录存储桶。

1. 在**接入点名称**的**基本名称**字段中，输入接入点的基本名称。将显示可用区 ID 和完整的接入点名称。有关命名接入点的更多信息，请参阅[目录存储桶的接入点的命名规则](access-points-directory-buckets-restrictions-limitations-naming-rules.md#access-points-directory-buckets-names)。

1. 在**网络来源**中，选择**虚拟私有云（VPC）**或**互联网**。如果您选择**虚拟私有云（VPC）**，请在 **VPC ID** 字段中输入要与接入点一起使用的 VPC 的 ID。

1. （可选）在**接入点范围**中，要将范围应用于此接入点，请选择**使用前缀或权限限制此接入点的范围**。

   1. 要限制对目录存储桶中前缀的访问，请在**前缀**中输入一个或多个前缀。要添加其它前缀，请选择**添加前缀**。要移除前缀，请选择**移除**。
**注意**  
接入点范围的所有前缀的总字符数限制为 512 个字符。您可以在**添加前缀**下方看到剩余字符数量。

   1. 在**权限**中，选择接入点将支持的一个或多个 API 操作。要移除数据操作，请选择数据操作名称旁边的 **X**。

1. 要不将范围应用于接入点并支持通过接入点访问目录存储桶中的所有前缀和所有 API 操作，请在**接入点范围**中，选择**将访问权限应用到整个存储桶**。

1. 选择**创建目录存储桶的接入点**。接入点名称和其它有关它的信息显示在**目录存储桶的接入点**列表中。

## 使用 AWS CLI
<a name="creating-access-point-cli-directory-bucket"></a>

以下示例命令为账户 *111122223333* 中的存储桶 **amzn-s3-demo-bucket*--*zone-id*--x-s3* 创建了一个名为 *example-ap* 的接入点。

```
aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3
```

要限制通过 VPC 访问接入点，请包括 `--vpc` 参数和 VPC ID。

```
aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3 --vpc vpc-id
```

在为跨账户存储桶创建接入点时，请包含 `--bucket-account-id` 参数。以下示例命令在 AWS 账户 *111122223333* 中，为存储桶 **amzn-s3-demo-bucket*--*zone-id*--x-s3* 创建一个接入点（由 AWS 账户 *444455556666* 拥有）。

```
aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3 --bucket-account-id 444455556666
```

有关更多信息和示例，请参阅《AWS CLI Command Reference》中的 [create-access-point](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/create-access-point.html)。

## 使用 REST API
<a name="creating-access-point-directory-bucket-rest-api"></a>

以下示例命令为账户 *111122223333* 中的存储桶 **amzn-s3-demo-bucket*--*zone-id*--x-s3* 创建一个名为 *example-ap* 的接入点，并通过 VPC *vpc-id* 限制访问权限（可选）。

```
PUT /v20180820/accesspoint/example-ap--zoneID--xa-s3 HTTP/1.1
Host: s3express-control.region.amazonaws.com
x-amz-account-id: 111122223333
<?xml version="1.0" encoding="UTF-8"?>
<CreateAccessPointRequest>
   <Bucket>amzn-s3-demo-bucket--zone-id--x-s3s</Bucket>
   <BucketAccountId>111122223333</BucketAccountId>
   <VpcConfiguration>
       <VpcId>vpc-id</VpcId>
   </VpcConfiguration>
</CreateAccessPointRequest>
```

响应：

```
HTTP/1.1 200
<?xml version="1.0" encoding="UTF-8"?>
<CreateAccessPointResult>
   <AccessPointArn>
       "arn:aws:s3express:region:111122223333:accesspoint/example-ap--zoneID--xa-s3"
   </AccessPointArn>
   <Alias>example-ap--zoneID--xa-s3</Alias>
</CreateAccessPointResult>
```

## 使用 AWS SDK
<a name="creating-access-point-directory-bucket-sdk"></a>

可以使用 AWS SDK 创建接入点。有关更多信息，请参阅《Amazon Simple Storage Service API Reference》中的 [list of supported SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html#API_control_CreateAccessPoint_SeeAlso)。