일반

IAM은 모든 AWS에 대해 세분화된 액세스 제어를 제공합니다. IAM을 사용하면 특정 조건에서 서비스 및 리소스에 대한 액세스를 제어할 수 있습니다. IAM 정책을 사용하여 인력 및 시스템에 대한 권한을 관리하여 최소 권한을 보장합니다. IAM은 추가 비용 없이 제공됩니다. 자세한 내용은 IAM이란 무엇인가?를 참조하세요.

IAM은 AWS 서비스에 대한 인증 및 권한 부여를 제공합니다. 서비스는 AWS 요청이 허용되거나 거부되는지 평가합니다. 액세스는 기본적으로 거부되며 정책에서 명시적으로 액세스 권한을 부여하는 경우에만 허용됩니다. 역할 및 리소스에 정책을 연결하여 AWS 전반에서 액세스를 제어할 수 있습니다. 자세한 내용은 IAM 작동 방식 이해를 참조하세요.

IAM 정책으로 권한을 설정할 때 태스크를 수행하는 데 필요한 권한만 부여합니다. 이 방식을 최소 권한 부여라고 합니다. 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의하여 IAM에서 최소 권한을 적용할 수 있습니다. 자세한 내용은 AWS 리소스에 대한 액세스 관리를 참조하세요.

IAM을 사용하여 AWS 서비스 및 리소스에 대한 권한 관리를 시작하려면 IAM 역할을 생성하고 이 역할에 권한을 부여합니다. 워크포스 사용자의 경우 자격 증명 공급자가 수임할 수 있는 역할을 생성합니다. 시스템의 경우 Amazon EC2 또는 AWS Lambda와 같이 사용 중인 서비스에서 수임할 수 있는 역할을 생성합니다. 역할을 생성한 후 정책을 역할에 연결하여 요구 사항을 충족하는 권한을 부여할 수 있습니다. 이제 막 시작하는 경우 필요한 특정 권한을 모를 수 있으므로 더 넓은 권한으로 시작할 수 있습니다. AWS 관리형 정책은 시작하는 데 도움이 되는 권한을 제공하며 모든 AWS 계정에서 사용할 수 있습니다. 그런 다음 사용 사례와 관련된 고객 관리형 정책을 정의하여 권한을 더 줄입니다. IAM 콘솔에서 또는 AWS API나 AWS CLI를 통해 정책과 역할을 생성하고 관리할 수 있습니다. 자세한 내용은 IAM 시작하기를 참조하세요.

IAM 리소스

AWS Identity and Access Management(IAM) 역할은 임시 보안 보안 인증 정보를 사용하여 AWS에 액세스하는 방법을 제공합니다. 각 역할에는 AWS 서비스 요청을 수행할 수 있는 권한 세트가 있으며 역할은 특정 사용자 또는 그룹과 연결되지 않습니다. 대신 자격 증명 공급자 또는 AWS 서비스와 같은 신뢰할 수 있는 엔터티가 역할을 맡습니다. 자세한 내용은 IAM 역할을 참조하세요.

IAM 역할을 사용하여 보안 모범 사례인 단기 자격 증명으로 AWS 계정에 대한 액세스 권한을 부여해야 합니다. AWS 서비스 또는 자격 증명 공급자의 사용자가 될 수 있는 권한이 부여된 자격 증명은 AWS 요청을 수행하는 역할을 맡을 수 있습니다. 역할에 권한을 부여하려면 역할에 IAM 정책을 연결합니다. 자세한 내용은 역할과 관련된 일반적인 시나리오를 참조하세요.

IAM 사용자는 장기 자격 증명이 있는 자격 증명입니다. 워크포스 사용자를 위해 IAM 사용자를 사용하고 있을 수 있습니다. 이 경우 AWS는 자격 증명 공급자를 사용하고 역할을 수임하여 AWS에 연동할 것을 권장합니다. 또한 역할을 사용하여 AWS Lambda 함수와 같은 서비스 및 기능에 대한 교차 계정 액세스 권한을 부여할 수 있습니다. 일부 시나리오에서는 AWS 계정에 대한 액세스 권한이 있는 장기 보안 인증 정보를 가진 액세스 키가 있는 IAM 사용자가 필요할 수 있습니다. 이러한 시나리오의 경우 AWS는 IAM 액세스 마지막 사용 정보를 사용하여 보안 인증 정보를 자주 교체하고 사용되지 않는 보안 인증 정보를 제거할 것을 권장합니다. 자세한 내용은 AWS 자격 증명 관리 개요: 사용자를 참조하세요.

