IAM 정책 버전 관리 - AWS Identity and Access Management

IAM 정책 버전 관리

IAM 고객 관리형 정책을 변경할 때, 그리고 AWS에서 AWS 관리형 정책을 변경할 때 변경된 정책은 기존 정책을 덮어쓰지 않습니다. 대신 IAM에서 관리형 정책의 새 버전을 생성합니다. IAM은 고객 관리형 정책을 최대 5개 버전까지 저장합니다. IAM은 인라인 정책에 대한 버전 관리를 지원하지 않습니다.

다음은 고객 관리형 정책의 버전 관리를 나타낸 다이어그램입니다. 이 예에서는 버전 1~4가 저장됩니다. IAM에 최대 5개의 관리형 정책 버전을 저장할 수 있습니다. 정책을 편집하여 여섯 번째 저장된 버전이 생성되는 경우 더 이상 저장하지 않을 이전 버전을 선택할 수 있습니다. 언제든지 다른 4개의 저장된 버전으로 되돌릴 수 있습니다.


      관리형 정책에 대한 변경 사항이 정책의 새 버전이 됨

정책 버전은 Version 정책 요소와 다릅니다. Version 정책 요소는 정책 내에서 사용되며 정책 언어의 버전을 정의합니다. Version 정책 요소에 대한 자세한 정보는 IAM JSON 정책 요소: Version을 참조하세요.

버전을 사용하여 관리형 정책에 대한 변경 사항을 추적할 수 있습니다. 예를 들어 관리형 정책을 변경한 다음 해당 변경 사항으로 인해 의도하지 않은 결과가 발생한 사실을 발견할 수 있습니다. 이 경우 이전 버전을 기본 버전으로 설정하여 관리형 정책의 이전 버전으로 롤백할 수 있습니다.

다음 주제에서는 관리형 정책에서 버전 관리를 사용하는 방법을 설명합니다.

정책의 기본 버전을 설정할 수 있는 권한

정책의 기본 버전을 설정하는 데 필요한 권한은 작업에 대한 AWS API 작업에 해당합니다. CreatePolicyVersion 또는 SetDefaultPolicyVersion API 작업을 사용하여 정책의 기본 버전을 설정할 수 있습니다. 어떤 사람이 기존 정책의 기본 정책 버전을 설정할 수 있게 허용하려면 iam:CreatePolicyVersion 작업 또는 iam:SetDefaultPolicyVersion 작업에 대한 액세스 권한을 허용하면 됩니다. 그러면 iam:CreatePolicyVersion 작업을 이용해 새 버전의 정책을 생성하고 이 버전을 기본으로 설정할 수 있습니다. 또한 iam:SetDefaultPolicyVersion 작업을 통해서는 기존 버전의 정책을 기본으로 설정할 수 있습니다.

중요

사용자의 정책에서 iam:SetDefaultPolicyVersion 작업을 거부해도 사용자가 새 정책 버전을 생성하고 이 버전을 기본으로 설정하는 작업을 하지 못하게 할 수는 없습니다.

다음 정책을 사용하면 사용자가 기존 고객 관리형 정책을 변경하기 위해 액세스하는 것을 거부할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "iam:CreatePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::*:policy/POLICY-NAME" } ] }

고객 관리형 정책의 기본 버전 설정

관리형 정책의 버전 중 하나가 기본 버전으로 설정됩니다. 정책의 기본 버전은 유효한 버전입니다. 즉, 기본 버전은 관리형 정책이 연결된 모든 보안 주체 엔터티(사용자, 사용자 그룹 및 역할)에 적용되는 버전입니다.

고객 관리형 정책을 만들 때 정책은 v1로 식별되는 단일 버전으로 시작합니다. 버전이 하나뿐인 관리형 정책의 경우 해당 버전이 기본값으로 자동 설정됩니다. 버전이 둘 이상인 고객 관리형 정책의 경우에는 기본값으로 설정할 버전을 선택해야 합니다. AWS 관리형 정책의 경우 기본 버전은 AWS에서 설정됩니다. 다음 다이어그램에서는 이 개념을 보여 줍니다.


        버전이 1개인(기본 버전) 관리형 정책


        버전이 3개인(v2 버전이 기본 버전임) 고객 관리형 정책

