RCP 语法 - AWS Organizations

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

RCP 语法

资源控制策略 (RCPs) 使用的语法与基于资源的策略使用的语法类似。有关 IAM 策略及其语法的更多信息,请参阅《IAM 用户指南》https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html中的 IAM 策略概述

RCP 根据 JSON 的规则设置结构。它使用本主题中所述的元素。

注意

RCP 中的所有字符都将计入其最大大小。本指南中的示例显示了带有额外空格以提高其可读性的 RCPs 格式化内容。但是,在您的策略大小接近最大大小时,可以删除任何空格(例如,引号之外的空格字符和换行符)来节省空间。

有关的一般信息 RCPs,请参见资源控制策略 (RCPs)

元素摘要

下表汇总了您可以在中使用的策略元素 RCPs。

注意

RCPFullAWSAccess 策略支持 Allow 的影响

RCPFullAWSAccess 策略支持 Allow 的影响。启用资源控制策略后,此策略将自动附加到组织根目录、每个 OU 和组织中的每个账户 (RCPs)。您无法分离此策略。此默认 RCP 允许所有委托人和操作访问权限通过 RCP 评估,这意味着在您开始创建和附加之前 RCPs,您的所有现有 IAM 权限将继续按原样运行。这样不会授予访问权限。

元素 用途
版本 指定要用于处理策略的语言语法规则。
Statement 充当策略元素的容器。中可以有多个语句 RCPs。
Statement ID (Sid) (可选)提供语句的友好名称。
效果 定义 RCP 语句是否拒绝访问账户中的资源。
主体 指定允许或拒绝访问账户中资源的主体。

操作

指定 RCP 允许或拒绝的 AWS 服务和操作。

资源 指定 RCP 适用的 AWS 资源。
NotResource

指定免受 RCP 限制的 AWS 资源。用来代替 Resource 元素。

Condition 指定语句何时生效的条件。

Version 元素

每个 RCP 都必须包含 Version 元素,其值为 "2012-10-17"。此版本值与 IAM 权限策略的最新版本相同。

有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:版本

Statement 元素

一个 RCP 可包含一个或多个 Statement 元素。一条策略中只能有一个 Statement 关键字,但其值可以是 JSON 语句数组 (使用 [ ] 字符括起)。

以下示例展示了包含单个 EffectPrincipalActionResource 元素的单个语句。

{ "Statement": { "Effect": "Deny", "Principal": "*", "Action": "s3:PutBucketPublicAccessBlock", "Resource": "*" } }

有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:语句

Statement ID (Sid) 元素

Sid 是您针对策略语句提供的可选标识符。您可以为语句数组中的每个语句指定 Sid 值。以下示例 RCP 展示了一个示例 Sid 语句。

{ "Statement": { "Sid": "DenyBPAConfigurations", "Effect": "Deny", "Principal": "*", "Action": "s3:PutBucketPublicAccessBlock", "Resource": "*" } }

有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:Sid

Effect 元素

每个语句必须包含一个 Effect 元素。使用Effect元素Deny中的值,您可以限制对特定资源的访问权限或定义何时生效 RCPs 的条件。为 RCPs 此,您创建的值必须是Deny。有关更多信息,请参阅 RCP 评估和《IAM 用户指南》中的 IAM JSON 策略元素:Effect

Principal 元素

每个语句都必须包含 Principal 元素。您只能在 RCP 的 Principal 元素中指定“*”。使用 Conditions 元素来限制特定主体。

有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:Principal

Action 元素

每个语句都必须包含 Action 元素。

Action元素的值是一个字符串或字符串列表(JSON 数组),用于标识语句允许或拒绝的 AWS 服务和操作。

所有字符串均包含服务简写(例如“s3”“sqs”或“sts”),全部为小写,后跟冒号,然后是该服务的操作。通常,其输入方式为每个单词的开头是大写字母,其余为小写字母。例如:"s3:ListAllMyBuckets"

您也可以在 RCP 中使用星号(*)或问号(?)等通配符:

  • 使用星号(*)通配符以匹配名称中包含相同部分的多个操作。值 "s3:*" 表示 Amazon S3 服务中的所有操作。该值仅"sts:Get*"匹配以 “Get” 开头的 AWS STS 操作。

  • 使用问号(?)通配符来匹配单个字符。

注意

通配符(*)和问号(?)可用在操作名称中的任何位置

在客户管理的 RCP 的 Action 元素中,您不能使用“*”,并且必须指定要限制访问的服务的缩写(例如“s3”“sqs”或“sts”)。

有关支持的服务的列表 RCPs,请参阅AWS 服务 该支持清单 RCPs。有关 AWS 服务 支持的操作列表,请参阅《服务授权参考》中的 “AWS 服务操作、资源和条件密钥”。

有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:操作

ResourceNotResource 元素

每个语句都必须包含 ResourceNotResource 元素。

您可以在资源元素中使用星号(*)或问号(?)等通配符:

  • 使用星号(*)作为通配符来匹配名称中包含相同部分的多个资源。

  • 使用问号(?)通配符来匹配单个字符。

有关更多信息,请参阅 IAM 用户指南中的 IAM JSON 策略元素: NotResource资源和参阅 I AM JSON 策略元素:。

Condition 元素

您可以在 RCP 中的 Deny 语句中指定 Condition 元素。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "*", "Condition": { "BoolIfExists": { "aws:SecureTransport": "false" } } } ] }

除非通过安全传输发出请求(通过 TLS 发送请求),否则此 RCP 会拒绝访问 Amazon S3 的操作和资源。

有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:条件

不支持的元素

中不支持以下元素 RCPs:

  • NotPrincipal

  • NotAction