本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
RCP 语法
资源控制策略 (RCPs) 使用的语法与基于资源的策略使用的语法类似。有关IAM策略及其语法的更多信息,请参阅《IAM用户指南》中的IAM策略概述。
的结构RCP是根据以下规则进行的JSON
注意
你中的所有字符都按其最大大小进行RCP计数。本指南中的示例显示了带有额外空格以提高其可读性的RCPs格式化内容。但是,在您的策略大小接近最大大小时,可以删除任何空格(例如,引号之外的空格字符和换行符)来节省空间。
有关 RCPs 的一般信息,请参阅 资源控制策略 (RCPs)。
元素摘要
下表汇总了您可以在中使用的策略元素RCPs。支持的效果列列出了您可以与中的每个策略元素一起使用的效果类型RCPs。
注意
的效果Allow
仅支持RCPFullAWSAccess
策略的效果
的效果Allow
仅支持RCPFullAWSAccess
策略的效果。启用资源控制策略后,此策略将自动附加到组织根目录、每个 OU 和组织中的每个账户 (RCPs)。您无法分离此政策。此默认设置RCP允许所有委托人和操作访问权限通过RCP评估,这意味着在您开始创建和附加之前RCPs,您的所有现有IAM权限将继续按原样运行。这不授予访问权限。
元素 | 用途 |
---|---|
版本 | 指定要用于处理策略的语言语法规则。 |
Statement | 充当策略元素的容器。中可以有多个语句RCPs。 |
Statement ID (Sid) | (可选)提供语句的友好名称。 |
效果 | 定义该RCP语句是否拒绝访问账户中的资源。 |
主体 | 指定允许或拒绝访问账户中资源的委托人。 |
指定RCP允许或拒绝的 AWS 服务和操作。 |
|
资源 | 指定RCP适用的 AWS 资源。 |
NotResource |
指定免于的 AWS 资源RCP。用来代替 |
Condition | 指定语句何时生效的条件。 |
主题
Version
元素
每个元素都RCP必须包含一个带有值的Version
元素"2012-10-17"
。这与最新版本的IAM权限策略的版本值相同。
"Version": "2012-10-17",
有关更多信息,请参阅《IAM用户指南》中的 “IAMJSON策略元素:版本”。
Statement
元素
RCP由一个或多个Statement
元素组成。策略中只能有一个Statement
关键字,但该值可以是一JSON组语句(由 [] 字符包围)。
以下示例显示了由单个Effect
、Principal
Action
、和Resource
元素组成的单个语句。
{ "Statement": { "Effect": "Deny", "Principal": "*", "Action": "*", "Resource": "*" } }
有关更多信息,请参阅《IAM用户指南》中的 “IAMJSON策略元素:声明”。
Statement ID (Sid
) 元素
Sid
是您针对策略语句提供的可选标识符。您可以为语句数组中的每个语句指定 Sid
值。以下示例RCP显示了一个示例Sid
语句。
{ "Statement": { "Sid": "DenyAllActions", "Effect": "Deny", "Principal": "*", "Action": "*", "Resource": "*" } }
有关更多信息,请参阅《IAM用户指南》中的 “IAMJSON策略元素:Sid”。
Effect
元素
每个语句必须包含一个 Effect
元素。使用Effect
元素Deny
中的值,您可以限制对特定资源的访问权限或定义何时生效RCPs的条件。为RCPs此,您创建的值必须是Deny
。有关更多信息,请参阅RCP评估《IAM用户指南》中的 “IAMJSON策略元素:效果”。
Principal
元素
每条语句都必须包含Principal
元素。只能在 a 的Principal
元素中指定 “*
” RCP。使用Conditions
元素来限制特定的委托人。
有关更多信息,请参阅《IAM用户指南》中的 “IAMJSON策略元素:委托人”。
Action
元素
每条语句都必须包含Action
元素。
Action
元素的值是一个字符串或字符串列表(JSON数组),用于标识语句允许或拒绝的 AWS 服务和操作。
每个字符串都由服务的缩写(例如 “s3”、“sqs” 或 “sts”)组成,全部为小写,后跟一个冒号,然后是来自该服务的操作。通常,输入时每个单词都以大写字母开头,其余单词以小写字母开头。例如:"s3:ListAllMyBuckets"
。
也可以使用通配符,例如星号 (*) 或问号 (?) 在一个RCP:
-
使用星号(*)通配符以匹配名称中包含相同部分的多个操作。值
"s3:*"
表示 Amazon S3 服务中的所有操作。该值仅"sts:Get*"
匹配以 “Get” 开头的 AWS STS 操作。 -
使用问号(?)通配符来匹配单个字符。
注意
通配符 (*) 和问号 (?) 可以在动作名称中的任何地方使用
与不同SCPs,您可以使用通配符,例如星号 (*) 或问号 (?) 动作名称中的任意位置。
有关支持的服务的列表RCPs,请参阅AWS 服务 该支持清单 RCPs。有关 AWS 服务 支持的操作列表,请参阅《服务授权参考》中的 “AWS 服务操作、资源和条件密钥”。
有关更多信息,请参阅《IAM用户指南》中的 “IAMJSON策略元素:操作”。
Resource
和 NotResource
元素
每条语句都必须包含Resource
或NotResource
元素。
您可以使用通配符,例如星号 (*) 或问号 (?) 在资源元素中:
-
使用星号(*)通配符以匹配名称中包含相同部分的多个操作。
-
使用问号(?)通配符来匹配单个字符。
有关更多信息,请参阅《IAM用户指南》 NotResource中的 “IAMJSONIAMJSON策略元素:资源” 和 “策略元素:”。
Condition
元素
您可以在 deny 语句中指定一个Condition
元素RCP。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "*", "Condition:": { "BoolIfExists": { "aws:SecureTransport": "false" } } } ] }
这将RCP拒绝访问 Amazon S3 操作和资源,除非请求是通过安全传输进行的(请求已通过发送TLS)。
有关更多信息,请参阅《IAM用户指南》中的 “IAMJSON策略元素:条件”。
不支持的元素
中不支持以下元素RCPs:
-
NotPrincipal
NotAction