

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

# Directory Service Data 条件键
<a name="iam_dsdata-condition-keys"></a>

使用 [Directory Service Data](https://docs.aws.amazon.com/directoryservicedata/latest/DirectoryServiceDataAPIReference/welcome.html) 条件键向用户和组级别访问权限添加特定语句。这使用户能够决定哪些主体可以对什么资源执行操作，以及在什么条件下执行。

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

如果您在一个语句中指定多个条件元素，或在单个条件元素中指定多个键，则 AWS 会使用 AND 逻辑运算评估条件。如果您为单个条件键指定多个值，则使用逻辑 OR 运算来 AWS 评估条件。在授予语句的权限之前必须满足所有的条件。在指定条件时，您也可以使用占位符变量。例如，仅当某个资源以 IAM 用户名进行标记时，您才能向该 IAM 用户授予访问该资源的权限。有关信息，请参阅《IAM 用户指南》**中的[具有多个键或值的条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html)。

有关哪些操作支持这些条件键的列表，请参阅《[*服务授权参考*》中的 “ AWS Directory Service Data” 定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_directoryservice-data.html)。

**注意**  
有关基于标签的资源级别权限的信息，请参阅[在 IAM 策略中使用标签](IAM_Auth_Access_IdentityBased.md#using_tags_with_iam_policies)。

## ds-data：姓名 SAMAccount
<a name="dsdata_condition-SAMAccountName"></a>

与[字符串运算符](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

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

**重要**  
使用 `SAMAccountName` 或 `MemberName` 时，我们建议将 `ds-data:Identifier` 指定为 `SAMAccountName`。这样可以防止 AWS 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"
          ]
        }
      }
    }
  ]
}
```

------

**注意**  
此条件键不区分大小写。无论字母大小写如何，都必须使用 `[StringEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 或 `[StringNotEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 条件运算符来比较字符串值。

## ds-data:Identifier
<a name="dsdata_condition-identifier"></a>

与[字符串运算符](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

此键用于定义要在 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
<a name="dsdata_condition-MemberName"></a>

与[字符串运算符](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

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

**重要**  
使用 `MemberName` 或 `SAMAccountName` 时，我们建议将 `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}}"
            }
        }
    }
  ]
}
```

------

**注意**  
此条件键不区分大小写。无论字母大小写如何，都必须使用 `[StringEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 或 `[StringNotEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 条件运算符来比较字符串值。

## ds-data：MemberRealm
<a name="dsdata_condition-MemberRealm"></a>

与[字符串运算符](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

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

**注意**  
此条件键不区分大小写。无论字母大小写如何，都必须使用 `[StringEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 或 `[StringNotEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 条件运算符来比较字符串值。

以下策略允许 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
<a name="dsdata_condition-Realm"></a>

与[字符串运算符](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)结合使用。

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

**注意**  
此条件键不区分大小写。无论字母大小写如何，都必须使用 `[StringEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 或 `[StringNotEqualsIgnoreCase](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)` 条件运算符来比较字符串值。

以下策略拒绝 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}}"
          ]
        }
      }
    }
  ]
}
```

------