문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

AWS Identity and Access Management(IAM) | |
정식 명칭 | AWS Identity and Access Management(IAM) |
개발사 | |
유형 | 웹 서비스 |
주요 용도 | AWS 리소스에 대한 접근을 안전하게 제어 |
관련 분야 | 클라우드 컴퓨팅 정보 보안 접근 제어 |
상세 정보 | |
핵심 기능 | AWS 사용자 및 그룹 생성 및 관리 AWS 리소스에 대한 세밀한 권한 부여 AWS 서비스 및 리소스에 대한 연합 접근 제공 AWS 계정의 다중 인증(MFA) 설정 AWS 서비스에 대한 권한 분석 |
주요 구성 요소 | 사용자 그룹 역할 정책 |
정책 유형 | ID 기반 정책 리소스 기반 정책 권한 경계 서비스 제어 정책(SCP) 세션 정책 |
보안 모범 사례 | 루트 사용자 사용 최소화 최소 권한 원칙 적용 IAM 그룹을 사용한 권한 관리 정기적으로 자격 증명 보고서 검토 불필요한 자격 증명 제거 |
통합 가능 서비스 | AWS Organizations AWS Single Sign-On AWS CloudTrail Amazon Cognito |

AWS Identity and Access Management(IAM)는 Amazon Web Services가 제공하는 웹 서비스로, AWS 계정 내의 리소스와 서비스에 대한 접근을 안전하게 관리하고 제어하는 핵심 서비스이다. 사용자와 애플리케이션이 어떤 AWS 리소스에 접근할 수 있는지, 그리고 그 리소스를 어떻게 사용할 수 있는지를 세밀하게 정의하고 관리할 수 있게 해준다.
IAM의 주요 목적은 정보 보안의 기본 원칙 중 하나인 접근 제어를 클라우드 컴퓨팅 환경에 구현하는 것이다. 이를 통해 관리자는 최소 권한 원칙을 적용하여 각 사용자나 시스템 구성 요소에 작업 수행에 필요한 최소한의 권한만을 부여할 수 있다. 이는 잘못된 설정이나 악의적인 활동으로 인한 보안 사고의 위험을 크게 줄여준다.
IAM은 사용자, 그룹, 역할 및 정책과 같은 핵심 구성 요소를 통해 접근 권한을 관리한다. 정책은 JSON 형식으로 작성되며, 특정 리소스에 대해 허용하거나 거부할 액션을 명시적으로 정의한다. 이러한 정책을 사용자, 그룹 또는 역할에 연결함으로써 세분화된 권한 관리가 가능해진다.
IAM 서비스는 AWS Management Console, AWS CLI, AWS SDK 및 IAM API를 포함한 다양한 방법을 통해 사용할 수 있다. 또한 다중 인증 지원, 임시 보안 자격 증명 발급, AWS Organizations와의 통합 등 고급 보안 및 관리 기능을 제공하여 대규모 엔터프라이즈 환경에서도 효과적으로 운영될 수 있도록 설계되었다.

