AWS Identity and Access Management
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

IAM JSON 策略元素: Resource

Resource 元素可指定声明涵盖的一个或多个对象。声明必须包含 ResourceNotResource 元素。您可使用 ARN 来指定资源。(有关 ARN 格式的更多信息,请参阅 Amazon Resource Names (ARNs) and AWS Service Namespaces。)

每款产品均拥有其各自的资源。尽管您经常使用 ARN 来指定资源,但资源的 ARN 详情要取决于产品和资源。有关如何指定资源的信息,请参阅您编写的资源声明所对应的产品文档。

注意

某些服务不让您指定用于单个资源的操作,而是在 ActionNotAction 元素中列出的所有操作都适用于该服务中的所有资源。在这些情况下,您可以在 Resource 元素中使用通配符 *

下列示例适用于特定的 Amazon SQS 队列。

"Resource": "arn:aws-cn:sqs:us-west-2:account-ID-without-hyphens:queue1"

以下示例引用了 AWS 账户中名为 Bob 的 IAM 用户。

"Resource": "arn:aws-cn:iam::account-ID-without-hyphens:user/Bob"

您可将通配符作为资源 ARN 的一部分。可在任何 ARN 分段(用冒号分隔的部分) 中使用通配符 (* 和 ?)。星号 (*) 表示字符的任意组合,问号 (?) 表示任何单个字符。可在每个分段中使用多个 * 或 ? 字符,但通配符不能跨分段。以下示例引用了其路径为 /accounting 的所有 IAM 用户。

"Resource": "arn:aws-cn:iam::account-ID-without-hyphens:user/accounting/*"

下列示例适用于特定 Amazon S3 存储段内的所有项目。

"Resource": "arn:aws-cn:s3:::my_corporate_bucket/*"

您可指定多个资源。下列示例适用于两个 DynamoDB 表。

"Resource": [ "arn:aws-cn:dynamodb:us-west-2:account-ID-without-hyphens:table/books_table", "arn:aws-cn:dynamodb:us-west-2:account-ID-without-hyphens:table/magazines_table" ]

Resource 元素中,您可以在标识特定资源的 ARN 部分 (即,ARN 尾部) 中使用 JSON 策略变量。例如,您可以使用键 {aws:username} 作为资源 ARN 的一部分,以表示应包含当前用户的名称作为资源名称的一部分。下列示例显示如何在 Resource 元素中使用 {aws:username} 键。该策略允许访问匹配当前用户名称的 Amazon DynamoDB 表。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws-cn:dynamodb:us-west-2:ACCOUNT-ID-WITHOUT-HYPHENS:table/${aws:username}" } }

有关 JSON 策略变量的更多信息,请参阅IAM 策略元素:变量