IAM 정책은 해당 정책을 연결하는 엔터티에 대한 권한을 정의합니다. 예를 들어 IAM 역할에 대한 액세스 권한을 부여하려면 해당 역할에 정책을 연결합니다. 정책에 정의된 권한은 요청의 허용 여부를 결정합니다. 또한 Amazon S3 버킷과 같은 일부 리소스에 정책을 연결하여 교차 계정 액세스 권한을 직접 부여할 수 있습니다. 또한 AWS 조직 또는 조직 단위에 정책을 연결하여 여러 계정 간 액세스를 제한할 수 있습니다. AWS는 IAM 역할이 요청할 때 이러한 정책을 평가합니다. 자세한 내용은 자격 증명 기반 정책을 참조하세요.

액세스 권한 부여

AWS Identity and Access Management(IAM)를 사용하여 서비스 및 리소스에 대한 액세스 권한을 부여하려면 IAM 정책을 역할 또는 리소스에 연결합니다. AWS에서 소유 및 업데이트하고 모든 AWS 계정에서 사용할 수 있는 AWS 관리형 정책을 연결하여 시작할 수 있습니다. 사용 사례에 필요한 특정 권한을 알고 있는 경우 고객 관리형 정책을 생성하여 역할에 연결할 수 있습니다. 일부 AWS 리소스는 Amazon S3 버킷과 같은 리소스에 연결된 정책을 정의하여 액세스 권한을 부여하는 방법을 제공합니다. 이러한 리소스 기반 정책을 사용하면 연결된 리소스에 대한 직접 크로스 계정 액세스 권한을 부여할 수 있습니다. 자세한 내용은 AWS 리소스에 대한 액세스 관리를 참조하세요.

역할 또는 리소스에 권한을 할당하려면 권한을 정의하는 JavaScript Object Notation(JSON) 문서인 정책을 생성합니다. 이 문서에는 특정 서비스 작업, 리소스 및 조건에 대한 액세스를 허용하거나 거부하는 권한 설명이 포함되어 있습니다. 정책을 생성한 후 하나 이상의 AWS 역할에 연결하여 AWS 계정에 권한을 부여할 수 있습니다. Amazon S3 버킷과 같은 리소스에 대한 직접 교차 계정 액세스 권한을 부여하려면 리소스 기반 정책을 사용합니다. IAM 콘솔에서 또는 AWS API나 AWS CLI를 통해 정책을 생성합니다. 자세한 내용은 IAM 정책 생성을 참조하세요.

AWS 관리형 정책은 AWS에서 생성하고 관리하며 일반적인 사용 사례를 다룹니다. 시작하기 전에 AWS 계정에서 사용할 수 있고 모든 AWS 계정에서 공통인 AWS 관리형 정책을 사용하여 더 광범위한 권한을 부여할 수 있습니다. 그런 다음 요구 사항을 구체화할 때 최소 권한 달성을 목표로 사용 사례에 특정한 고객 관리형 정책을 정의하여 권한을 줄일 수 있습니다. 자세한 내용은 AWS 관리형 정책을 참조하세요.

태스크를 수행하는 데 필요한 권한만 부여하기 위해 사용 사례 및 리소스와 관련된 고객 관리형 정책을 생성할 수 있습니다. 고객 관리형 정책을 사용하여 특정 요구 사항에 대한 권한을 계속 수정합니다. 자세한 내용은 고객 관리형 정책을 참조하세요.

인라인 정책은 특정 IAM 역할에 포함되고 내재됩니다. 정책과 정책이 적용되는 자격 증명 간의 엄격한 일대일 관계를 유지하려면 인라인 정책을 사용합니다. 예를 들어 다른 역할에 연결되지 않도록 관리 권한을 부여할 수 있습니다. 자세한 내용은 인라인 정책을 참조하세요.

