本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Directory Service Data 條件索引鍵
使用 Directory Service Data 條件索引鍵,將特定陳述式新增至使用者和群組層級存取。這可讓使用者決定哪些主體可以對哪些資源以及在哪些條件下執行動作。
條件元素 或條件區塊 可讓您指定陳述式生效的條件。Condition 元素是可選用的。您可以建立使用條件運算子的條件運算式,例如等於 (=) 或小於 (<),以將政策中的條件與請求中的值相符。
如果您在陳述式中指定多個條件元素,或在單一條件元素中指定多個索引鍵, 會使用邏輯AND操作 AWS 來評估它們。如果您為單一條件索引鍵指定多個值, 會使用邏輯 OR 操作 AWS 來評估條件。必須符合所有條件,才會授與陳述式的許可。您也可以在指定條件時使用預留位置變數。例如,只有在IAM使用者使用使用者名稱標記時,您才能授予使用者存取資源的許可。如需詳細資訊,請參閱 IAM 使用者指南 中的具有多個金鑰或值的條件。
如需支援這些條件金鑰的動作清單,請參閱服務授權參考 中的AWS 目錄服務資料定義的動作。
注意
如需標籤型資源層級許可的相關資訊,請參閱 搭配 IAM 政策使用標籤。
ds-data:SAMAccountName
適用於字串運算子 。
檢查具有 指定的政策SAMAccountName
是否符合請求中使用的輸入。每個請求只能提供單一SAM帳戶名稱。
注意
此條件索引鍵不區分大小寫。無論字母大小寫為何,您都必須使用 StringEqualsIgnoreCase
或 StringNotEqualsIgnoreCase
條件運算子來比較字串值。
允許使用者或群組搜尋 AD 物件
下列政策允許使用者jstiles
或 的任何成員test-group
搜尋 AWS Managed Microsoft AD 網域中的使用者、成員和群組。
重要
使用 SAMAccountName
或 時MemberName
,建議您指定ds-data:Identifier
為 SAMAccountName
。這可防止 AWS Directory Service Data 支援的未來識別符,例如 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:Identifier
適用於字串運算子 。
指定請求中使用的識別符類型。我們建議一律在識別符條件金鑰SAMAccountName
中指定,因此目錄服務資料中支援的任何未來識別符都不會破壞現有的許可。
注意
目前, 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 支援的未來識別符,例如 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" ] } } } ] }