策略结构 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

策略结构

以下主题说明 IAM 策略的结构。

策略语法

IAM 策略是包含一个或多个语句的 JSON 文档。每个语句的结构如下:

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value" } } } ] }

组成语句的各个元素如下:

  • 效果: 这些区域有:效果Allow或者Deny。在默认情况下,IAM 用户没有使用资源和 API 操作的许可,因此,所有请求均会被拒绝。显式允许将覆盖默认规则。显式拒绝将覆盖任何允许。

  • 操作:这些区域有:操作是对其授予或拒绝权限的特定 API 操作。要了解有关指定 action 的信息,请参阅 Amazon Batch 操作

  • 资源:受操作影响的资源。随着一段时间Amazon BatchAPI 操作,您可以在策略中包括该操作可以创建或修改的特定资源。要在语句中指定资源,您可使用其 Amazon 资源名称 (ARN)。有关更多信息,请参阅 Amazon Batch API 操作支持的资源级权限适用于 Amazon Batch 的Amazon 资源名称。如果Amazon BatchAPI 操作目前不支持资源级权限,您必须使用 * 通配符指定操作可以影响所有资源。

  • Condition:条件是可选的。它们可以用于控制策略生效的时间。

有关适用于Amazon Batch,请参阅创建Amazon BatchIAM 策略

Amazon Batch 操作

在 IAM 策略语句中,您可以从支持 IAM 的任何服务中指定任何 API 操作。适用于Amazon Batch,请使用以下前缀为 API 操作命名:batch:。 例如:batch:SubmitJobbatch:CreateComputeEnvironment

要在单个语句中指定多项操作,请使用逗号将它们隔开,如下所示:

"Action": ["batch:action1", "batch:action2"]

您也可以使用通配符 (*) 指定多项操作。例如,您可以指定名称以单词“Describe”开头的所有操作,如下所示:

"Action": "batch:Describe*"

要指定所有Amazon BatchAPI 操作,请使用通配符 (*),如下所示:

"Action": "batch:*"

有关列表Amazon Batch操作,请参阅操作中的Amazon BatchAPI 参考

适用于 Amazon Batch 的Amazon 资源名称

每个 IAM 策略语句适用于您使用资源的 ARN 指定的资源。

ARN 的一般语法如下:

arn:aws:[service]:[region]:[account]:resourceType/resourcePath
service

服务 (例如,batch)。

区域

资源所在区域(例如,us-east-2)。

账户

Amazon 账户 ID,不包含连字符(例如,123456789012)。

resourceType

资源类型 (例如,compute-environment)。

resourcePath

识别资源的路径。您可以在路径中使用通配符 (*)。

Amazon Batch API 操作当前支持多个 API 操作的资源级权限。有关更多信息,请参阅 Amazon Batch API 操作支持的资源级权限。要指定所有资源,或者如果特定 API 操作不支持 ARN,请在Resource元素,如下所示:

"Resource": "*"

检查用户是否具有所需权限

在实施 IAM 策略之前,建议您检查它是否向用户授予了使用其所需的特定 API 操作和资源的权限。

首先,创建一个 IAM 用于测试目的的 IAM 用户,然后将 IAM 策略附加到该测试用户。然后,以测试用户身份提出请求。您可以在控制台中提出测试请求,也可以使用 Amazon CLI 提出测试请求。

注意

您也可以使用IAM 策略模拟器。有关策略模拟器的更多信息,请参阅使用 IAM 策略模拟器中的IAM 用户指南

如果策略未向用户授予您所期望的权限,或者策略过度宽松,可以根据需要调整策略。重新测试,直到获得预期的结果。

重要

在其生效之前,它需要几分钟时间将策略更改为适合状态。因此,我们建议您在测试策略更新前,等候五分钟的时间。

如果身份验证检查失败,该请求将返回一个带有诊断信息的代码消息。您可以使用 DecodeAuthorizationMessage 操作对消息进行解码。有关更多信息,请参阅 Amazon Security Token Service API Reference 中的 DecodeAuthorizationMessage,以及 Amazon CLI Command Reference 中的 decode-authorization-message