

# 使用 ARN、接入点别名或虚拟托管类型 URI 来引用接入点
<a name="access-points-naming"></a>

创建接入点后，您可以使用这些端点来执行多项操作。在引用接入点时，可以使用 Amazon 资源名称（ARN）、接入点别名或虚拟托管类型 URI。

**Topics**
+ [

## 接入点 ARN
](#access-points-arns)
+ [

## 接入点别名
](#access-points-alias)
+ [

## 虚拟托管类型 URI
](#accessing-a-bucket-through-s3-access-point)

## 接入点 ARN
<a name="access-points-arns"></a>

接入点具有 Amazon Resource Name（ARN）。接入点 ARN 与存储桶 ARN 类似，但它们是明确键入的，用于对接入点的 AWS 区域和接入点的拥有者的 AWS 账户 ID 进行编码。有关 ARN 的更多信息，请参阅《IAM 用户指南》**中的[使用 Amazon 资源名称（ARN）标识 AWS 资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)。

接入点 ARN 使用以下格式：

```
arn:aws:s3:region:account-id:accesspoint/resource
```
+ `arn:aws:s3:us-west-2:123456789012:accesspoint/test` 表示名为 `test` 的接入点，它在区域 *`us-west-2`* 中由账户 *`123456789012`* 拥有。
+ `arn:aws:s3:us-west-2:123456789012:accesspoint/*` 表示区域 *`us-west-2`* 中账户 *`123456789012`* 下的所有接入点。

通过接入点访问的对象的 ARN 使用以下格式：

```
arn:aws:s3:region:account-id:accesspoint/access-point-name/object/resource
```
+ `arn:aws:s3:us-west-2:123456789012:accesspoint/test/object/unit-01` 表示对象 *`unit-01`*，可通过名为 *`test`* 的接入点（在区域 *`us-west-2`* 中，由账户 *`123456789012`* 拥有）进行访问。
+ `arn:aws:s3:us-west-2:123456789012:accesspoint/test/object/*` 表示名为 *`test`* 的接入点（在区域 *`us-west-2`* 的账户 *`123456789012`* 中）的所有对象。
+ `arn:aws:s3:us-west-2:123456789012:accesspoint/test/object/unit-01/finance/*` 表示名为 *`test`* 的接入点（在区域 *`us-west-2`* 的账户 *`123456789012`* 中）的前缀 *`unit-01/finance/`* 下的所有对象。

## 接入点别名
<a name="access-points-alias"></a>

当您创建接入点时，Amazon S3 会自动生成一个别名。您可以使用该别名来替代 Amazon S3 存储桶名称以进行数据访问。对于接入点数据面板操作，您可以使用此接入点别名，而不是 Amazon 资源名称（ARN）。有关这些操作的列表，请参阅[接入点兼容性](access-points-service-api-support.md)。

接入点别名是在与 Amazon S3 存储桶相同的命名空间中创建的。此别名自动生成，无法更改。接入点别名符合有效 Amazon S3 存储桶名称的所有要求，包括以下部分：

`ACCESS POINT NAME-METADATA-s3alias`（适用于附加到 Amazon S3 存储桶的接入点）

`ACCESS POINT NAME-METADATA-ext-s3alias`（适用于附加到非 S3 存储桶数据来源的接入点）

**注意**  
`-s3alias` 和 `-ext-s3alias` 后缀保留用于接入点别名，不能用于存储桶或接入点名称。有关 Amazon S3 存储桶命名规则的更多信息，请参阅[通用存储桶命名规则](bucketnamingrules.md)。

### 接入点别名使用案例和限制
<a name="access-points-alias-use-case"></a>

采用接入点时，您可以使用接入点别名，而无需对代码进行大量更改。

当您创建接入点时，Amazon S3 会自动生成一个接入点别名，如下例所示。要运行此命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control create-access-point --bucket amzn-s3-demo-bucket1 --name my-access-point --account-id 111122223333
{
    "AccessPointArn": "arn:aws:s3:region:111122223333:accesspoint/my-access-point",
    "Alias": "my-access-point-aqfqprnstn7aefdfbarligizwgyfouse1a-s3alias"
}
```

在任何数据层面操作中，您都可以使用此接入点别名而不是 Amazon S3 存储桶名称。有关这些操作的列表，请参阅[接入点兼容性](access-points-service-api-support.md)。

以下有关 `get-object` 命令的 AWS CLI 示例使用存储桶的接入点别名来返回有关指定对象的信息。要运行此命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3api get-object --bucket my-access-point-aqfqprnstn7aefdfbarligizwgyfouse1a-s3alias --key dir/my_data.rtf my_data.rtf
            
{
    "AcceptRanges": "bytes",
    "LastModified": "2020-01-08T22:16:28+00:00",
    "ContentLength": 910,
    "ETag": "\"00751974dc146b76404bb7290f8f51bb\"",
    "VersionId": "null",
    "ContentType": "text/rtf",
    "Metadata": {}
}
```

#### 接入点别名限制
<a name="use-ap-alias-limitations"></a>
+ 客户无法配置别名。
+ 无法在接入点上删除、修改或禁用别名。
+ 在某些数据面板操作中，您可以使用此接入点别名，而不是 Amazon S3 存储桶名称。有关这些操作的列表，请参阅[接入点与 S3 操作的兼容性](access-points-service-api-support.md#access-points-operations-support)。
+ 您不能将一个接入点别名用于多个 Amazon S3 控制层面操作。有关 Amazon S3 控制层面操作的列表，请参阅《Amazon Simple Storage Service API 参考》**中的 [Amazon S3 控制](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_AWS_S3_Control.html)。
+ 您不能使用 S3 接入点别名作为 Amazon S3 控制台中**移动**操作的源或目标。
+ 别名不能用于 AWS Identity and Access Management（IAM）策略中。
+ 别名不能用作 S3 服务器访问日志的日志记录目标。
+ 别名不能用作 AWS CloudTrail 日志的日志记录目标。
+ Amazon SageMaker AI GroundTruth 不支持接入点别名。

## 虚拟托管类型 URI
<a name="accessing-a-bucket-through-s3-access-point"></a>

访问点仅支持虚拟主机式寻址。在虚拟托管类型 URI 中，接入点名称、AWS 账户和 AWS 区域是 URL 中域名的一部分。有关虚拟托管的更多信息，请参阅[通用存储桶的虚拟托管](VirtualHosting.md)。

接入点的虚拟托管类型 URI 使用以下格式：

```
https://access-point-name-account-id.s3-accesspoint.region.amazonaws.com
```

**注意**  
如果您的访问点名称包含破折号 (-) 字符，请在 URL 中包含破折号，然后在账户 ID 之前插入另一个破折号。例如，要使用区域 *`us-west-2`* 中由账户 *`123456789012`* 拥有的名为 *`finance-docs`* 的接入点，相应的 URL 应为 `https://finance-docs-123456789012.s3-accesspoint.us-west-2.amazonaws.com`。
S3 接入点不支持通过 HTTP 进行访问。接入点仅支持通过 HTTPS 进行安全访问。