권한 및 정책이 액세스 관리를 제공하는 방법
AWS Identity and Access Management(IAM)의 액세스 관리를 통해 계정에서 보안 주체 엔터티에 허용된 권한을 정의할 수 있습니다. 보안 주체 엔터티란 IAM 엔터티(IAM 사용자 또는 IAM 역할)를 사용하여 인증된 사람 또는 애플리케이션입니다. 액세스 관리를 흔히 권한 부여라고 합니다. 정책을 생성하고 IAM ID(IAM 사용자, IAM 그룹 또는 IAM 역할) 또는 AWS 리소스에 연결하여 AWS에서 액세스를 관리합니다. 정책은 ID 또는 리소스와 연결될 때 해당 권한을 정의하는 AWS의 객체입니다. AWS는 보안 주체가 IAM 엔터티(IAM 사용자 또는 IAM 역할)를 사용하여 요청할 때 이러한 정책을 평가합니다. 정책에서 권한은 요청이 허용되거나 거부되는 지를 결정합니다. 대부분의 정책은 AWS에 JSON 문서로 저장됩니다. 정책 유형 및 활용에 대한 자세한 정보는 AWS Identity and Access Management의 정책 및 권한 섹션을 참조하세요.
정책 및 계정
AWS에서 하나의 계정을 관리하려면 정책을 사용하여 해당 계정 내 권한을 정의합니다. 여러 계정 전반의 권한을 관리하고자 한다면 IAM 사용자에 대한 권한을 관리하기가 더 어렵습니다. 크로스 계정 권한에 대해 IAM 역할, 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 사용할 수 있습니다. 하지만 여러 계정을 소유하는 경우에는 이러한 권한을 쉽게 관리할 수 있도록 ACL 대신에 AWS Organizations 서비스를 사용하는 것이 좋습니다. 자세한 내용은 Organizations 사용 설명서에서 AWS Organizations란 무엇인가요?를 참조하세요.
정책 및 사용자
IAM 사용자는 AWS 계정의 ID입니다. IAM 사용자를 생성할 경우, 권한을 부여하지 않는 한 사용자는 계정 내에서 어떠한 것으로도 액세스할 수 없습니다. IAM 사용자 또는 IAM 사용자가 속한 IAM 그룹에 연결된 정책인 자격 증명 기반 정책을 생성하여 IAM 사용자에게 권한을 부여합니다. 다음 예제는 IAM 사용자가 us-east-2
리전 내의 123456789012
계정에서 Books
테이블의 모든 Amazon DynamoDB 작업(dynamodb:*
)을 수행할 수 있도록 허용하는 JSON 정책을 보여줍니다.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/Books" } }
이 정책을 IAM 사용자에게 연결하면 해당 사용자는 DynamoDB 인스턴스의 Books
테이블에서 모든 작업을 수행할 권한을 갖습니다. 대부분의 IAM 사용자에게는 부여된 전체 권한을 나타내는 여러 정책의 조합이 있습니다.
정책에 의해 명시적으로 허용되지 않은 작업 또는 리소스는 기본적으로 모두 거부됩니다. 예를 들어 앞의 정책이 사용자에게 연결된 단일 정책이라면 이 사용자는 Books
테이블에서 DynamoDB 작업을 수행할 수 있지만 다른 테이블에서는 작업을 수행할 수 없습니다. 마찬가지로 이 사용자는 Amazon EC2, Amazon S3 또는 기타 다른 AWS 서비스에서 어떠한 작업도 수행할 수 없습니다. 이러한 서비스에서 작업할 수 있는 권한이 정책에 포함되지 않기 때문입니다.
정책 및 IAM 그룹
IAM 사용자를 IAM 그룹으로 구성하고 IAM 그룹에 정책을 연결할 수 있습니다. 이 경우 각 IAM 사용자는 별도의 자격 증명을 갖고 있지만 IAM 그룹의 모든 IAM 사용자에게는 IAM 그룹에 연결된 권한이 있습니다. IAM 그룹을 사용하여 간편하게 권한을 관리합니다.

