GetContextKeysForPrincipalPolicy 사용하기
GetContextKeysForPrincipalPolicy 사용하기 (CLI)
GetContextKeysForPrincipalPolicy(컨텍스트 키 조회(보안 주체 정책)) API를 활용하는 방법을 코드 예시로 정리했어요. 각 예시는 어떤 동작을 하는지, 어떤 파라미터를 쓰는지 순서대로 살펴볼 수 있어요.
출처: 문서
본문
다음 코드 예시들은 GetContextKeysForPrincipalPolicy 를 어떻게 사용하는지 보여줘요.
AWS CLI
IAM 보안 주체(principal)에 연결된 모든 정책이 참조하는 컨텍스트 키 나열하기
aws iam get-context-keys-for-principal-policy \
--policy-source-arn arn:aws:iam::123456789012:user/saanvi
다음 get-context-keys-for-principal-policy 명령은 saanvi 사용자와 그녀가 속한 모든 그룹에 연결된 정책을 가져온 뒤 각각을 구문 분석해 그 정책들이 사용하는 컨텍스트 키를 나열해요. 이 명령으로 simulate-custom-policy와 simulate-principal-policy 명령을 성공적으로 사용하려면 어떤 컨텍스트 키 값을 제공해야 하는지 확인할 수 있어요. 임의의 JSON 정책이 사용하는 컨텍스트 키 목록은 get-context-keys-for-custom-policy 명령으로도 조회할 수 있어요.
{
"ContextKeyNames": [
"aws:username",
"aws:CurrentTime"
]
}
출력:
PowerShell Tools (V4)
예시 1: 제공된 policy json과 IAM 엔터티(사용자/역할 등)에 연결된 정책에 있는 모든 컨텍스트 키를 가져와요. -PolicyInputList에는 쉼표로 구분한 여러 값을 리스트로 제공할 수 있어요.
$policy1 = '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2015-08-16T12:00:00Z"}}}}'
$policy2 = '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/"}}'
Get-IAMContextKeysForPrincipalPolicy -PolicyInputList $policy1,$policy2 -PolicySourceArn arn:aws:iam::852640994763:user/TestUser
PowerShell Tools (V5)
예시 1: 제공된 policy json과 IAM 엔터티(사용자/역할 등)에 연결된 정책에 있는 모든 컨텍스트 키를 가져와요. -PolicyInputList에는 쉼표로 구분한 여러 값을 리스트로 제공할 수 있어요.
$policy1 = '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2015-08-16T12:00:00Z"}}}}'
$policy2 = '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/"}}'
Get-IAMContextKeysForPrincipalPolicy -PolicyInputList $policy1,$policy2 -PolicySourceArn arn:aws:iam::852640994763:user/TestUser