Directory Service Data 条件键 - Amazon Directory Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Directory Service Data 条件键

使用 Directory Service Data 条件键向用户和组级别访问权限添加特定语句。这使用户能够决定哪些主体可以对什么资源执行操作,以及在什么条件下执行。

条件元素条件块让您可以指定语句生效的条件。条件元素为可选元素。您可以创建使用条件运算符(例如,等于(=)或小于(<))的条件表达式,以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个条件元素,或在单个条件元素中指定多个键,则 Amazon 会使用 AND 逻辑运算评估条件。如果您为单个条件键指定多个值,则使用逻辑 OR 运算来 Amazon 评估条件。在授予语句的权限之前必须满足所有的条件。在指定条件时,您也可以使用占位符变量。例如,仅当某个资源以 IAM 用户名进行标记时,您才能向该 IAM 用户授予访问该资源的权限。有关信息,请参阅《IAM 用户指南》中的具有多个键或值的条件

有关哪些操作支持这些条件键的列表,请参阅《服务授权参考》中的 “ Amazon Directory Service Data” 定义的操作

注意

有关基于标签的资源级别权限的信息,请参阅在 IAM 策略中使用标签

ds-data:姓名 SAMAccount

字符串运算符结合使用。

使用此密钥明确允许或拒绝 IAM 角色对特定用户和群组执行操作。

重要

使用 SAMAccountNameMemberName 时,我们建议将 ds-data:Identifier 指定为 SAMAccountName。这样可以防止 Amazon Directory Service Data 支持的 future 标识符(例如SID)破坏现有权限。

以下策略拒绝 IAM 委托人描述用户joe或描述群组joegroup

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyDescribe", "Effect": "Deny", "Action": "ds-data:Describe*", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:SAMAccountName": [ "joe", "joegroup" ], "ds-data:identifier": [ "SAMAccountName" ] } } } ] }
注意

此条件键不区分大小写。无论字母大小写如何,都必须使用 StringEqualsIgnoreCaseStringNotEqualsIgnoreCase 条件运算符来比较字符串值。

ds-data:Identifier

字符串运算符结合使用。

使用此密钥定义要在 IAM 策略权限中使用哪个标识符。目前仅支持 SAMAccountName

以下策略允许 IAM 委托人更新用户joe

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "UpdateJoe", "Effect": "Allow", "Action": "ds-data:UpdateUser", "Resource": "arn:aws:ds:us-east-1:111122223333:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:SAMAccountName": [ "joe" ], "ds-data:identifier": [ "SAMAccountName" ] } } } ] }

ds-data:MemberName

字符串运算符结合使用。

使用此键定义可以对其执行操作的成员。

重要

使用 MemberNameSAMAccountName 时,我们建议将 ds-data:Identifier 指定为 SAMAccountName。这样可以防止 Directory Service Data 未来支持的标识符(例如 SID)破坏现有权限。

以下策略允许 IAM 委托人AddGroupMember对任何群组joe中的成员执行任务。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AddJoe", "Effect": "Allow", "Action": "ds-data:AddGroupMember", "Resource": "arn:aws:ds:us-east-1:111122223333:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:MemberName": "joe" } } } ] }
注意

此条件键不区分大小写。无论字母大小写如何,都必须使用 StringEqualsIgnoreCaseStringNotEqualsIgnoreCase 条件运算符来比较字符串值。

ds-data:MemberRealm

字符串运算符结合使用。

使用此键检查策略中的ds-data:MemberRealm值是否与请求中的成员领域相匹配。

注意

此条件键不区分大小写。无论字母大小写如何,都必须使用 StringEqualsIgnoreCaseStringNotEqualsIgnoreCase 条件运算符来比较字符串值。

以下策略允许 IAM 委托人调AddGroupMember用领域bob中的成员ONE.TRU1.AMAZON.COM

注意

以下示例仅使用 ds-data:MemberName 上下文键。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "addbob", "Effect": "Allow", "Action": "ds-data:AddGroupMember", "Resource": "arn:aws:ds:us-east-1:111122223333:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:MemberName": "bob", "ds-data:MemberRealm": "one.tru1.amazon.com" } } } ] }

ds-data:Realm

字符串运算符结合使用。

使用此密钥检查策略中的ds-data:Realm值是否与 IAM 委托人可用于向 Directory Service Data 发出请求的领域相匹配 APIs。

注意

此条件键不区分大小写。无论字母大小写如何,都必须使用 StringEqualsIgnoreCaseStringNotEqualsIgnoreCase 条件运算符来比较字符串值。

以下策略拒绝 IAM 委托人调用ListUsers该领域one.tru1.amazon.com

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyTrustedList", "Effect": "Deny", "Action": "ds-data:ListUsers", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:Realm": [ "one.tru1.amazon.com" ] } } } ] }