DeletePolicyVersion 사용하기

DeletePolicyVersion 사용하기 (SDK/CLI)

DeletePolicyVersion(정책 버전 삭제) API를 활용하는 방법을 코드 예시로 정리했어요. 각 예시는 어떤 동작을 하는지, 어떤 파라미터를 쓰는지 순서대로 살펴볼 수 있어요.

출처: 문서

본문

다음 코드 예시들은 DeletePolicyVersion 를 어떻게 사용하는지 보여줘요.

AWS CLI

관리형 정책의 버전 삭제하기

aws iam delete-policy-version \
    --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \
    --version-id v2

이 예시는 ARN이 arn:aws:iam::123456789012:policy/MySamplePolicy인 정책에서 v2로 식별되는 버전을 삭제해요.

PowerShell Tools (V4)

예시 1: ARN이 arn:aws:iam::123456789012:policy/MySamplePolicy인 정책에서 v2로 식별되는 버전을 삭제해요.

Remove-IAMPolicyVersion -PolicyArn arn:aws:iam::123456789012:policy/MySamplePolicy -VersionID v2

예시 2: 먼저 기본이 아닌 모든 정책 버전을 삭제한 뒤 정책 자체를 삭제해요. 첫 번째 줄은 정책 객체를 가져와요. 두 번째 줄은 기본으로 표시되지 않은 모든 정책 버전을 컬렉션으로 가져온 뒤 이 명령으로 컬렉션의 각 정책을 삭제해요. 마지막 줄은 남아 있는 기본 버전뿐 아니라 정책 자체도 제거해요. 관리형 정책을 성공적으로 삭제하려면 Unregister-IAMUserPolicy, Unregister-IAMGroupPolicy, Unregister-IAMRolePolicy 명령을 사용해 사용자·그룹·역할에서 정책을 분리해야 한다는 점에 주의하세요. Remove-IAMPolicy cmdlet의 예시를 참고하세요.

$pol = Get-IAMPolicy -PolicyArn arn:aws:iam::123456789012:policy/MySamplePolicy
Get-IAMPolicyVersions -PolicyArn $pol.Arn | where {-not $_.IsDefaultVersion} | Remove-IAMPolicyVersion -PolicyArn $pol.Arn -force
Remove-IAMPolicy -PolicyArn $pol.Arn -force

PowerShell Tools (V5)

예시 1: ARN이 arn:aws:iam::123456789012:policy/MySamplePolicy인 정책에서 v2로 식별되는 버전을 삭제해요.

Remove-IAMPolicyVersion -PolicyArn arn:aws:iam::123456789012:policy/MySamplePolicy -VersionID v2

예시 2: 먼저 기본이 아닌 모든 정책 버전을 삭제한 뒤 정책 자체를 삭제해요. 첫 번째 줄은 정책 객체를 가져와요. 두 번째 줄은 기본으로 표시되지 않은 모든 정책 버전을 컬렉션으로 가져온 뒤 이 명령으로 컬렉션의 각 정책을 삭제해요. 마지막 줄은 남아 있는 기본 버전뿐 아니라 정책 자체도 제거해요. 관리형 정책을 성공적으로 삭제하려면 Unregister-IAMUserPolicy, Unregister-IAMGroupPolicy, Unregister-IAMRolePolicy 명령을 사용해 사용자·그룹·역할에서 정책을 분리해야 한다는 점에 주의하세요. Remove-IAMPolicy cmdlet의 예시를 참고하세요.

$pol = Get-IAMPolicy -PolicyArn arn:aws:iam::123456789012:policy/MySamplePolicy
Get-IAMPolicyVersions -PolicyArn $pol.Arn | where {-not $_.IsDefaultVersion} | Remove-IAMPolicyVersion -PolicyArn $pol.Arn -force
Remove-IAMPolicy -PolicyArn $pol.Arn -force

SAP ABAP

    TRY.
        lo_iam->deletepolicyversion(
          iv_policyarn = iv_policy_arn
          iv_versionid = iv_version_id ).
        MESSAGE 'Policy version deleted successfully.' TYPE 'I'.
      CATCH /aws1/cx_iamnosuchentityex.
        MESSAGE 'Policy or version does not exist.' TYPE 'E'.
      CATCH /aws1/cx_iamdeleteconflictex.
        MESSAGE 'Cannot delete default policy version.' TYPE 'E'.
      CATCH /aws1/cx_iamlimitexceededex.
        MESSAGE 'Limit exceeded.' TYPE 'E'.
    ENDTRY.

GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행 방법을 배울 수 있어요.

더 알아보기 (Learn more)