IAM 사용자 또는 IAM 그룹에 여러 정책을 연결하여 다양한 권한을 부여할 수 있습니다. 이 경우 정책의 조합이 보안 주체의 유효 권한을 결정합니다. 특정 작업과 리소스 모두에 대한 명시적 Allow
권한이 없는 보안 주체에게는 이러한 권한이 없는 것입니다.
연동 사용자 및 역할
페더레이션 사용자에게는 IAM 사용자처럼 AWS 계정에서 영구적인 ID가 부여되지 않습니다. 연동 사용자에게 권한을 부여하려면 역할이라고 하는 개체를 만들어 해당 역할의 권한을 정의할 수 있습니다. 연동 사용자가 AWS에 로그인하면 사용자가 역할과 연결되고 역할에 정의된 권한이 부여됩니다. 자세한 내용은 타사 ID 제공업체의 역할 생성(페더레이션) 단원을 참조하십시오.
자격 증명 기반 정책 및 리소스 기반 정책
자격 증명 기반 정책은 IAM 사용자, 그룹 또는 역할과 같은 IAM 자격 증명에 연결할 수 있는 권한 정책입니다. 리소스 기반 정책은 Amazon S3 버킷 또는 IAM 역할 신뢰 정책과 같은 리소스에 연결하는 권한 정책입니다.
자격 증명 기반 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. 자격 증명 기반 정책을 추가로 분류할 수 있습니다.
-
관리형 정책 - AWS 계정에 속한 다수의 사용자, 그룹 및 역할에 독립적으로 연결할 수 있는 자격 증명 기반 정책입니다. 사용할 수 있는 관리형 정책은 두 가지가 있습니다.
-
AWS 관리형 정책 - AWS에서 생성 및 관리하는 관리형 정책입니다. 정책 사용이 처음이라면 AWS 관리형 정책 사용을 먼저 권장합니다.
-
고객 관리형 정책 - 사용자가 자신의 AWS 계정에서 생성 및 관리하는 관리형 정책입니다. 고객 관리형 정책은 AWS 관리형 정책보다 정책에 대해 더욱 정밀하게 제어할 수 있습니다. 시각적 편집기에서 또는 JSON 정책 문서를 직접 생성하여 IAM 정책을 생성, 편집 및 검증할 수 있습니다. 자세한 내용은 고객 관리형 정책으로 사용자 지정 IAM 권한 정의 및 IAM 정책 편집을(를) 참조하세요.
-
-
인라인 정책 - 자신이 생성 및 관리하며, 단일 사용자, 그룹 또는 역할에 직접 포함되는 정책입니다. 대부분의 경우 인라인 정책을 사용하지 않는 것이 좋습니다.
리소스 기반 정책은 지정된 보안 주체가 해당 리소스에 대해 수행할 수 있는 작업 및 이에 관한 조건을 제어합니다. 리소스 기반 정책은 인라인 정책이며, 관리형 리소스 기반 정책은 없습니다. 크로스 계정 액세스를 활성화하는 경우, 전체 계정이나 다른 계정의 IAM 엔터티를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다.
IAM 서비스는 역할 신뢰 정책이라고 하는 리소스 기반 정책 유형 하나를 지원하며, 이 정책을 IAM 역할에 연결합니다. IAM 역할은 리소스 기반 정책을 지원하는 자격 증명이자 리소스이므로 신뢰 정책과 자격 증명 기반 정책 모두 IAM 역할에 연결해야 합니다. 신뢰 정책은 역할을 수임할 수 있는 보안 주체 엔터티(계정, 사용자, 역할 및 페더레이션 사용자)를 정의합니다. IAM 역할과 다른 리소스 기반 정책 간의 차이에 대해 알아보려면 IAM의 크로스 계정 리소스 액세스 섹션을 참조하세요.
리소스 기반 정책을 지원하는 서비스를 보려면 AWS IAM으로 작업하는 서비스 단원을 참조하십시오. 리소스 기반 정책에 대해 자세히 알아보려면 자격 증명 기반 정책 및 리소스 기반 정책 섹션을 참조하세요.