使用 ARN、接入点别名或虚拟托管类型 URI 来引用通用存储桶的接入点
创建通用存储桶的接入点后,您可以使用这些端点来执行多项操作。在引用通用存储桶的接入点时,可以使用 Amazon 资源名称(ARN)、接入点别名或虚拟托管类型 URI。
通用存储桶的接入点 ARN
接入点具有 Amazon Resource Name(ARN)。通用存储桶的接入点 ARN 与存储桶 ARN 类似,但它们是明确键入的,用于对接入点的 AWS 区域和接入点拥有者的 AWS 账户 ID 进行编码。有关 ARN 的更多信息,请参阅《AWS 一般参考》中的 Amazon 资源名称(ARN)。
接入点 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/
通用存储桶的接入点别名
当您创建通用存储桶的接入点时,Amazon S3 会自动生成一个别名,您可以使用该别名来替代 Amazon S3 存储桶名称以进行数据访问。对于接入点数据面板操作,您可以使用此接入点别名,而不是 Amazon 资源名称(ARN)。有关这些操作的列表,请参阅通用存储桶的接入点兼容性。
接入点别名是在与 Amazon S3 存储桶相同的命名空间中创建的。此别名自动生成,无法更改。接入点别名符合有效 Amazon S3 存储桶名称的所有要求,包括以下部分:
access point
prefix
-metadata
-s3alias
注意
-s3alias
后缀是为接入点别名预留的,不能用于存储桶或接入点名称。有关 Amazon S3 存储桶命名规则的更多信息,请参阅通用存储桶命名规则。
通用存储桶的接入点别名用例和限制
采用通用存储桶的接入点时,您可以使用接入点别名,而无需对代码进行大量更改。
当您创建通用存储桶的接入点时,Amazon S3 会自动生成一个接入点别名,如下例所示。要运行此命令,请将
替换为您自己的信息。user
input placeholders
aws s3control create-access-point --bucket
amzn-s3-demo-bucket1
--namemy-access-point
--account-id111122223333
{ "AccessPointArn": "arn:aws:s3:region
:111122223333
:accesspoint/my-access-point
", "Alias": "my-access-point
-aqfqprnstn7aefdfbarligizwgyfouse1a
-s3alias" }
在任何数据层面操作中,您都可以使用此接入点别名而不是 Amazon S3 存储桶名称。有关这些操作的列表,请参阅通用存储桶的接入点兼容性。
以下有关 get-object
命令的 AWS CLI 示例使用存储桶的接入点别名来返回有关指定对象的信息。要运行此命令,请将
替换为您自己的信息。user input placeholders
aws s3api get-object --bucket
my-access-point
-aqfqprnstn7aefdfbarligizwgyfouse1a
-s3alias --keydir/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": {} }
接入点别名限制
-
客户无法配置别名。
-
无法在接入点上删除、修改或禁用别名。
-
在某些数据面板操作中,您可以使用此接入点别名,而不是 Amazon S3 存储桶名称。有关这些操作的列表,请参阅通用存储桶的接入点与 S3 操作的兼容性。
-
您不能将一个接入点别名用于多个 Amazon S3 控制层面操作。有关 Amazon S3 控制层面操作的列表,请参阅《Amazon Simple Storage Service API 参考》中的 Amazon S3 控制。
-
您不能使用 S3 接入点别名作为 Amazon S3 控制台中移动操作的源或目标。
-
别名不能用于 AWS Identity and Access Management(IAM)策略中。
-
别名不能用作 S3 服务器访问日志的日志记录目标。
-
别名不能用作 AWS CloudTrail 日志的日志记录目标。
-
Amazon SageMaker GroundTruth 不支持接入点别名。
虚拟托管类型 URI
通用存储桶的接入点仅支持虚拟托管类型寻址。在虚拟托管类型 URI 中,接入点名称、AWS 账户和 AWS 区域是 URL 中域名的一部分。有关虚拟托管的更多信息,请参阅存储桶的虚拟托管。
接入点的虚拟托管类型 URI 使用以下格式:
https://
access-point-name
-account-id
.s3-accesspoint.region
.amazonaws.com
注意
-
如果您的访问点名称包含破折号 (-) 字符,请在 URL 中包含破折号,然后在账户 ID 之前插入另一个破折号。例如,要使用区域
中由账户us-west-2
拥有的名为123456789012
的接入点,相应的 URL 应为finance-docs
https://
。finance-docs
-123456789012
.s3-accesspoint.us-west-2
.amazonaws.com -
S3 接入点不支持通过 HTTP 进行访问。接入点仅支持通过 HTTPS 进行安全访问。