고객 관리형 정책의 기본 버전이 정책이 연결되는 모든 IAM 개체(사용자, 사용자 그룹 및 역할)에 적용되도록 해당 버전을 설정할 수 있습니다. 단, AWS 관리형 정책 또는 인라인 정책에는 기본 버전을 설정할 수 없습니다.

고객 관리형 정책의 기본 버전을 설정하려면(콘솔)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 Policies(정책)을 선택합니다.

  3. 정책 목록에서 기본 버전을 설정할 정책 이름을 선택합니다. 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

  4. Policy versions(정책 버전) 탭을 선택합니다. 기본 버전으로 설정할 버전 옆의 확인란을 선택한 후 기본값으로 설정을 선택합니다.

AWS Command Line Interface 또는 AWS API에서 고객 관리형 정책을 기본 버전으로 설정하는 방법을 알아보려면 고객 관리형 정책 편집(AWS CLI) 섹션을 참조하세요.

버전을 사용하여 변경 사항 롤백

변경 사항을 롤백하도록 고객 관리형 정책의 기본 버전을 설정할 수 있습니다. 예를 들어 다음 시나리오를 고려해 보세요:

사용자가 AWS Management Console을 사용하여 특정 Amazon S3 버킷을 관리할 수 있도록 허용하는 고객 관리형 정책을 생성합니다. 생성 시 고객 관리형 정책의 버전은 v1로 식별되는 한 버전뿐이어서 이 버전이 기본값으로 자동 설정됩니다. 정책이 의도대로 적용됩니다.

나중에 두 번째 Amazon S3 버킷을 관리하기 위한 권한을 추가하기 위해 정책을 업데이트합니다. IAM에서 변경 사항을 포함하고 v2로 식별되는 정책의 새 버전을 생성합니다. v2 버전을 기본값으로 설정하고 얼마 지나지 않아 사용자들이 Amazon S3 콘솔을 사용할 수 있는 권한이 없다고 보고합니다. 이 경우 의도대로 적용되는 정책의 v1 버전으로 롤백할 수 있습니다. 이렇게 하기 위해 v1 버전을 기본 버전으로 설정합니다. 이제 사용자들이 Amazon S3 콘솔을 사용하여 원래 버킷을 관리할 수 있습니다.

나중에 정책의 v2 버전에 있는 오류를 해결한 후 두 번째 Amazon S3 버킷을 관리하기 위한 권한을 추가하기 위해 다시 정책을 업데이트합니다. IAM에서 v3로 식별되는 정책의 새 버전을 하나 더 생성합니다. v3 버전을 기본값으로 설정합니다. 이 버전이 의도대로 적용됩니다. 이 시점에서 정책의 v2 버전을 삭제합니다.

버전 제한

관리형 정책에는 최대 5개의 버전이 있을 수 있습니다. 5개 버전을 만든 후에도 관리형 정책을 변경해야 할 경우 AWS Command Line Interface 또는 AWS API에서 먼저 기존 버전을 하나 이상 삭제해야 합니다. AWS Management Console을 사용할 경우에는 정책을 편집하기 전에 버전을 삭제할 필요가 없습니다. 6번째 버전을 저장할 경우 정책의 기본 버전이 아닌 버전을 한 개 이상 삭제하라는 메시지가 표시된 대화 상자가 나타납니다. 결정을 위해 각 버전의 JSON 정책 문서를 볼 수 있습니다. 이 대화 상자에 대한 자세한 내용은 IAM 정책 편집 섹션을 참조하세요.

기본 버전을 제외하고 원하는 모든 관리형 정책 버전을 삭제할 수 있습니다. 버전을 삭제할 때 나머지 버전의 버전 식별자는 변경되지 않습니다. 따라서 버전 식별자가 순차적이지 않을 수 있습니다. 예를 들어 관리형 정책의 v2 및 v4 버전을 삭제하고 새 버전을 2개 추가하면 나머지 버전 식별자가 v1, v3, v5, v6 및 v7이 될 수 있습니다.