CreatePolicyVersion 사용하기
CreatePolicyVersion 사용하기 (SDK/CLI)
CreatePolicyVersion(정책 버전 생성) API를 활용하는 방법을 코드 예시로 정리했어요. 각 예시는 어떤 동작을 하는지, 어떤 파라미터를 쓰는지 순서대로 살펴볼 수 있어요.
출처: 문서
본문
다음 코드 예시들은 CreatePolicyVersion 를 어떻게 사용하는지 보여줘요.
AWS CLI
관리형 정책의 새 버전 생성하기
aws iam create-policy-version \
--policy-arn arn:aws:iam::123456789012:policy/MyPolicy \
--policy-document file://NewPolicyVersion.json \
--set-as-default
이 예시는 ARN이 arn:aws:iam::123456789012:policy/MyPolicy인 IAM 정책의 v2 새 버전을 만들고 기본 버전으로 설정해요.
{
"PolicyVersion": {
"CreateDate": "2015-06-16T18:56:03.721Z",
"VersionId": "v2",
"IsDefaultVersion": true
}
}
출력:
PowerShell Tools (V4)
예시 1: ARN이 arn:aws:iam::123456789012:policy/MyPolicy인 IAM 정책의 "v2" 새 버전을 만들고 기본 버전으로 설정해요. NewPolicyVersion.json 파일이 정책 내용을 제공해요. JSON 정책 파일을 제대로 처리하려면 -Raw 스위치 파라미터를 반드시 사용해야 해요.
New-IAMPolicyVersion -PolicyArn arn:aws:iam::123456789012:policy/MyPolicy -PolicyDocument (Get-content -Raw NewPolicyVersion.json) -SetAsDefault $true
출력:
CreateDate Document IsDefaultVersion VersionId
---------- -------- ---------------- ---------
4/15/2015 10:54:54 AM True v2
PowerShell Tools (V5)
예시 1: ARN이 arn:aws:iam::123456789012:policy/MyPolicy인 IAM 정책의 "v2" 새 버전을 만들고 기본 버전으로 설정해요. NewPolicyVersion.json 파일이 정책 내용을 제공해요. JSON 정책 파일을 제대로 처리하려면 -Raw 스위치 파라미터를 반드시 사용해야 해요.
New-IAMPolicyVersion -PolicyArn arn:aws:iam::123456789012:policy/MyPolicy -PolicyDocument (Get-content -Raw NewPolicyVersion.json) -SetAsDefault $true
출력:
CreateDate Document IsDefaultVersion VersionId
---------- -------- ---------------- ---------
4/15/2015 10:54:54 AM True v2
Python(Boto3)
def create_policy_version(policy_arn, actions, resource_arn, set_as_default):
"""
Creates a policy version. Policies can have up to five versions. The default
version is the one that is used for all resources that reference the policy.
:param policy_arn: The ARN of the policy.
:param actions: The actions to allow in the policy version.
:param resource_arn: The ARN of the resource this policy version applies to.
:param set_as_default: When True, this policy version is set as the default
version for the policy. Otherwise, the default
is not changed.
:return: The newly created policy version.
"""
policy_doc = {
"Version":"2012-10-17",
"Statement": [{"Effect": "Allow", "Action": actions, "Resource": resource_arn}],
}
try:
policy = iam.Policy(policy_arn)
policy_version = policy.create_version(
PolicyDocument=json.dumps(policy_doc), SetAsDefault=set_as_default
)
logger.info(
"Created policy version %s for policy %s.",
policy_version.version_id,
policy_version.arn,
)
except ClientError:
logger.exception("Couldn't create a policy version for %s.", policy_arn)
raise
else:
return policy_version
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.
SAP ABAP
TRY.
oo_result = lo_iam->createpolicyversion(
iv_policyarn = iv_policy_arn
iv_policydocument = iv_policy_document
iv_setasdefault = iv_set_as_default ).
MESSAGE 'Policy version created successfully.' TYPE 'I'.
CATCH /aws1/cx_iamnosuchentityex.
MESSAGE 'Policy does not exist.' TYPE 'E'.
CATCH /aws1/cx_iammalformedplydocex.
MESSAGE 'Policy document is malformed.' TYPE 'E'.
CATCH /aws1/cx_iamlimitexceededex.
MESSAGE 'Policy version limit exceeded.' TYPE 'E'.
ENDTRY.
GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.