本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
策略结构
以下主题说明 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:条件是可选的。它们可以用于控制策略生效的时间。
有关的示例 IAM 策略语句的更多信息Amazon Batch请参阅创建Amazon BatchIAM 策略.
Amazon Batch 操作
在 IAM 策略语句中,您可以从支持 IAM 的任何服务中指定任何 API 操作。适用于Amazon Batch对于,请使用以下前缀为 API 操作命名:batch:
. 例如:batch:SubmitJob
和batch: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
)。 - region
-
资源所在区域(例如,
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 策略附加到该测试用户。然后,以测试用户身份提出请求。您可以在控制台中提出测试请求,也可以使用 Amazon CLI 提出测试请求。
您也可以使用IAM 策略模拟器
如果策略未向用户授予您所期望的权限,或者策略过度宽松,可以根据需要调整策略。重新测试,直到获得预期的结果。
在其生效之前,它需要几分钟时间将策略更改为适合状态。因此,我们建议您在测试策略更新前,等候五分钟的时间。
如果身份验证检查失败,该请求将返回一个带有诊断信息的代码消息。您可以使用 DecodeAuthorizationMessage
操作对消息进行解码。有关更多信息,请参阅 。DecodeAuthorization消息中的Amazon Security Token ServiceAPI 参考, 和decode-authorization-message中的Amazon CLI命令参考.