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

더 알아보기 (Learn more)