AWS Identity and Access Management(IAM)의 핵심 구성 요소는 사용자, 그룹, 역할이다. 이 세 가지 자격 증명 유형은 AWS 계정 내 리소스에 대한 접근을 관리하는 기본 단위를 형성한다.
사용자는 AWS 서비스를 사용하는 개인이나 애플리케이션을 나타내는 장기적인 자격 증명이다. 각 사용자는 고유한 이름과 보안 자격 증명(비밀번호, 액세스 키)을 가지며, 하나 이상의 정책이 직접 연결되거나 그룹을 통해 권한을 부여받는다. 그룹은 사용자의 집합으로, 동일한 권한을 여러 사용자에게 일괄적으로 적용하기 위해 사용된다. 예를 들어, '개발자' 그룹에 특정 EC2 및 S3 접근 정책을 부여하면, 해당 그룹에 속한 모든 사용자가 동일한 권한을 공유하게 된다.
역할은 특정 권한을 가진 자격 증명으로, 특정 사용자나 AWS 서비스가 필요 시 마다 임시로 맡을 수 있다. 역할은 장기적인 자격 증명(비밀번호나 액세스 키)과 연결되지 않으며, 보안 토큰 서비스를 통해 발급되는 임시 보안 자격 증명을 사용한다. 이는 EC2 인스턴스가 S3 버킷에 접근하거나, 한 AWS 계정의 사용자가 다른 계정의 리소스를 안전하게 사용할 수 있도록 하는 교차 계정 접근에 주로 활용된다.
사용자와 그룹은 주로 조직 내 인간 사용자를 관리하는 데 적합한 반면, 역할은 AWS 리소스 간 상호작용이나 외부 자격 증명과의 연동에 더 적합한 모델이다. 이 세 가지 개념을 조합하여 최소 권한 원칙에 따라 세밀한 접근 제어를 구현하는 것이 IAM 관리의 기본이다.
IAM 정책은 AWS 리소스에 대한 접근 권한을 정의하는 JSON 형식의 문서이다. 정책은 특정 사용자, 그룹, 또는 역할에 연결되어, 누가 어떤 리소스에 대해 어떤 작업을 수행할 수 있는지를 명시적으로 규정한다. 정책의 기본 구조는 효과(허용 또는 거부), 작업(예: EC2 인스턴스 실행), 리소스(예: 특정 S3 버킷), 그리고 조건(예: 특정 IP 주소에서의 접근)으로 구성된다.
IAM 정책은 크게 AWS 관리형 정책과 사용자 지정 정책으로 구분된다. AWS 관리형 정책은 AWS가 사전 정의하여 제공하는 정책으로, 일반적인 사용 사례에 대한 권한을 빠르게 부여할 때 사용한다. 반면, 사용자 지정 정책은 사용자가 특정 요구사항에 맞춰 직접 JSON 문서를 작성하여 권한을 세밀하게 제어할 수 있다. 정책 시뮬레이터를 통해 정책의 효과를 사전에 테스트하여 보안 위험을 줄일 수 있다.
정책을 효과적으로 관리하기 위해서는 최소 권한 원칙을 준수하는 것이 중요하다. 이는 사용자나 애플리케이션이 자신의 작업을 수행하는 데 필요한 최소한의 권한만을 부여하는 원칙으로, 과도한 권한으로 인한 보안 사고를 방지한다. 또한, 권한 경계를 사용하면 위임된 관리자가 부여할 수 있는 최대 권한을 제한할 수 있어, 권한 관리의 안전성을 높일 수 있다.
AWS Identity and Access Management(IAM)에서 권한은 특정 AWS 리소스에 대해 어떤 작업을 수행할 수 있는지를 정의한다. 권한은 직접 사용자, 그룹, 역할에 부여되지 않으며, 대신 JSON 형식의 정책 문서에 명시된 권한 문장을 통해 간접적으로 관리된다. 이 정책이 IAM 주체나 AWS 리소스에 연결될 때, 해당 주체는 정책에 정의된 권한을 얻게 된다.
권한은 기본적으로 거부되며, 명시적으로 허용해야만 접근이 가능하다. IAM 정책은 하나 이상의 권한 문장으로 구성되며, 각 문장은 효과(허용 또는 거부), 작업(예: s3:GetObject), 리소스(예: 특정 Amazon S3 버킷 ARN), 조건(예: 특정 IP 주소에서의 접근만 허용)의 네 가지 핵심 요소를 포함한다. AWS는 수천 개의 사전 정의된 관리형 정책을 제공하며, 사용자는 필요에 따라 커스텀 정책을 생성하여 세밀한 권한 제어를 구현할 수 있다.
권한 평가는 IAM이 여러 정책(예: ID 기반 정책, 리소스 기반 정책, 권한 경계, 조직 SCP)을 수집하여 최종 허용 또는 거부 결정을 내리는 논리적 프로세스를 거친다. 이때 모든 관련 정책에서 명시적으로 허용되어야 하며, 단 하나의 정책에서라도 거부되면 접근은 최종적으로 차단된다. 이러한 평가 로직은 최소 권한 원칙을 준수하면서도 복잡한 접근 제어 시나리오를 구현할 수 있는 기반을 제공한다.
자격 증명 연동은 AWS IAM이 외부 인증 시스템을 신뢰하여 사용자에게 AWS 리소스에 대한 임시 접근 권한을 부여하는 기능이다. 이를 통해 사용자는 기업의 기존 디렉터리 서비스나 인터넷 ID 공급자를 통해 AWS 콘솔이나 API에 로그인할 수 있다. 대표적인 예로 SAML 2.0 표준을 사용한 엔터프라이즈 싱글 사인온과 웹 ID 공급자를 통한 소셜 로그인이 있다.
이 연동 과정에서 IAM은 역할을 중심으로 작동한다. 관리자는 먼저 외부 ID 공급자를 신뢰하도록 구성된 IAM 역할을 생성하고, 해당 역할에 필요한 권한 정책을 첨부한다. 사용자가 외부 시스템을 통해 인증을 받으면, ID 공급자는 사용자 정보가 포함된 인증 응답을 AWS에 전달한다. AWS는 이를 검증한 후, 사전에 정의된 역할을 사용자에게 맡겨 임시 보안 자격 증명을 발급한다.
이 방식을 사용하면 AWS 내에서 개별 IAM 사용자를 생성하고 비밀번호를 관리할 필요가 없어 운영 효율성이 향상된다. 또한 사용자는 하나의 자격 증명으로 회사 시스템과 AWS 리소스 모두에 접근할 수 있어 편의성이 높다. 자격 증명 연동은 AWS Single Sign-On 서비스와도 긴밀하게 통합되어 중앙 집중식 액세스 관리를 제공한다.

