Amazon S3 资源 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

Amazon S3 资源

以下常用 Amazon 资源名称 (ARN) 格式标识 AWS 中的资源。

arn:partition:service:region:namespace:relative-id

有关 ARN 的信息,请参阅《AWS 一般参考》中的 Amazon 资源名称 (ARN)

有关资源的信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:Resource

Amazon S3 ARN 不包括 AWS 区域和命名空间,但包括以下内容:

  • 分区 - aws 是通用分区名称。如果您的资源位于中国(北京)区域,则分区名称为 aws-cn

  • 服务 - s3

  • 相对 ID - bucket-namebucket-name/object-key。可以使用通配符。

Amazon S3 资源的 ARN 格式缩减成:

arn:aws:s3:::bucket_name/key_name

有关 Amazon S3 资源的完整列表,请参阅Amazon S3 的操作、资源和条件键

要找到 S3 存储桶的 ARN,您可以查看 Amazon S3 控制台的 Bucket Policy (存储桶策略)CORS configuration (CORS 配置) 权限页面。有关更多信息,请参阅以下主题:

Amazon S3 ARN 示例

以下是 Amazon S3 资源 ARN 的示例。

指定了存储桶名称和对象密钥

以下 ARN 标识 examplebucket 存储桶中的 /developers/design_info.doc 对象。

arn:aws:s3:::examplebucket/developers/design_info.doc

通配符

您可将通配符作为资源 ARN 的一部分。您可在任何 ARN 分段 (用冒号分隔的部分) 中使用通配符 (*?)。星号 (*) 表示 0 个或多个字符的任意组合,问号 (?) 表示任何单个字符。您可在每个分段中使用多个 *? 字符,但通配符不能跨分段。

  • 以下 ARN 在此 ARN 的相对 ID 部分使用通配符 * 来标识 examplebucket 存储桶中的所有对象。

    arn:aws:s3:::examplebucket/*
  • 以下 ARN 使用 * 来表示所有 Amazon S3 资源(您账户中的所有 S3 存储桶和对象)。

    arn:aws:s3:::*
  • 以下 ARN 在 relative-ID 部分中同时使用通配符 *?。它标识存储桶 (例如 example1bucketexample2bucketexample3bucket 等) 中的所有对象。

    arn:aws:s3:::example?bucket/*

策略变量

您可以在 Amazon S3 ARN 中使用策略变量。在策略评估时,这些预定义变量被它们的相应值替换。假设您将存储桶组织为一个文件夹的集合,每个用户拥有一个文件夹。文件夹名称与用户名称相同。要为他们的文件夹授予用户权限,您可以在资源 ARN 中指定策略变量:

arn:aws:s3:::bucket_name/developers/${aws:username}/

在运行时,在评估策略时,资源 ARN 中的 ${aws:username} 变量将替换为发出请求的用户名。