리소스 기반 정책은 리소스에 연결된 권한 정책입니다. 예를 들어 리소스 기반 정책을 Amazon S3 버킷, Amazon SQS 대기열, VPC 엔드포인트 및 AWS Key Management Service 암호화 키에 연결할 수 있습니다. 리소스 기반 정책을 지원하는 서비스 목록은 IAM과 함께 작동하는 AWS Services를 참조하세요. 리소스 기반 정책을 사용하여 직접 교차 계정 액세스 권한을 부여합니다. 리소스 기반 정책을 사용하면 리소스에 액세스할 수 있는 사람과 리소스로 수행할 수 있는 작업을 정의할 수 있습니다. 자세한 내용은 ID 기반 정책 및 리소스 기반 정책을 참조하세요.

RBAC는 AWS 외부에서 역할로 알려진 사람의 직무를 기반으로 권한을 할당할 수 있는 방법을 제공합니다. IAM은 직무와 일치하는 권한으로 IAM 역할을 정의하여 RBAC를 제공합니다. 그런 다음 특정 직무를 수행하기 위해 이러한 역할을 맡을 수 있는 액세스 권한을 개인에게 부여할 수 있습니다. RBAC를 사용하면 각 IAM 역할과 연결된 권한을 확인하여 액세스를 감사할 수 있습니다. 자세한 내용은 ABAC와 기존 RBAC 모델 비교를 참조하세요.

가장 좋은 방법은 각 태스크를 수행하는 데 필요한 특정 서비스 작업 및 리소스에만 액세스 권한을 부여하는 것입니다. 이를 최소 권한 부여라고 합니다. 직원이 새 리소스를 추가하면 해당 리소스에 대한 액세스를 허용하도록 정책을 업데이트해야 합니다.

ABAC는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. AWS에서는 이러한 속성을 태그라고 하며 AWS 리소스, IAM 역할 및 역할 세션에서 정의할 수 있습니다. ABAC를 사용하여 태그 값을 기반으로 권한 세트를 정의합니다. 역할 또는 세션의 태그가 리소스의 태그와 일치하도록 하여 특정 리소스에 세분화된 권한을 부여할 수 있습니다. 예를 들어, "개발자"라는 직함이 태그로 지정된 리소스에 대한 액세스 권한을 개발자에게 부여하는 정책을 작성할 수 있습니다. ABAC는 리소스가 특정 태그로 생성될 때 해당 리소스에 권한을 부여하여 빠르게 성장하는 환경에 유용합니다. 자세한 내용은 AWS에 대한 속성 기반 액세스 제어를 참조하세요.

ABAC를 사용하여 액세스 권한을 부여하려면 먼저 액세스 제어에 사용할 태그 키와 값을 정의합니다. 그런 다음 IAM 역할에 적절한 태그 키와 값이 있는지 확인합니다. 여러 자격 증명이 이 역할을 사용하는 경우 세션 태그 키 및 값을 정의할 수도 있습니다. 그런 다음 리소스에 적절한 태그 키와 값이 있는지 확인합니다. 또한 사용자에게 적절한 태그가 있는 리소스를 생성하고 수정을 위해 액세스를 제한하도록 요구할 수 있습니다. 태그가 배치되면 역할 또는 세션 태그가 리소스 태그와 일치하는 경우에만 특정 작업 및 리소스 유형에 대한 액세스 권한을 부여하는 정책을 정의합니다. AWS에서 ABAC를 사용하는 방법을 보여주는 자세한 자습서는 IAM 자습서: 태그 기반 AWS 리소스에 액세스할 수 있는 권한 정의를 참조하세요.

액세스 제한

AWS Identity and Access Management(IAM)를 사용하면 기본적으로 모든 액세스가 거부되며 액세스 권한을 부여하는 정책이 필요합니다. 대규모로 권한을 관리할 때 권한 가드레일을 구현하고 계정 전체에 대한 액세스를 제한할 수 있습니다. 액세스를 제한하려면 모든 정책에서 Deny 문을 지정합니다. Deny 문이 액세스 요청에 적용되는 경우 항상 Allow 문보다 우선합니다. 예를 들어 AWS의 모든 작업에 대한 액세스는 허용하지만 IAM에 대한 액세스는 거부하면 IAM에 대한 모든 요청이 거부됩니다. AWS Organizations의 자격 증명 기반, 리소스 기반 및 서비스 제어 정책을 포함하여 모든 유형의 정책에 Deny 문을 포함할 수 있습니다. 자세한 내용은 AWS Identity and Access Management로 액세스 제어를 참조하세요.

