本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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账户名。
注意
此条件键不区分大小写。无论字母大小写如何,都必须使用StringEqualsIgnoreCase
或StringNotEqualsIgnoreCase
条件运算符来比较字符串值。
允许用户或群组搜索 AD 对象
以下策略允许用户jstiles
或其任何成员搜索 AWS 托管 Microsoft AD 域中的用户、成员和群组。test-group
重要
使用SAMAccountName
或时MemberName
,我们建议指定ds-data:Identifier
为SAMAccountName
。这样可以防止 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
相匹配。
注意
此条件键不区分大小写。无论字母大小写如何,都必须使用StringEqualsIgnoreCase
或StringNotEqualsIgnoreCase
条件运算符来比较字符串值。
允许将成员添加到群组
以下策略允许用户或角色将成员添加到指定目录中的群组中,前提是MemberName
已添加到该组的成员以开头region-1
。
重要
使用MemberName
或时SAMAccountName
,我们建议指定ds-data:Identifier
为SAMAccountName
。这样可以防止 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
中的是否与请求中使用的成员领域相匹配。
注意
此条件键不区分大小写。无论字母大小写如何,都必须使用StringEqualsIgnoreCase
或StringNotEqualsIgnoreCase
条件运算符来比较字符串值。
允许将成员添加到领域中的群组
以下策略允许用户或角色向跨域可信领域的群组添加成员。
注意
以下示例仅使用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
中的是否与请求中使用的领域相匹配。
注意
此条件键不区分大小写。无论字母大小写如何,都必须使用StringEqualsIgnoreCase
或StringNotEqualsIgnoreCase
条件运算符来比较字符串值。
允许将群组添加到领域
以下策略允许用户或角色在指定领域中创建群组。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateGroupsInRealm", "Effect": "Allow", "Action": "ds-data:CreateGroup", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:Realm": [ "example-domain.com" ] } } } ] }