选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

IAM JSON 策略元素:Resource

聚焦模式
IAM JSON 策略元素:Resource - AWS Identity and Access Management

IAM 策略语句中的 Resource 元素指定了该语句适用的一个或多个对象。语句必须包含 ResourceNotResource 元素。

使用 Amazon 资源名称(ARN)指定资源。ARN 的格式取决于 AWS 服务 和所引用的特定资源。尽管 ARN 格式各不相同,但您始终使用 ARN 来标识资源。有关 ARN 格式的更多信息,请参见 IAM ARN。有关如何指定资源的信息,请参阅您编写的资源声明所对应的产品文档。

注意

有些 AWS 服务 不允许您为单个资源指定操作。在这些情况下,您在 ActionNotAction 元素中列出的任何操作都适用于该服务中的所有资源。如果是这种情况,则可以在 Resource 元素中使用通配符(*)。

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

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

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

注意

Resource 元素中,IAM 用户名区分大小写。

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

在资源 ARN 中使用通配符

您可在 ARN(用冒号分隔的部分)的各分段中使用通配符(*?)来表示:

  • 字符的任意组合(*

  • 任何单个字符(?

您可以在每个分段中使用多个 *? 字符。如果 * 通配符是资源 ARN 分段的最后一个字符,则它可以扩展以匹配冒号边界以外的内容。我们建议您在 ARN 分段内使用通配符(*?),用冒号隔开。

注意

不得在服务分段中使用可识别 AWS 产品的通配符。有关 ARN 分段的更多信息,请参阅 使用 Amazon 资源名称(ARN)标识 AWS 资源

以下示例引用了其路径为 /accounting 的所有 IAM 用户。

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

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

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"

星号(*)字符可以展开以替换分段中的所有内容,包括像正斜杠(/)这样的字符,否则这些字符可能在给定服务命名空间中显示为分隔符。例如,请考虑以下 Amazon S3 ARN,因为相同的通配符扩展逻辑适用于所有服务。

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"

ARN 中的通配符适用于存储桶中的以下所有对象,而不仅仅是列出的第一个对象。

amzn-s3-demo-bucket/1/test/object.jpg amzn-s3-demo-bucket/1/2/test/object.jpg amzn-s3-demo-bucket/1/2/test/3/object.jpg amzn-s3-demo-bucket/1/2/3/test/4/object.jpg amzn-s3-demo-bucket/1///test///object.jpg amzn-s3-demo-bucket/1/test/.jpg amzn-s3-demo-bucket//test/object.jpg amzn-s3-demo-bucket/1/test/

考虑前一个列表中的最后两个对象。Amazon S3 对象名称可以常规分隔符正斜杠(/)字符开头或结尾。虽然 / 可作为分隔符,但在资源 ARN 中使用此字符时没有特定意义。它将被视为与任何其他有效字符相同。ARN 将不与以下对象匹配:

amzn-s3-demo-bucket/1-test/object.jpg amzn-s3-demo-bucket/test/object.jpg amzn-s3-demo-bucket/1/2/test.jpg

指定多个资源

您可以使用 ARN 数组在 Resource 元素中指定多个资源。下列示例适用于两个 DynamoDB 表。

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

在资源 ARN 中使用策略变量

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

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:account-id:table/${aws:username}" } }

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

下一主题:

NotResource

上一主题:

NotAction
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。