多值上下文键示例 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

多值上下文键示例

以下一组策略示例演示了如何使用多值上下文键创建策略条件。

示例:使用条件集合运算符 ForAllValues 的拒绝策略

请求中包含特定的标签键前缀时,以下基于身份的策略示例拒绝使用 IAM 标记操作。上下文键 aws:TagKeys 的每个值包含用于部分字符串匹配的通配符(*)。此策略包括具有上下文键 aws:TagKeys 的 ForAllValues 集合运算符,因为请求上下文键可以包含多个值。为了让上下文键 aws:TagKeys 返回 true,请求中的每个值必须至少与策略中的一个值匹配。

如果请求中没有上下文键或者上下文键值解析为空数据集(如空字符串),则 ForAllValues 集合运算符也会返回 true。为了防止缺失的上下文键或具有空值的上下文键评估为 true,如果请求中存在上下文键且其值不为空,您可以在策略中包含具有 false 值的 Null 条件运算符。

重要

该策略不允许进行任何操作。可将此策略与允许特定操作的其他策略结合使用。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyRestrictedTags", "Effect": "Deny", "Action": [ "iam:Tag*", "iam:UnTag*" ], "Resource": [ "*" ], "Condition": { "Null": { "aws:TagKeys": "false" }, "ForAllValues:StringLike": { "aws:TagKeys": [ "key1*", "key2*", "key3*" ] } } } ] }

示例:使用条件集合运算符 ForAnyValue 的拒绝策略

如果任何快照使用策略中指定的标签键之一(environment 或 webserver)进行标记,则以下基于身份的策略示例拒绝创建 EC2 实例卷的快照。此策略包括具有上下文键 aws:TagKeys 的 ForAnyValue 集合运算符,因为请求上下文键可以包含多个值。如果您的标记请求包含策略中指定的任何一个标签键值,则 aws:TagKeys 上下文键返回 true,以调用拒绝策略效果。

重要

该策略不允许进行任何操作。可将此策略与允许特定操作的其他策略结合使用。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:CreateSnapshot", "ec2:CreateSnapshots" ], "Resource": "arn:aws:ec2:us-west-2::snapshot/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["environment", "webserver"] } } } ] }