관리형 정책과 인라인 정책 - AWS Identity and Access Management

관리형 정책과 인라인 정책

IAM에서 자격 증명에 대한 권한을 설정해야 할 경우 AWS 관리형 정책, 고객 관리형 정책 또는 인라인 정책 중 어느 것을 사용할지를 결정해야 합니다. 다음 단원에서는 각 자격 증명 기반 정책 유형과 사용 시기에 대해 자세히 살펴보겠습니다.

AWS 관리형 정책

AWS 관리형 정책은 AWS에서 생성 및 관리하는 독립적인 정책입니다. 여기에서 독립적인 정책이란 정책 스스로 정책 이름이 포함된 Amazon 리소스 이름(ARN)을 갖고 있다는 것을 의미합니다. 예를 들어 arn:aws:iam::aws:policy/IAMReadOnlyAccess는 AWS 관리형 정책입니다. ARN에 대한 자세한 내용은 IAM ARN 단원을 참조하십시오.

AWS 관리형 정책은 여러 가지 일반 사용 사례에서 권한을 제공할 목적으로 설계되었습니다. AmazonDynamoDBFullAccessIAMFullAccess와 같은 전체 액세스 AWS 관리형 정책은 서비스에 대한 전체 액세스 권한을 부여하여 서비스 관리자에 대한 권한을 정의합니다. AWSCodeCommitPowerUserAWSKeyManagementServicePowerUser와 같은 파워 사용자 AWS 관리형 정책은 파워 사용자용으로 설계되었습니다. AmazonMobileAnalyticsWriteOnlyAccessAmazonEC2ReadOnlyAccess와 같은 부분 액세스 AWS 관리형 정책은 권한 관리 액세스 수준 권한을 허용하지 않고 AWS 서비스에 대한 특정 액세스 수준을 제공합니다. AWS 관리형 정책을 사용하면 정책을 직접 작성하는 것보다 쉽게 사용자, 그룹 및 역할에 적절한 권한을 할당할 수 있습니다.

AWS 관리형 정책에서 특히 유용한 범주 중 하나로, 직무 기능에 대한 범주를 들 수 있습니다. 이러한 정책은 IT 업계에서 일반적으로 사용되는 직무 기능과 긴밀하게 연결됩니다. 이러한 일반적인 직무 기능에 대한 권한 부여를 쉽게 만들기 위해서입니다. 직무 정책을 사용하는 큰 장점 중 하나는 새로운 서비스와 API 작업이 도입될 때마다 AWS가 이를 유지하고 업데이트할 수 있다는 점입니다. 예를 들어 AdministratorAccess 직무는 AWS의 모든 서비스 및 리소스에 대한 모든 액세스 권한 및 작업 권한을 위임합니다. 이 정책은 계정 관리자에게만 사용하는 것이 좋습니다. IAM 및 조직에 대해서는 제한적인 액세스 권한만 있으면 되지만 그 밖의 모든 서비스에 대해 모든 액세스 권한이 필요한 고급 사용자의 경우, PowerUserAccess 직무를 사용하십시오. 직무 정책의 목록과 설명은 직무에 관한 AWS 관리형 정책 단원을 참조하십시오.

AWS 관리형 정책에 정의되어 있는 권한은 변경할 수 없습니다. AWS가 AWS 관리형 정책에서 정의한 권한을 간혹 업데이트합니다. AWS에서 업데이트할 경우 정책이 추가되어 있는 모든 보안 주체 엔터티(사용자, 그룹 및 역할)에게도 업데이트가 적용됩니다. 새로운 AWS 제품을 실행하거나 새로운 API 호출을 기존 서비스에 이용하는 경우 AWS가 AWS 관리형 정책을 업데이트할 가능성이 높습니다. 예를 들어 ReadOnlyAccess라는 이름의 AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. AWS에서 새로운 서비스가 실행될 때는 AWS가 ReadOnlyAccess 정책을 업데이트하여 새로운 서비스에 대한 읽기 전용 권한을 추가합니다. 이렇게 업데이트된 권한은 정책이 추가되는 모든 보안 주체 엔터티에게 적용됩니다.

다음은 AWS 관리형 정책을 나타낸 다이어그램입니다. 다이어그램을 보면 AdministratorAccess, PowerUserAccess, 그리고 AWSCloudTrailReadOnlyAccess 등 3개의 AWS 관리형 정책이 있습니다. 다이어그램에도 나와있지만 단일 AWS 관리형 정책을 다른 AWS 계정의 보안 주체 엔터티에 추가할 수도 있고, 단일 AWS 계정의 다른 보안 주체 엔터티에 추가할 수도 있습니다.


        AWS 관리형 정책의 다이어그램

고객 관리형 정책

독립적인 정책은 사용자 자신의 AWS 계정에서 관리하도록 생성할 수도 있습니다. 이러한 정책을 고객 관리형 정책이라고 합니다. 이렇게 생성된 정책은 AWS 계정에 속한 다수의 보안 주체 엔터티에 추가할 수 있습니다. 정책을 보안 주체 엔터티에 추가할 경우 정책에서 정의한 권한까지 엔터티에게 부여하게 됩니다.

