Amazon S3 资源
以下常用 Amazon 资源名称 (ARN) 格式标识 Amazon 中的资源。
arn:
partition
:service
:region
:namespace
:relative-id
有关 ARN 的信息,请参阅《Amazon Web Services 一般参考》中的 Amazon 资源名称(ARN)。
有关资源的信息,请参阅 IAM 用户指南中的 IAM JSON 策略元素:Resource。
Amazon S3 ARN 不包括 Amazon Web Services 区域和命名空间,但包括以下内容:
-
分区 -
aws
是通用分区名称。如果您的资源位于中国(北京)区域,则分区名称为aws-cn
。 -
服务 -
s3
。 -
相对 ID -
bucket-name
或bucket-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 标识 /developers/design_info.doc
桶中的 examplebucket
对象。
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
部分中同时使用通配符*
和?
。它标识桶(例如example1bucket
、example2bucket
、example3bucket
等)中的所有对象。arn:aws:s3:::example?bucket/*
策略变量
您可以在 Amazon S3 ARN 中使用策略变量。在策略评估时,这些预定义变量被它们的相应值替换。假设您将桶组织为一个文件夹的集合,每个用户拥有一个文件夹。文件夹名称与用户名称相同。要为他们的文件夹授予用户权限,您可以在资源 ARN 中指定策略变量:
arn:aws:s3:::bucket_name/developers/${aws:username}/
在运行时,在评估策略时,资源 ARN 中的 ${aws:username}
变量将替换为发出请求的用户名。