액세스 관리는 AWS Identity and Access Management(IAM)의 핵심 목적이다. 이 기능은 AWS 계정 내 다양한 리소스에 대해 '누가', '무엇을', '어디서', '언제' 접근할 수 있는지를 세밀하게 정의하고 제어하는 것을 가능하게 한다. 이를 통해 관리자는 클라우드 컴퓨팅 환경의 보안을 강화하고, 최소 권한 원칙을 준수하며, 불필요한 접근으로 인한 위험을 사전에 차단할 수 있다.
액세스 관리는 주로 IAM 정책이라는 JSON 형식의 문서를 통해 이루어진다. 이 정책 문서는 하나 이상의 권한을 명시하며, 이를 IAM 사용자, IAM 그룹, 또는 IAM 역할에 연결하여 적용한다. 정책은 특정 API 작업, 리소스 ARN, 접근 조건(예: 특정 IP 주소에서의 접근만 허용) 등을 조합하여 매우 구체적인 접근 규칙을 구성할 수 있다.
액세스 관리의 효과적인 운영을 위해 IAM은 액세스 키, 비밀 액세스 키, 임시 보안 자격 증명과 같은 다양한 자격 증명 유형을 제공한다. 또한, 다중 인증(MFA)을 강제하여 계정 보안을 추가로 강화할 수 있다. 모든 접근 시도와 권한 변경 내역은 AWS CloudTrail 서비스와 연동되어 상세한 감사 로그로 기록되므로, 보안 사고 발생 시 원인 분석과 대응이 용이하다.
다중 인증은 AWS Identity and Access Management(IAM)에서 제공하는 핵심 보안 기능 중 하나이다. 이 기능은 사용자가 AWS Management Console에 로그인하거나 특정 API 작업을 수행할 때, 단순히 암호만으로는 접근을 허용하지 않고 추가적인 인증 요소를 요구한다. 이를 통해 계정 자격 증명이 유출되더라도 무단 접근을 효과적으로 차단할 수 있다.
AWS IAM에서 지원하는 다중 인증 장치는 가상 MFA 디바이스와 물리적 하드웨어 장치로 구분된다. 가상 MFA 디바이스는 Google Authenticator나 Authy와 같은 호환 가능한 스마트폰 애플리케이션을 사용하여 생성되는 6자리 일회용 코드를 활용한다. 물리적 하드웨어 장치로는 FIDO 보안 키나 범용적으로 사용되는 U2F 장치를 지원한다.
이 기능은 특히 권한이 강력한 IAM 사용자와 모든 권한을 가진 루트 계정에 적용할 것을 강력히 권장한다. 루트 계정에 다중 인증을 활성화하면, 계정 설정 변경이나 고액의 비용이 발생할 수 있는 작업을 수행하기 전에 추가 확인을 거치게 되어 보안을 강화할 수 있다. 다중 인증은 AWS CLI나 SDK를 통한 프로그래밍 방식 접근에는 일반적으로 적용되지 않으며, 콘솔 로그인 및 선택된 API 호출에 주로 사용된다.
IAM은 사용자의 권한 사용 내역을 분석하고 보고서를 생성하는 기능을 제공하여 보안 및 규정 준수 요구사항을 충족하는 데 도움을 준다. 이 기능을 통해 관리자는 누가, 언제, 어떤 리소스에 접근했는지, 그리고 어떤 권한이 실제로 사용되었는지를 파악할 수 있다.
액세스 분석 기능은 IAM Access Analyzer라는 도구를 통해 제공된다. 이 도구는 AWS 계정 내 리소스나 AWS Organizations 전체에 대한 외부 엔터티에 대한 접근 권한을 지속적으로 모니터링하고 분석한다. 이를 통해 의도치 않게 외부에 공개된 S3 버킷, IAM 역할, KMS 키 등의 리소스를 식별하여 보안 위험을 사전에 감지하고 수정할 수 있다.
또한, IAM은 사용자의 자격 증명 및 접근 활동에 대한 상세한 보고서를 생성한다. 예를 들어, 자격 증명 보고서는 계정 내 모든 IAM 사용자의 MFA 설정 상태, 암호 사용 기간, 접근 키 생성일 등의 정보를 포함한다. 액세스 보고서는 서비스별로 위임된 권한의 실제 사용 빈도를 보여주어, 사용되지 않는 과도한 권한을 식별하고 최소 권한 원칙을 적용하는 데 활용된다.
이러한 분석과 보고 기능은 감사와 규정 준수를 위한 증거 자료로 사용될 수 있으며, AWS CloudTrail과 같은 로깅 서비스와 연동하여 더 포괄적인 보안 모니터링 체계를 구성하는 기반이 된다.
권한 경계는 AWS Identity and Access Management(IAM)에서 사용자나 역할이 가질 수 있는 최대 권한을 설정하는 고급 기능이다. 이는 정책의 일종으로, 주체(사용자 또는 역할)에 직접 부여되는 권한과는 별도로 작동한다. 권한 경계는 주체가 실제로 행사할 수 있는 권한의 상한선을 정의하며, 주체에 부여된 권한과 권한 경계에 허용된 권한이 모두 만족될 때만 최종적인 권한이 부여된다. 이는 특히 권한 상승을 방지하고 최소 권한 원칙을 엄격하게 적용하는 데 유용하다.
권한 경계의 주요 사용 사례는 관리자나 시스템이 다른 사용자나 역할을 생성하고 권한을 위임할 때 발생한다. 예를 들어, 한 역할이 다른 역할을 생성할 수 있도록 허용하면서도, 새로 생성된 역할이 특정 권한(예: 관리자 권한)을 넘어서지 못하도록 제한할 수 있다. 권한 경계는 IAM 정책 문서 형식으로 작성되며, 관리형 정책으로 생성되어 사용자나 역할에 연결된다.
항목 | 설명 |
|---|---|
역할 | 권한 경계를 적용할 수 있는 IAM 주체 중 하나. |
사용자 | 권한 경계를 적용할 수 있는 IAM 주체 중 하나. |
정책 | 권한 경계는 IAM 정책 문서 형식으로 정의됨. |
최대 권한 | 주체가 가질 수 있는 권한의 상한선을 설정함. |
권한 경계는 AWS Organizations의 서비스 제어 정책과 유사한 방식으로 작동하지만, 조직 수준이 아닌 개별 IAM 주체에 적용된다는 점이 다르다. 이 기능을 효과적으로 사용하면 복잡한 클라우드 환경에서 접근 권한을 세밀하게 통제하고, 보안 위험을 줄이는 데 도움이 된다. 권한 경계의 설정은 AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 수행할 수 있다.

