

# 使用 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 进行安全访问。