디렉터리 서비스 데이터 조건 키
디렉터리 서비스 데이터 조건 키를 사용하여 사용자 및 그룹 수준 액세스에 특정 문을 추가합니다. 이를 통해 사용자는 어떤 주체가 어떤 리소스와 어떤 조건에서 작업을 수행할 수 있는지 결정할 수 있습니다.
조건 요소 또는 조건 블록을 사용하면 정책이 발효되는 조건을 지정할 수 있습니다. Condition 요소는 선택 사항입니다. 같음(=) 또는 작음(<)과 같은 조건 연산자를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다.
한 문에서 여러 조건 요소를 지정하거나 단일 조건 요소에서 여러 키를 지정하는 경우, AWS는 논리적 AND 태스크를 사용함으로써 평가합니다. 단일 조건 키의 여러 값을 지정하는 경우, AWS는 논리적 OR 태스크를 사용함으로써 조건을 평가합니다. 명문의 권한을 부여하기 전에 모든 조건을 충족해야 합니다. 조건을 지정할 때 자리 표시자 변수를 사용할 수도 있습니다. 예를 들어, 사용자 이름으로 태그가 지정된 경우에만 리소스에 액세스할 수 있는 권한을 IAM 사용자에게 부여할 수 있습니다. 자세한 내용은 IAM 사용자 가이드에서 여러 키 또는 값이 있는 상태를 참조하세요.
이러한 조건 키를 지원하는 작업 목록은 서비스 권한 부여 참조의 AWS 디렉터리 서비스 데이터에 정의된 작업을 참조하세요.
참고
태그 기반 리소스 수준 권한에 대한 자세한 내용은 IAM 정책에 태그 사용을 참조하세요.
ds-data:SAMAccountName
문자열 연산자를 사용합니다.
지정된 SAMAccountName
이 포함된 정책이 요청에 사용된 입력과 일치하는지 확인합니다. 각 요청에는 단일 SAM 계정 이름만 제공할 수 있습니다.
참고
이 조건 키는 대/소문자를 구분하지 않습니다. StringEqualsIgnoreCase
또는 StringNotEqualsIgnoreCase
조건 연산자를 사용하여 문자 사례에 관계없이 문자열 값을 비교해야 합니다.
사용자 또는 그룹이 AD 객체를 검색하도록 허용
다음 정책은 사용자 jstiles
또는 test-group
의 모든 구성원이 AWS 관리형 Microsoft AD 도메인에서 사용자, 멤버 및 그룹을 검색할 수 있도록 허용합니다.
중요
SAMAccountName
또는 MemberName
을 사용할 때는 ds-data:Identifier
를 SAMAccountName
으로 지정하는 것이 좋습니다. 이렇게 하면 SID
와 같이 AWS 디렉터리 서비스 데이터가 지원하는 향후 식별자가 기존 권한을 깨지 않습니다.
{ "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
으로 지정하는 것이 좋습니다. 이렇게 하면 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" ] } } } ] }