최소 권한 원칙 적용은 AWS Identity and Access Management(IAM)를 사용할 때 가장 중요한 보안 모범 사례 중 하나이다. 이 원칙은 사용자, 애플리케이션, 또는 서비스에 작업을 수행하는 데 필요한 최소한의 권한만 부여하는 것을 의미한다. 불필요하게 광범위한 권한을 부여하면, 자격 증명이 유출되었을 때 공격자가 더 많은 AWS 리소스에 접근하여 피해를 확대할 수 있다. 따라서 IAM 정책을 설계할 때는 특정 작업(예: 특정 S3 버킷의 객체 읽기)에 필요한 권한만 명시적으로 정의해야 한다.
이 원칙을 실천하기 위한 구체적인 방법으로는 IAM 정책 시뮬레이터를 활용하여 정책이 의도한 대로 동작하는지 테스트하는 것이 있다. 또한, AWS CloudTrail 로그를 분석하여 실제로 사용되는 권한을 모니터링하고, 사용되지 않는 권한은 정책에서 제거하는 정기적인 검토 과정이 필요하다. IAM 역할을 사용할 때도 신뢰 정책과 권한 정책을 세분화하여 최소 권한을 준수해야 한다.
조직 차원에서는 AWS Organizations의 서비스 제어 정책을 활용하여 전체 조직 또는 특정 조직 단위에 적용되는 권한 상한선을 설정할 수 있다. 이를 통해 개별 계정 수준의 IAM 정책이 실수로 과도한 권한을 부여하는 것을 방지하는 추가적인 보안 계층을 구성할 수 있다. 최소 권한 원칙은 보안 사고의 영향을 국한시키고, 규정 준수 요구사항을 충족하는 데 필수적이다.
AWS Identity and Access Management(IAM) 역할은 AWS 리소스, 특히 Amazon EC2 인스턴스에 안전하게 접근 권한을 부여하는 핵심 메커니즘이다. EC2 인스턴스에 애플리케이션을 배포하고 운영할 때, 해당 애플리케이션이 Amazon S3 버킷에 접근하거나 Amazon DynamoDB 테이블을 조회하는 등의 작업을 수행해야 할 수 있다. 이때 인스턴스 내에 AWS 액세스 키와 같은 장기 자격 증명을 하드코딩하는 것은 보안상 매우 위험하다. IAM 역할은 이 문제를 해결하며, 인스턴스가 실행 중에 필요한 권한을 임시로 부여받을 수 있게 한다.
IAM 역할을 EC2 인스턴스에 연결하는 과정은 간단하다. 먼저 IAM 콘솔에서 새로운 역할을 생성하고, 해당 역할에 필요한 정책을 첨부한다. 예를 들어, 인스턴스의 애플리케이션이 특정 S3 버킷에서만 객체를 읽어야 한다면, 해당 권한만을 명시한 IAM 정책을 역할에 연결한다. 역할 생성 후, EC2 인스턴스를 시작하거나 기존 인스턴스를 수정하는 과정에서 이 역할을 인스턴스 프로필에 연결하기만 하면 된다. 인스턴스가 부팅되면, 내부의 AWS SDK나 AWS CLI는 자동으로 인스턴스 메타데이터 서비스를 통해 역할의 임시 보안 자격 증명을 가져와 사용한다.
이 방식의 주요 장점은 자격 증명 관리의 편의성과 강화된 보안이다. 개발자나 시스템 관리자는 인스턴스 내에 키를 배포하거나 순환할 필요가 없으며, 애플리케이션 코드에서 자격 증명을 관리할 부담이 사라진다. 보안 측면에서는 역할에 부여된 권한이 최소 권한 원칙에 따라 세밀하게 제어될 수 있으며, 역할의 임시 자격 증명은 짧은 주기로 자동 갱신되어 유출 위험을 줄인다. 또한, 인스턴스에 연결된 역할을 필요에 따라 변경하면, 인스턴스를 재시작하지 않고도 애플리케이션의 접근 권한을 동적으로 조정할 수 있다.
이러한 IAM 역할 기반 접근은 마이크로서비스 아키텍처나 컨테이너 오케스트레이션 환경에서도 광범위하게 적용된다. 예를 들어, Amazon ECS 태스크 정의나 Amazon EKS의 서비스 어카운트에 IAM 역할을 할당하여, 컨테이너화된 애플리케이션이 안전하게 다른 AWS 서비스와 상호작용하도록 구성할 수 있다. 이는 클라우드 네이티브 애플리케이션 보안의 기초가 되는 모범 사례이다.
AWS Organizations를 통해 구성된 다중 AWS 계정 환경에서, AWS Identity and Access Management(IAM)은 계정 간 안전한 접근을 관리하는 핵심 도구이다. 중앙 관리 계정에서 IAM 역할을 생성하고, 다른 멤버 계정의 IAM 사용자 또는 역할이 해당 역할을 수임(Assume)할 수 있도록 신뢰 정책을 구성한다. 이를 통해 각 계정의 자격 증명을 다른 계정에 복제하지 않고도, 필요한 권한을 가진 역할로 전환하여 리소스에 접근할 수 있다.
이 접근 방식은 최소 권한 원칙을 구현하는 데 유용하다. 예를 들어, 개발 계정의 애플리케이션이 프로덕션 계정의 특정 Amazon S3 버킷에만 데이터를 기록해야 한다면, 프로덕션 계정에 해당 버킷 접근 권한만 부여된 IAM 역할을 만들고, 개발 계정의 특정 IAM 역할이 이를 수임하도록 허용하면 된다. 이렇게 하면 개발 계정의 자격 증명이 프로덕션 계정의 다른 리소스에 접근할 수 없게 되어 보안이 강화된다.
계정 간 접근 관리를 효율적으로 구성하기 위해 AWS Organizations의 서비스 제어 정책(SCP)과 IAM 권한 경계를 함께 사용할 수 있다. SCP는 조직 전체에 걸쳐 최대 권한을 설정하는 반면, IAM 권한 경계는 개별 IAM 엔터티(사용자 또는 역할)의 최대 권한을 제한한다. 이 두 계층의 제어를 결합하면 조직 정책을 준수하면서도 세부적인 위임이 가능한 강력한 거버넌스 모델을 구축할 수 있다.

