Directory Service 数据条件键 - AWS Directory Service

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

Directory Service 数据条件键

使用 Directory Service Data 条件键向用户和组级访问添加特定语句。这允许用户决定哪些委托人可以在什么条件下对哪些资源执行操作。

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

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

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

注意

有关基于标签的资源级权限的信息,请参阅。结合使用标签和 IAM 策略

ds-data:SAMAccountName

适用于字符串运算符

检查具有指定值的策略是否与请求中使用的输入SAMAccountName相匹配。每个请求中只能提供一个SAM账户名。

注意

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

允许用户或群组搜索 AD 对象

以下策略允许用户jstiles或其任何成员搜索 AWS 托管 Microsoft AD 域中的用户、成员和群组。test-group

重要

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SearchOnTrustedDomain", "Effect": "Allow", "Action": "ds-data:Search*", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:SAMAccountName": [ "jstiles", "test-group" ], "StringEqualsIgnoreCase": { "ds-data:identifier": [ "SAMAccountName" ] } } } } ] }

ds-data: 标识符

适用于字符串运算符

指定请求中使用的标识符的类型。我们建议始终在标识符条件键SAMAccountName中指定,这样 Directory Service Data 中支持的任何未来标识符都不会破坏您的现有权限。

注意

目前,SAMAccountName是唯一允许的值。但是,将来可能会允许使用更多值。

允许用户或群组按领域更新用户

以下策略允许用户jstiles或其任何成员test-group更新example-domain.com领域中的用户信息。标识符密钥可确保SAMAccountName这是在请求上下文中传递的 ID 类型。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateUsersonDomain", "Effect": "Allow", "Action": "ds-data:UpdateUser", "Resource": "*", "Condition": { "StringEquals": { "ds-data:SAMAccountName": [ "jstiles", "test-group" ], "StringEquals": { "ds-data:Identifier": [ "SAMAccountName" ], "StringEquals": { "ds-data:Realm": [ "example-domain.com" ] } } } } } ] }

ds-data:MemberName

适用于字符串运算符

检查具有指定值的策略是否与请求中使用的成员的姓名MemberName相匹配。

注意

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

允许将成员添加到群组

以下策略允许用户或角色将成员添加到指定目录中的群组中,前提是MemberName已添加到该组的成员以开头region-1

重要

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateGroupsWithRegionalMembers", "Effect": "Allow", "Action": "ds-data:UpdateGroup", "Resource": "arn:aws:ds::123456789012:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:MemberName": [ "region-1-*" ] } } } ] }

ds-data:MemberRealm

适用于字符串运算符

检查策略MemberRealm中的是否与请求中使用的成员领域相匹配。

注意

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

允许将成员添加到领域中的群组

以下策略允许用户或角色向跨域可信领域的群组添加成员。

注意

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateMembersInRealm", "Effect": "Allow", "Action": "ds-data:UpdateGroup", "Resource": "arn:aws:ds::123456789012:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:MemberRealm": [ "region-1-*" ] } } } ] }

ds-data: Realm

适用于字符串运算符

检查策略Realm中的是否与请求中使用的领域相匹配。

注意

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

允许将群组添加到领域

以下策略允许用户或角色在指定领域中创建群组。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateGroupsInRealm", "Effect": "Allow", "Action": "ds-data:CreateGroup", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:Realm": [ "example-domain.com" ] } } } ] }