IAM(Identity and Access Management)란?
AWS의 IAM은 사용자와 리소스에 대한 접근을 제어하는 서비스입니다.
이를 통해 사용자 인증(Identity)과 권한 부여(Access)를 관리할 수 있습니다.
IAM의 주요 개념
- 사용자(User)
- AWS 리소스에 접근 가능한 개별 사용자 계정.
- 로그인 ID, 비밀번호, 액세스 키 등 자격 증명이 부여됩니다.
- 그룹(Group)
- 사용자들을 그룹화하여 공통된 권한을 부여.
- 예: 개발자 그룹, 운영자 그룹.
- 정책(Policy)
- JSON 형식의 문서로 사용자의 작업 권한을 정의.
- 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}
]
}
- 역할(Role)
- AWS 서비스(예: EC2, Lambda)가 다른 리소스에 액세스하도록 권한을 부여.
IAM 보안 모범 사례
- 루트 계정 사용 금지: 루트 계정은 계정 생성 및 초기 설정 후 사용하지 않습니다.
- MFA(Multi-Factor Authentication): 다중 인증을 활성화해 계정 보안을 강화합니다.
- 정책 최소화: 사용자가 필요한 최소한의 권한만 부여(Least Privilege).
- 정기적인 감사: IAM 자격 증명 보고서 및 액세스 기록 검토.
IAM을 사용한 AWS 접근 방법
- AWS Management Console: 브라우저를 통한 웹 기반 접근.
- AWS CLI (Command Line Interface): 명령줄에서 리소스 관리.
- AWS SDK (Software Development Kit): 프로그래밍 언어를 통한 리소스 제어.
IAM의 실질적인 사용 예
-
EC2 인스턴스 역할:
EC2에서 S3 버킷에 접근하려면 IAM 역할을 부여.
- 역할은 EC2 인스턴스가 S3 데이터를 읽거나 쓰는 데 필요한 권한을 제공합니다.
-
IAM 정책 구조
- Effect: Allow(허용) 또는 Deny(거부).
- Action: 허용하거나 거부할 작업.
- Resource: 정책이 적용될 AWS 리소스.
- Condition: 특정 조건 하에 정책 적용.
-
MFA 활성화:
- AWS 루트 계정 및 중요한 사용자 계정에 MFA 설정으로 보안을 강화.