루트 계정은 AWS 계정을 처음 생성할 때 사용되는 이메일 주소와 비밀번호로 로그인하는 단일 계정이다. 이 계정은 AWS 계정의 모든 서비스와 리소스에 대한 완전한 관리 권한을 가지며, 특히 청구 정보 변경이나 계정 해지 같은 특정 작업은 루트 계정으로만 수행할 수 있다. 이러한 무제한 권한 때문에 루트 계정은 가장 강력한 자격 증명이자, 동시에 가장 중요한 보호 대상이 된다. 루트 계정이 유출되면 전체 AWS 계정이 위험에 빠질 수 있기 때문이다.
따라서 AWS는 루트 계정의 일상적인 사용을 권장하지 않는다. 대신, AWS Identity and Access Management를 통해 필요한 권한만 부여된 IAM 사용자를 생성하여 작업을 수행해야 한다. 루트 계정은 오직 IAM 사용자를 생성하거나, 계정 설정을 초기화하는 등 반드시 필요한 최소한의 관리 작업에만 사용하는 것이 모범 사례이다. 이는 최소 권한 원칙을 실천하는 기본적인 방법이다.
루트 계정의 보안을 강화하기 위한 필수 조치로 다중 인증을 활성화하는 것이 있다. 강력한 비밀번호만으로는 충분하지 않을 수 있으므로, 물리적 하드웨어 보안 키나 가상 MFA 디바이스를 이용한 2단계 인증을 설정해야 한다. 또한 루트 계정에 접근할 수 있는 이메일 주소의 비밀번호도 매우 강력하게 설정하고, 별도의 안전한 방법으로 보관해야 한다.
정기적으로 AWS CloudTrail 로그를 점검하여 루트 계정이 예상치 못한 시점이나 IP 주소에서 사용된 기록이 있는지 감사하는 것도 중요하다. 루트 계정 사용은 극히 드물어야 하므로, 로그에 기록된 모든 활동은 신중하게 검토되어야 한다. 이러한 조치들을 통해 루트 계정을 철저히 보호함으로써 AWS 계정 전체의 보안 기반을 튼튼히 할 수 있다.
IAM에서 제공하는 자격 증명 검토 기능은 계정의 보안 상태를 유지하는 데 필수적이다. AWS는 최소 권한 원칙을 준수하고 불필요한 권한을 제거하도록 권장하며, 이를 위해 IAM Access Advisor와 같은 도구를 제공한다. 이 도구는 특정 IAM 사용자나 IAM 역할에 부여된 권한이 실제로 언제, 어떤 서비스에 사용되었는지 추적하여, 오랫동안 사용되지 않은 권한을 식별하는 데 도움을 준다.
정기적인 검토는 특히 장기간 유지되는 자격 증명에 중요하다. 예를 들어, 특정 프로젝트를 위해 생성된 IAM 역할이나 이전 직원의 IAM 사용자 계정은 프로젝트 종료나 인사 이동 후에도 권한이 그대로 남아 있을 수 있다. 이러한 미사용 자격 증명과 권한은 보안 상의 잠재적 취약점이 될 수 있으므로, 주기적으로 비활성화하거나 삭제해야 한다.
검토 주기는 조직의 보안 정책과 규정 준수 요구사항에 따라 결정되며, 일반적으로 분기별 또는 반기별로 실시하는 것이 모범 사례이다. 검토 과정에서는 IAM 사용자 목록, IAM 그룹 멤버십, IAM 역할의 신뢰 정책, 그리고 각 자격 증명에 첨부된 IAM 정책을 모두 점검한다. 이를 통해 의도하지 않게 부여된 과도한 권한이나 잘못된 구성을 발견하고 수정할 수 있다.
이러한 정기 검토는 AWS Organizations의 서비스 제어 정책(SCP)과 같은 거버넌스 메커니즘과 연계되어 수행될 때 효과적이다. 또한, 모든 자격 증명 변경 및 액세스 이력은 AWS CloudTrail에 의해 로깅되어 감사 추적을 제공하므로, 검토 시 이 로그를 함께 분석하면 보다 포괄적인 보안 평가가 가능하다.
AWS Identity and Access Management(IAM)의 모든 활동과 구성 변경은 AWS CloudTrail 서비스를 통해 상세한 감사 로그로 기록된다. CloudTrail은 AWS 계정의 거버넌스, 규정 준수, 운영 및 위험 감사를 지원하기 위해 계정 활동을 기록하는 서비스이다. IAM과 관련된 사용자, 역할, 정책의 생성, 수정, 삭제 및 API 호출 내역이 이벤트로 캡처되어 Amazon S3 버킷에 로그 파일로 저장된다.
이러한 감사 로그는 보안 사고 발생 시 원인 분석과 책임 추적에 필수적이다. 예를 들어, 예상치 못한 권한 변경이나 비인가 접근 시도가 있었는지 확인할 수 있다. 로그는 암호화되어 저장되며, AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 검색하고 분석할 수 있다. CloudTrail 로그를 Amazon CloudWatch Logs와 연동하면 실시간 모니터링과 알림 설정도 가능하다.
IAM의 보안 모범 사례는 CloudTrail 로그 추적을 모든 AWS 리전에서 활성화하고, 로그 파일 무결성 검증을 켜는 것을 포함한다. 또한, 로그가 저장되는 S3 버킷에 적절한 버킷 정책을 적용하여 무단 접근을 방지해야 한다. 정기적으로 로그를 검토하거나 AWS Config, Amazon GuardDuty와 같은 다른 보안 서비스와 통합하여 포괄적인 보안 상태를 관리하는 것이 권장된다.