SCP는 IAM 정책과 유사하며 거의 동일한 구문을 사용합니다. 그러나 SCP는 권한을 부여하지 않습니다. 대신 SCP를 사용하면 Organizations 멤버 계정이 있는 개별 AWS 계정 또는 조직 단위 내의 계정 그룹에 대해 AWS 서비스에 대한 액세스를 허용하거나 거부할 수 있습니다. SCP에서 지정한 작업은 멤버 계정의 루트 사용자를 포함한 모든 IAM 사용자와 역할에 영향을 줍니다. 자세한 내용은 정책 평가 로직을 참조하세요. 

액세스 분석

권한 부여를 시작할 때 탐색하고 실험하면서 더 광범위한 권한으로 시작할 수 있습니다. 사용 사례가 완성될 때 최소 권한을 달성하는 데 필요한 권한만 부여하도록 권한을 구체화하는 것이 좋습니다. AWS는 권한을 구체화하는 데 도움이 되는 도구를 제공합니다. AWS에서 생성 및 관리하고 일반적인 사용 사례에 대한 권한을 포함하는 AWS 관리형 정책으로 시작할 수 있습니다. 권한을 구체화할 때 고객 관리형 정책에서 특정 권한을 정의합니다. 필요한 특정 권한을 결정하는 데 도움이 되도록 AWS Identity and Access Management(IAM) Access Analyzer를 사용하고, AWS CloudTrail 로그를 검토하고, 마지막 액세스 정보를 검사합니다. 또한 IAM 정책 시뮬레이터를 사용하여 정책을 테스트하고 문제를 해결할 수 있습니다.

최소 권한을 달성하려면 요구 사항의 변화에 따라 적절하게 세분화된 권한을 부여하는 지속적인 주기를 거쳐야 합니다. IAM Access Analyzer는 이 주기의 각 단계에서 권한 관리를 간소화하는 데 도움이 됩니다. IAM Access Analyzer의 정책 생성은 로그에 캡처된 액세스 활동을 기반으로 세분화된 정책을 생성합니다. 즉, 애플리케이션을 구축하고 실행한 후 애플리케이션 작업에 필요한 권한만 부여하는 정책을 생성할 수 있습니다. IAM Access Analyzer를 사용한 정책 검증은 100여 개의 정책 검사를 사용하여 안전하고 제대로 기능하는 정책을 작성하고 검증하도록 안내합니다. 새 정책을 생성하는 동안 이러한 검사를 사용하거나 기존 정책을 검증하는 데 사용할 수 있습니다. IAM Access Analyzer를 통한 퍼블릭 및 교차 계정 결과를 사용하면 AWS 조직 또는 계정 외부에서 리소스 정책에 의해 허용되는 액세스 권한을 확인하고 세분화할 수 있습니다. 자세한 내용은 IAM Access Analyzer 사용을 참조하세요.

AWS 계정에 더 이상 필요하지 않은 IAM 사용자, 역할 및 권한이 있을 수 있습니다. 최소 권한 액세스를 달성하기 위해 제거하는 것이 좋습니다. IAM 사용자의 경우 암호 및 액세스 키 마지막 사용 정보를 검토할 수 있습니다. 역할의 경우 역할 마지막 사용 정보를 검토할 수 있습니다. 이 정보는 IAM 콘솔, API 및 SDK를 통해 제공됩니다. 마지막 사용 정보는 더 이상 사용하지 않고 안전하게 제거할 수 있는 사용자와 역할을 식별하는 데 도움이 됩니다. 또한 서비스 및 마지막 액세스 정보를 검토하여 사용하지 않은 권한을 식별하는 방식으로 권한을 세분화할 수 있습니다. 자세한 내용은 마지막 액세스 정보를 사용하여 AWS에서 권한 구체화를 참조하세요.

IAM 정책 시뮬레이터는 선택한 정책을 평가하고 지정한 각 작업에 대한 유효 권한을 결정합니다. 정책 시뮬레이터를 사용하여 자격 증명 기반 및 리소스 기반 정책, IAM 권한 경계SCP를 테스트하고 문제를 해결합니다. 자세한 내용은 IAM 정책 시뮬레이터로 IAM 정책 테스트를 참조하세요.

IAM을 시작하는 방법 알아보기

시작하기 페이지로 이동하기
구축할 준비가 되셨습니까?
IAM 시작하기
추가 질문이 있으십니까?
문의하기