Directory Service Data 条件键 - AWS Directory Service

Directory Service Data 条件键

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

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

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

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

注意

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

ds-data:SAMAccountName

字符串运算符结合使用。

此键用于明确允许或拒绝某个 IAM 角色对特定用户和组执行操作。

重要

使用 SAMAccountNameMemberName 时,我们建议将 ds-data:Identifier 指定为 SAMAccountName。这样可以防止 AWS Directory Service Data 未来支持的标识符(例如 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 主体对任何组中的成员 joe 执行 AddGroupMember

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 主体为领域 ONE.TRU1.AMAZON.COM 中的成员 bob 调用 AddGroupMember

注意

以下示例仅使用 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 API 发出请求的领域相匹配。

注意

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

以下策略拒绝 IAM 主体对领域 one.tru1.amazon.com 调用 ListUsers

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