AWS Organizations는 여러 AWS 계정을 중앙에서 통합 관리할 수 있도록 설계된 AWS 서비스이다. 단일 조직을 생성하고, 관리 계정을 지정한 후, 기존 계정을 초대하거나 새 계정을 생성하여 조직에 통합할 수 있다. 이를 통해 기업이나 팀은 여러 계정을 하나의 논리적 단위로 묶어 일관된 정책과 거버넌스를 적용할 수 있다.
이 서비스의 핵심 기능은 조직 전체에 걸쳐 정책을 중앙 집중식으로 적용하는 것이다. 서비스 제어 정책을 사용하여 조직 내 모든 계정에 대해 허용 또는 거부할 AWS API 작업과 리소스를 정의할 수 있다. 또한 태그 정책을 통해 리소스에 태그를 일관되게 부여하도록 강제하여 비용 할당과 거버넌스를 효율화할 수 있다. 이러한 정책들은 AWS Organizations의 조직 단위 계층 구조를 활용해 특정 계정 그룹에만 적용하는 것도 가능하다.
AWS Organizations는 AWS의 계정 관리 및 과금 구조와도 긴밀하게 연동된다. 조직 내 모든 구성원 계정의 사용량을 통합하여 볼 수 있으며, 계정 간 데이터 전송에 대한 요금을 면제받는 등의 비용 혜택을 제공할 수 있다. 또한 AWS Single Sign-On과 같은 ID 관리 서비스와 연동하여 조직 전체에 걸친 싱글 사인온 및 애플리케이션 접근을 관리하는 기반을 마련한다.
AWS Single Sign-On은 Amazon Web Services가 제공하는 클라우드 서비스로, 중앙 집중식 싱글 사인온 솔루션이다. 이 서비스를 통해 사용자는 한 번의 로그인으로 AWS Organizations 내의 여러 AWS 계정과 사전 통합된 SaaS 애플리케이션에 접근할 수 있다. 기존 AWS IAM이 단일 AWS 계정 내의 리소스 접근을 관리하는 데 중점을 둔다면, AWS Single Sign-On은 조직 전체의 다중 계정과 외부 애플리케이션에 대한 통합 ID 관리 및 접근 관리를 단순화하는 데 목적이 있다.
AWS Single Sign-On은 Active Directory나 Azure AD와 같은 기존 엔터프라이즈 디렉토리를 ID 소스로 연결할 수 있다. 이를 통해 IT 관리자는 익숙한 디렉토리에서 사용자와 그룹을 관리하면서도, AWS Single Sign-On 콘솔을 통해 AWS 계정 및 애플리케이션에 대한 권한을 중앙에서 할당할 수 있다. 사용자는 별도의 AWS 자격 증명을 추가로 생성하거나 관리할 필요 없이 기업 네트워크 자격 증명을 사용하여 통합된 포털에 접속하여 허용된 모든 리소스에 접근할 수 있다.
이 서비스는 최소 권한 원칙을 적용하여 접근을 제어할 수 있으며, AWS CloudTrail과 통합되어 모든 로그인 및 접근 이벤트에 대한 감사 로그를 제공한다. 또한 다중 인증을 지원하여 보안을 강화할 수 있다. AWS Single Sign-On은 특히 여러 AWS 계정을 운영하는 대규모 조직이나, Salesforce, Microsoft 365, Box 등 다양한 SaaS 서비스를 함께 사용하는 환경에서 계정 및 비밀번호 관리의 복잡성을 줄이고 보안성을 높이는 데 유용하다.
AWS CloudTrail은 AWS 계정 내에서 수행되는 API 호출 및 계정 활동을 기록하고 모니터링하며 보관하는 서비스이다. IAM과 밀접하게 연동되어, 누가, 언제, 어디서, 무엇을 했는지에 대한 감사 로그를 제공한다. 이 로그는 JSON 형식으로 저장되며, S3 버킷에 자동으로 전달되어 장기 보관이 가능하다. CloudTrail을 통해 IAM 사용자나 역할의 모든 작업 이력을 추적할 수 있어, 보안 분석, 규정 준수 검증, 운영 문제 해결에 필수적이다.
CloudTrail의 주요 기능으로는 모든 리전에 대한 API 활동 기록, 관리 이벤트와 데이터 이벤트의 선택적 기록, 로그 파일 무결성 검증 등이 있다. 특히 IAM 정책 변경, 사용자 생성 또는 삭제, 역할 가정과 같은 중요한 보안 관련 이벤트를 자동으로 캡처한다. 이를 통해 의심스러운 활동이나 권한 남용을 신속하게 탐지하고 대응할 수 있다.
IAM과의 통합 측면에서, CloudTrail 로그는 IAM 정책의 효과를 평가하고 최소 권한 원칙을 검증하는 데 활용된다. 예를 들어, 실제 사용된 권한을 로그를 통해 분석하여 불필요하게 넓은 권한을 가진 정책을 조정할 수 있다. 또한 AWS Organizations와 통합되어 조직 내 모든 멤버 계정의 활동을 중앙 집중식으로 모니터링할 수 있다.
CloudTrail 로그는 Amazon CloudWatch Logs로 스트리밍되어 실시간 알림을 설정하거나, Amazon Athena를 사용해 직접 쿼리할 수 있다. 또한 AWS Config와 함께 사용하면 리소스 구성 변경과 이를 트리거한 API 호출을 연관 지어 파악하는 등 종합적인 거버넌스와 감사 체계를 구축하는 토대가 된다.