관리형 정책과 인라인 정책
IAM에서 자격 증명에 대한 권한을 설정하는 경우 AWS 관리형 정책, 고객 관리형 정책 또는 인라인 정책 중 어느 것을 사용할지를 결정해야 합니다. 다음 주제에서는 각 자격 증명 기반 정책 유형과 사용 시기에 대한 자세한 정보를 제공합니다.
AWS 관리형 정책
AWS 관리형 정책은 AWS에서 생성 및 관리하는 독립적인 정책입니다. 여기에서 독립형 정책은 정책 스스로 정책 이름이 포함된 Amazon 리소스 이름(ARN)을 갖고 있다는 것을 의미합니다. 예를 들어 arn:aws:iam::aws:policy/IAMReadOnlyAccess
는 AWS 관리형 정책입니다. ARN에 대한 자세한 내용은 IAM ARN 섹션을 참조하세요. AWS에 대한 AWS 서비스 관리형 정책의 목록은 AWS 관리형 정책을 참조하세요.
AWS 관리형 정책을 사용하면 사용자, IAM 그룹 및 역할에 적절한 권한을 손쉽게 할당할 수 있습니다. 정책을 직접 작성하는 것보다 빠르고, 여러 가지 일반 사용 사례에 맞는 권한이 포함되어 있습니다.
AWS 관리형 정책에 정의되어 있는 권한은 변경할 수 없습니다. AWS가 AWS 관리형 정책에서 정의한 권한을 간혹 업데이트합니다. AWS에서 업데이트할 경우 정책이 연결되어 있는 모든 위탁자 엔터티(IAM 사용자, IAM 그룹 및 IAM 역할)에게도 업데이트가 적용됩니다. 새로운 AWS 서비스를 시작하거나 새로운 API 직접 호출을 기존 서비스에 이용하는 경우 AWS가 AWS 관리형 정책을 업데이트할 가능성이 높습니다. 예를 들어 ReadOnlyAccess라는 이름의 AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. AWS에서 새로운 서비스가 실행될 때는 AWS가 ReadOnlyAccess 정책을 업데이트하여 새로운 서비스에 대한 읽기 전용 권한을 추가합니다. 이렇게 업데이트된 권한은 정책이 추가되는 모든 보안 주체 엔터티에게 적용됩니다.
전체 액세스 AWS 관리형 정책: 서비스에 대한 전체 액세스 권한을 부여하여 서비스 관리자에 대한 권한을 정의합니다. 그러한 예는 다음과 같습니다.
파워 유저 AWS 관리형 정책: AWS 서비스 및 리소스에 대한 모든 액세스 권한을 제공하지만 사용자 및 IAM 그룹을 관리하도록 허용하지는 않습니다. 그러한 예는 다음과 같습니다.
부분 액세스 AWS 관리형 정책: 권한 관리 액세스 수준 권한을 허용하지 않고 AWS 서비스에 대한 특정 수준의 액세스를 제공합니다. 그러한 예는 다음과 같습니다.
직능 AWS 관리형 정책: 이러한 정책은 IT 업계에서 일반적으로 사용되는 직능과 밀접한 관련이 있으며, 그러한 직능에 필요한 권한을 손쉽게 부여하도록 해줍니다. 직무 정책을 사용하는 큰 장점 중 하나는 새로운 서비스와 API 작업이 도입될 때마다 AWS가 이를 유지하고 업데이트할 수 있다는 점입니다. 예를 들어 AdministratorAccess 직무는 AWS의 모든 서비스 및 리소스에 대한 모든 액세스 권한 및 작업 권한을 위임합니다. 계정 관리자에게만 이 정책을 사용하는 것이 좋습니다. IAM 및 조직에 대해서는 제한적인 액세스 권한만 있으면 되지만 그 밖의 모든 서비스에 대해 모든 액세스 권한이 필요한 고급 사용자의 경우, PowerUserAccess 직무를 사용하세요. 직무 정책의 목록과 설명은 직무에 관한 AWS 관리형 정책 섹션을 참조하세요.
다음은 AWS 관리형 정책을 나타낸 다이어그램입니다. 다이어그램을 보면 AdministratorAccess, PowerUserAccess, 그리고 AWSCloudTrail_ReadOnlyAccess 등 3개의 AWS 관리형 정책이 있습니다. 다이어그램에도 나와 있지만 단일 AWS 관리형 정책을 다른 AWS 계정의 보안 주체 엔터티에 추가할 수도 있고, 단일 AWS 계정의 다른 보안 주체 엔터티에 추가할 수도 있습니다.
고객 관리형 정책
자체 AWS 계정에서 위탁자 엔터티(IAM 사용자, IAM 그룹 및 IAM 역할)에 연결할 수 있는 독립형 정책을 생성할 수 있습니다. 특정 사용 사례에 맞게 이러한 고객 관리형 정책을 생성하고, 원하는 만큼 자주 변경 및 업데이트할 수 있습니다. AWS 관리형 정책과 마찬가지로, 정책을 보안 주체 엔터티에 추가할 경우 정책에서 정의한 권한까지 엔터티에게 부여하게 됩니다. 정책의 권한을 업데이트할 경우, 정책이 추가되어 있는 모든 보안 주체 엔터티에 변경 사항이 적용됩니다.
고객이 관리하는 정책을 생성하는 좋은 방법은 AWS에서 관리하는 기존의 정책을 복사하여 시작하는 것입니다. 이렇게 하면 시작 시 올바른 정책으로 시작하므로 해당 환경에 맞게 사용자 지정만 하면 됩니다.
다음은 고객 관리형 정책을 나타낸 다이어그램입니다. 각 정책은 자체적으로 정책 이름이 포함된 Amazon 리소스 이름(ARN)을 갖고 있는 IAM 엔터티입니다. 다이어그램을 보면 동일한 정책을 여러 보안 주체 엔터티에 추가할 수 있습니다. 예를 들어 동일한 DynamoDB-books-app 정책이 두 개의 다른 IAM 역할에 추가됩니다.
자세한 내용은 고객 관리형 정책으로 사용자 지정 IAM 권한 정의 단원을 참조하세요.
인라인 정책
인라인 정책은 단일 IAM ID(사용자, 사용자 그룹 또는 역할)에 대해 생성되는 정책입니다. 인라인 정책은 정책과 자격 증명을 정확히 1대 1 관계로 유지합니다. 이는 자격 증명을 삭제하면 삭제됩니다. 자격 증명을 생성하거나 이후에 생성할 때 정책을 생성하여 자격 증명에 삽입할 수 있습니다. 정책이 둘 이상의 엔터티에 적용될 수 있는 경우 관리형 정책을 사용하는 것이 좋습니다.
다음은 인라인 정책을 나타낸 다이어그램입니다. 각 정책은 사용자, 그룹 또는 역할에서 내재된 부분입니다. 다이어그램을 보면 2개의 역할에 동일한 정책(the DynamoDB-books-app 정책)이 추가되어 있지만, 단 하나의 정책도 공유하지 않습니다. 각 역할에는 고유한 정책 사본이 있습니다.