GetPolicyVersion 사용하기
GetPolicyVersion 사용하기 (SDK/CLI)
GetPolicyVersion(정책 버전 조회) API를 활용하는 방법을 코드 예시로 정리했어요. 각 예시는 어떤 동작을 하는지, 어떤 파라미터를 쓰는지 순서대로 살펴볼 수 있어요.
출처: 문서
본문
다음 코드 예시들은 GetPolicyVersion 를 어떻게 사용하는지 보여줘요.
AWS CLI
지정한 관리형 정책의 특정 버전 정보 조회하기
aws iam get-policy-version \
--policy-arn arn:aws:iam::123456789012:policy/MyPolicy \
--version-id v2
이 예시는 ARN이 arn:aws:iam::123456789012:policy/MyManagedPolicy인 정책의 v2 버전 정책 문서를 반환해요.
{
"PolicyVersion": {
"Document": {
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:*",
"Resource": "*"
}
]
},
"VersionId": "v2",
"IsDefaultVersion": true,
"CreateDate": "2023-04-11T00:22:54+00:00"
}
}
출력:
PowerShell Tools (V4)
예시 1: ARN이 arn:aws:iam::123456789012:policy/MyManagedPolicy인 정책의 v2 버전 정책 문서를 반환해요. Document 속성의 정책 문서는 URL 인코딩되어 있고, 이 예시에서는 .NET의 UrlDecode 메서드로 디코딩했어요.
$results = Get-IAMPolicyVersion -PolicyArn arn:aws:iam::123456789012:policy/MyManagedPolicy -VersionId v2
$results
출력:
CreateDate Document IsDefaultVersion VersionId
---------- -------- ---------------- ---------
2/12/2015 9:39:53 AM %7B%0A%20%20%22Version%22%3A%20%222012-10... True v2
[System.Reflection.Assembly]::LoadWithPartialName("System.Web.HttpUtility")
$policy = [System.Web.HttpUtility]::UrlDecode($results.Document)
$policy
{
"Version":"2012-10-17",
"Statement":
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": [
"arn:aws:ec2:us-east-1:555555555555:instance/i-b188560f"
]
}
}
PowerShell Tools (V5)
예시 1: ARN이 arn:aws:iam::123456789012:policy/MyManagedPolicy인 정책의 v2 버전 정책 문서를 반환해요. Document 속성의 정책 문서는 URL 인코딩되어 있고, 이 예시에서는 .NET의 UrlDecode 메서드로 디코딩했어요.
$results = Get-IAMPolicyVersion -PolicyArn arn:aws:iam::123456789012:policy/MyManagedPolicy -VersionId v2
$results
출력:
CreateDate Document IsDefaultVersion VersionId
---------- -------- ---------------- ---------
2/12/2015 9:39:53 AM %7B%0A%20%20%22Version%22%3A%20%222012-10... True v2
[System.Reflection.Assembly]::LoadWithPartialName("System.Web.HttpUtility")
$policy = [System.Web.HttpUtility]::UrlDecode($results.Document)
$policy
{
"Version":"2012-10-17",
"Statement":
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": [
"arn:aws:ec2:us-east-1:555555555555:instance/i-b188560f"
]
}
}
Python(Boto3)
def get_default_policy_statement(policy_arn):
"""
Gets the statement of the default version of the specified policy.
:param policy_arn: The ARN of the policy to look up.
:return: The statement of the default policy version.
"""
try:
policy = iam.Policy(policy_arn)
# To get an attribute of a policy, the SDK first calls get_policy.
policy_doc = policy.default_version.document
policy_statement = policy_doc.get("Statement", None)
logger.info("Got default policy doc for %s.", policy.policy_name)
logger.info(policy_doc)
except ClientError:
logger.exception("Couldn't get default policy statement for %s.", policy_arn)
raise
else:
return policy_statement
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
SAP ABAP
TRY.
oo_result = lo_iam->getpolicyversion(
iv_policyarn = iv_policy_arn
iv_versionid = iv_version_id ).
MESSAGE 'Retrieved policy version information.' TYPE 'I'.
CATCH /aws1/cx_iamnosuchentityex.
MESSAGE 'Policy or version does not exist.' TYPE 'E'.
CATCH /aws1/cx_iaminvalidinputex.
MESSAGE 'Invalid input provided.' TYPE 'E'.
ENDTRY.
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.