AWS IAM이란?
AWS(Amazon Web Services) 환경에서 보안을 유지하고 자원을 효과적으로 관리하려면 IAM(Identity and Access Management)을 활용해야 합니다. IAM은 AWS 사용자, 그룹, 역할(Role) 및 정책(Policy)을 관리하는 서비스로, 사용자 인증과 권한 관리를 통해 AWS 리소스에 대한 접근을 제어할 수 있습니다. 이번 글에서는 IAM의 개념, 주요 기능, 정책 유형, 보안 모범 사례, 비용 구조 및 활용 방법까지 자세히 살펴보겠습니다.
1. AWS IAM이란?
AWS IAM은 사용자와 서비스의 액세스 권한을 제어하는 보안 서비스입니다. AWS 리소스에 대한 접근을 관리하고, 사용자의 권한을 설정할 수 있도록 설계되었습니다. IAM을 활용하면 각 사용자 및 서비스에 최소한의 권한만 부여하여 보안을 강화할 수 있습니다.
IAM은 기본적으로 무료 서비스이며, AWS 계정 내에서 다양한 역할과 정책을 설정하여 특정 리소스에 대한 액세스를 허용하거나 제한할 수 있습니다.
2. AWS IAM의 주요 기능
- 사용자(User) 관리
- AWS 리소스에 접근할 수 있는 개별 사용자를 생성하고 관리할 수 있습니다.
- 각 사용자에게 개별적인 보안 자격 증명(Access Key, MFA 등)을 부여할 수 있습니다.
- 그룹(Group) 관리
- 여러 사용자를 하나의 그룹으로 묶어 관리할 수 있으며, 그룹 단위로 권한을 부여할 수 있습니다.
- 역할(Role) 기반 액세스 관리
- 특정 AWS 서비스나 다른 계정이 IAM 역할(Role)을 통해 특정 권한을 수행할 수 있도록 설정할 수 있습니다.
- 정책(Policy) 설정
- JSON 형식의 정책을 사용하여 세밀한 접근 제어를 설정할 수 있습니다.
- 사용자가 특정 AWS 서비스에 대해 수행할 수 있는 작업을 정의합니다.
- 다중 요소 인증(MFA) 지원
- 사용자 계정 보안을 강화하기 위해 **Multi-Factor Authentication(MFA)**을 적용할 수 있습니다.
- 연합 인증(Federation) 지원
- AWS IAM은 SAML 2.0 및 OpenID Connect를 지원하여 기업 내 기존 ID 제공자(예: Active Directory)와 연동할 수 있습니다.
3. AWS IAM의 구성 요소
IAM은 여러 요소로 구성되며, 각각의 역할과 특징이 다릅니다. 주요 요소를 정리하면 다음과 같습니다.
구성 요소 | 설명 |
사용자(User) | AWS에 로그인하여 리소스를 관리할 수 있는 개별 계정 |
그룹(Group) | 여러 사용자를 하나의 그룹으로 묶어 동일한 권한을 적용 |
역할(Role) | 특정 권한을 위임할 수 있는 IAM 엔터티, AWS 서비스 간 권한 위임 가능 |
정책(Policy) | JSON 형식으로 작성된 접근 제어 규칙, 사용자 및 역할에 적용 가능 |
다중 요소 인증(MFA) | 보안 강화를 위해 2단계 인증을 추가하여 사용자 로그인 보호 |
연합 인증(Federation) | AWS IAM과 기존 ID 시스템(Active Directory 등) 연동 |
4. AWS IAM 정책 유형
IAM 정책은 JSON 형식으로 작성되며, 특정 권한을 정의하여 적용할 수 있습니다. IAM 정책의 유형은 다음과 같이 구분됩니다.
정책 유형 | 설명 |
관리형 정책 (Managed Policy) | AWS에서 미리 정의한 정책 또는 사용자가 생성한 정책 |
인라인 정책 (Inline Policy) | 특정 사용자, 그룹, 역할에 직접 연결된 맞춤형 정책 |
서비스 제어 정책(SCP) | AWS Organizations에서 여러 계정의 권한을 제어하는 정책 |
세션 정책(Session Policy) | 일시적으로 부여되는 권한으로, AWS STS(Security Token Service)와 함께 사용 |
IAM 정책의 대표적인 예제는 다음과 같습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-bucket"
}
]
}
5. AWS IAM 활용 사례
IAM은 AWS 환경에서 다양한 보안 및 권한 관리 기능을 제공하며, 여러 상황에서 활용될 수 있습니다.
- 개발 환경에서 역할 기반 접근 관리
- 개발자는 특정 개발 환경에서만 접근할 수 있도록 IAM 역할(Role)을 부여할 수 있습니다.
- 서버리스 애플리케이션 보안 강화
- Lambda, DynamoDB, API Gateway 등의 서비스가 필요한 리소스만 접근할 수 있도록 IAM 역할을 적용할 수 있습니다.
- AWS 계정 분리 및 권한 제한
- 여러 팀이 하나의 AWS 계정을 공유할 경우, IAM 그룹을 사용하여 각 팀별 권한을 제한할 수 있습니다.
- 외부 서비스 및 API 접근 관리
- API 요청 시 IAM 정책을 적용하여, 특정 IP 또는 인증된 사용자만 접근할 수 있도록 설정할 수 있습니다.
6. AWS IAM 보안 모범 사례
IAM을 안전하게 사용하려면 다음과 같은 보안 모범 사례를 따르는 것이 중요합니다.
- 루트 계정 사용 제한
- AWS 루트 계정은 권한이 매우 크므로, 사용자 계정을 생성하여 필요한 권한만 부여하는 것이 좋습니다.
- 최소 권한 원칙(Least Privilege) 적용
- 사용자가 반드시 필요한 권한만 가지도록 최소한의 권한을 적용해야 합니다.
- IAM 사용자별 개별 계정 사용
- 여러 사용자가 하나의 IAM 계정을 공유하는 것은 보안상 위험하므로, 개별 계정을 생성하여 관리하는 것이 좋습니다.
- IAM 역할(Role) 활용
- 특정 AWS 서비스가 리소스에 접근할 때 IAM 역할을 사용하면, 보안이 강화됩니다.
- 다중 요소 인증(MFA) 활성화
- IAM 사용자에게 MFA를 적용하여 계정 보안을 강화하는 것이 필수적입니다.
- 정기적인 IAM 정책 검토 및 감사
- AWS CloudTrail과 AWS IAM Access Analyzer를 사용하여 IAM 정책을 정기적으로 검토하고 보안 위반 사항을 확인해야 합니다.
7. AWS IAM 비용 구조
IAM은 기본적으로 무료 서비스입니다. 다만, IAM과 관련된 부가 서비스에는 비용이 발생할 수 있습니다.
서비스 | 비용 |
IAM 사용자, 그룹, 역할 | 무료 |
정책 생성 및 관리 | 무료 |
IAM 인증 기반 AWS 서비스 사용 | 사용한 AWS 서비스에 따라 비용 부과 |
AWS CloudTrail 로깅 | 기본 로깅은 무료, 상세 로깅은 유료 |
8. AWS IAM 사용 시 주의할 점
- 잘못된 권한 부여 방지
- IAM 정책을 설정할 때 *을 사용하여 모든 리소스에 대한 액세스를 허용하지 않도록 해야 합니다.
- 역할(Role)과 정책(Policy) 혼용 시 주의
- 역할을 과도하게 생성하면 관리가 어려워질 수 있으므로, 최소한의 역할을 정의하는 것이 중요합니다.
- IAM 정책 적용 후 반드시 테스트 수행
- 새로운 정책을 적용한 후에는 반드시 AWS IAM Policy Simulator를 사용하여 예상대로 동작하는지 확인해야 합니다.
9. 간단 요약
- AWS IAM은 사용자, 그룹, 역할을 관리하여 AWS 리소스에 대한 접근 권한을 제어하는 서비스이다.
- IAM 정책을 활용하여 최소 권한 원칙을 적용하고, 다중 요소 인증(MFA) 및 정기적인 감사 등을 수행해야 한다.
- IAM은 기본적으로 무료이며, 보안을 강화하기 위해 IAM 역할(Role) 및 정책(Policy)을 올바르게 설정하는 것이 중요하다.
'IT정보 > AWS' 카테고리의 다른 글
[AWS] EventBridge 간단정리! (0) | 2025.03.10 |
---|---|
[AWS] CloudWatch란? 간단 정리! (0) | 2025.03.10 |
[AWS] Lambda란? 요점 간단 정리 (0) | 2025.03.03 |
[AWS] EBS & EFS란? 요점 간단 정리 (0) | 2025.03.03 |
[AWS] EC2란? 요점 간단 정리 (0) | 2025.03.03 |