고객이 관리하는 정책을 생성하는 좋은 방법은 AWS에서 관리하는 기존의 정책을 복사하여 시작하는 것입니다. 이렇게 하면 시작 시 올바른 정책으로 시작하므로 해당 환경에 맞게 사용자 지정만 하면 됩니다.

다음은 고객 관리형 정책을 나타낸 다이어그램입니다. 각 정책은 자체적으로 정책 이름이 포함된 Amazon 리소스 이름(ARN)을 갖고 있는 IAM 엔터티입니다. 다이어그램을 보면 동일한 정책을 여러 보안 주체 엔터티에 추가할 수 있습니다.—예를 들어 동일한 DynamoDB-books-app 정책이 2개의 다른 IAM 역할에 추가됩니다.


        고객 관리형 정책의 다이어그램

인라인 정책

인라인 정책은 IAM 자격 증명(사용자, 그룹 또는 역할)에 포함되는 정책입니다. 즉, 정책은 자격 증명의 고유한 부분입니다. 이 정책은 자격 증명 생성 시, 혹은 나중에라도 생성하여 자격 증명에 삽입할 수 있습니다.

다음은 인라인 정책을 나타낸 다이어그램입니다. 각 정책은 사용자, 그룹 또는 역할에서 내재된 부분입니다. 다이어그램을 보면 2개의 역할에 동일한 정책(the DynamoDB-books-app 정책)이 추가되어 있지만, 단 하나의 정책도 공유하지 않고 역할마다 자체적으로 정책 사본을 갖고 있습니다.


        인라인 정책의 다이어그램

관리형 정책과 인라인 정책의 선택

정책 유형이 다르면 사용 사례도 다릅니다. 대부분 경우 인라인 정책보다는 관리형 정책의 사용을 권장합니다.

관리형 정책은 다음과 같은 기능을 제공합니다.

재사용성

단일 관리형 정책은 다수의 보안 주체 개체(사용자, 그룹 및 역할)에 추가할 수 있습니다. 실제로 정책 라이브러리를 생성하여 AWS 계정에 유용한 권한을 정의한 다음 필요에 따라 생성한 정책을 보안 주체 엔터티에 추가하는 것이 가능합니다.

중앙 변경 관리

관리형 정책 변경 시 정책이 추가되어 있는 모든 보안 주체 엔터티에 변경 사항이 적용됩니다. 예를 들어 AWS API 권한을 추가할 경우 관리형 정책을 업데이트하여 권한을 추가할 수 있습니다. (AWS 관리형 정책을 사용할 때는 AWS가 정책을 업데이트합니다) 정책이 업데이트되면 정책이 추가되어 있는 모든 보안 주체 엔터티에 변경 사항이 적용됩니다. 이와는 대조적으로 인라인 정책을 변경하려면 정책이 추가되어 있는 자격 증명을 일일이 편집해야 합니다. 예를 들어 그룹과 역할에 모두 동일한 인라인 정책이 추가되어 있더라도 정책을 변경하기 위해서는 두 보안 주체 개체를 개별적으로 편집해야만 합니다.

버전 관리 및 롤백

고객 관리 정책을 변경할 경우 변경된 정책은 기존 정책을 덮어쓰지 않습니다. 대신 IAM에서 관리형 정책의 새 버전을 만듭니다. IAM은 고객 관리 정책을 최대 5개 버전까지 저장합니다. 정책 버전은 필요에 따라 정책을 이전 버전으로 되돌리는 데도 사용됩니다.

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

권한 위임 관리

정책으로 정의한 권한을 지속적으로 제어하면서 AWS 계정에 속한 사용자가 정책을 추가 및 분리하도록 허용할 수 있습니다. 실제로 일부 사용자에게는 전체 관리자 권한을 위임할 수 있습니다. 다시 말해, 전체 관리자란 정책을 생성, 업데이트 및 삭제할 수 있는 것을 말합니다. 제한된 관리자로서 다른 사용자를 지정할 수 있습니다. 다시 말해, 관리자는 다른 보안 주체 개체에게 정책을 추가할 수 있지만 이때 정책은 추가가 허용된 정책으로 제한됩니다.

권한 위임 관리에 대한 자세한 내용은 정책에 대한 액세스 제어 단원을 참조하십시오.

AWS 관리형 정책의 자동 업데이트

AWS는 AWS 관리형 정책을 유지하면서 필요에 따라 자동으로 업데이트하기 때문에(예를 들어 새로운 AWS 서비스 권한을 추가하기 위해) 직접 변경할 필요가 없습니다. 업데이트는 AWS 관리형 정책을 추가한 보안 주체 엔터티에게 자동으로 적용됩니다.

인라인 정책 사용

인라인 정책은 정책과 정책이 추가된 자격 증명을 정확히 1대 1 관계로 유지할 때 유용합니다. 예를 들어 정책 권한을 의도하지 않은 자격 증명에 실수로 할당하는 일을 배제하려고 합니다. 이때 인라인 정책을 사용하면 정책 권한이 잘못된 자격 증명에 실수로 추가되는 일이 사라집니다. 그 밖에도 AWS Management 콘솔을 사용하여 자격 증명을 삭제할 경우 자격 증명에 삽입된 정책 역시 삭제됩니다. 정책도 보안 주체 개체의 일부이기 때문입니다.