Overview
이 글에서는 AWS IAM(Identity and Access Management)의 개념과 사용자 및 보안 설정 방법을 다룬다.
IAM을 사용하면 AWS 리소스에 대한 액세스 제어를 보다 안전하게 할 수 있으며, 최소 권한 원칙을 적용하여 보안을 강화할 수 있다.

IAM이란?
AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 사용자 인증(Authentication)과 권한 부여(Authorization)를 관리하는 웹 서비스이다.
IAM의 주요 기능
기능 | 설명 |
사용자(User) 관리 | AWS에 접근할 사용자(개인 또는 서비스)를 생성하고 관리 |
그룹(Group) 관리 | 여러 사용자를 그룹으로 묶고 공통 정책 적용 |
정책(Policy) 적용 | JSON 기반의 정책을 사용하여 특정 리소스에 대한 액세스 권한을 세부적으로 제어 |
역할(Role) 관리 | AWS 서비스 또는 외부 애플리케이션이 AWS 리소스에 접근할 수 있도록 역할 부여 |
MFA (Multi-Factor Authentication) | 다중 인증을 사용하여 보안 강화 |
IAM을 사용하는 이유
1️⃣ AWS 계정 보안 강화: IAM을 통해 사용자를 개별적으로 관리하고 루트 계정 사용을 최소화할 수 있다.
2️⃣ 최소 권한 원칙 적용: 사용자마다 필요한 권한만 부여하여 보안 사고를 방지할 수 있다.
3️⃣ 세밀한 액세스 제어: 특정 AWS 리소스에 대한 액세스를 제어할 수 있다.
4️⃣ 다중 인증(MFA) 지원: 보안을 더욱 강화할 수 있다.
1. IAM 사용자 생성
IAM 사용자는 AWS 리소스에 액세스할 수 있는 개별적인 계정이며, 권한(Policy)을 부여하여 접근을 제한할 수 있다.
IAM 사용자(User) 추가하기
1️⃣ AWS 콘솔 접속 → IAM 서비스 이동
2️⃣ 사용자(User) 선택 → 사용자 추가(Add user)
3️⃣ 사용자 세부 정보 입력
- 사용자 이름 입력 (예: IAM_USER01)
- AWS Management Console 액세스 설정 (프로그래밍 방식 액세스 및 AWS 콘솔 액세스 선택 가능)
- 초기 비밀번호 설정
4️⃣ 그룹(Group) 생성 및 추가
- 관리자 그룹(AdministratorAccess)을 생성하여 사용자를 추가할 수도 있다.
- 또는 특정 권한만 부여할 수도 있음 (예: EC2FullAccess, S3ReadOnlyAccess)
5️⃣ 태그 추가(선택 사항)
- 사용자의 역할이나 부서 등을 태그로 지정 가능
6️⃣ 설정 검토 후 IAM 사용자 생성
- 생성된 IAM 사용자는 AWS 리소스에 접근할 수 있는 사용자 계정이 된다.
7️⃣ IAM 사용자 로그인 URL 확인
- 생성된 IAM 사용자는 다음 URL을 통해 로그인할 수 있음
https://aws_account_id.signin.aws.amazon.com/console
.csv
다운로드 버튼을 클릭하여 엑세스 키(Access Key ID 및 Secret Access Key)를 저장
중요
- 보안 액세스 키(Secret Access Key)는 한 번만 확인 가능
- 분실하면 새 키를 생성해야 함
- 절대 공유 금지 (유출 시 AWS 리소스 해킹 위험)









IAM 정책(Policy) 적용
IAM 정책은 JSON 형식으로 작성되며, 특정 사용자가 AWS 리소스에 접근할 수 있는 권한을 부여한다.
정책 예시: S3 ReadOnly 접근 권한
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::example-bucket",
"arn:aws:s3:::example-bucket/*"
]
}
]
}
설명
Effect: Allow
→ 해당 액션을 허용Action: "s3:GetObject", "s3:ListBucket"
→ S3 객체 가져오기 및 목록 조회 가능Resource: "arn:aws:s3:::example-bucket"
→ 특정 S3 버킷에 적용
이러한 정책을 사용하면 사용자가 읽기 전용 권한만 가지게 되어 데이터 보호가 가능하다.
3. 루트 계정 보안 강화를 위한 MFA 설정
IAM 사용자를 활용하는 주요 목적 중 하나는 루트 계정 사용을 최소화하고 보안을 강화하는 것이다.
AWS MFA(Multi-Factor Authentication)를 사용하여 추가 인증을 요구할 수 있다.
MFA 활성화 절차
1️⃣ IAM 콘솔 접속 → IAM 대시보드로 이동
2️⃣ [루트 계정에서 MFA 활성화] 클릭
3️⃣ [MFA 관리] 버튼 선택
4️⃣ MFA 유형 선택
- 가상 MFA 디바이스 선택 (Google Authenticator 또는 Authy 사용)
- QR 코드 스캔 후 MFA 코드 2개 입력
- [MFA 할당] 클릭
성공 메시지가 나오면 MFA 활성화 완료!
이제 AWS 루트 계정으로 로그인 시 MFA 코드 입력이 필수가 된다.
MFA 활성화 후 AWS 로그인 과정
- AWS 로그인 화면에서 루트 계정 이메일 및 비밀번호 입력
- Google Authenticator 앱에서 MFA 코드 확인
- MFA 코드 입력 후 로그인 완료





4. IAM 역할(Role) 생성 및 사용
IAM 역할(Role)은 사용자가 아닌 서비스(AWS Lambda, EC2, ECS 등)가 AWS 리소스에 접근할 수 있도록 권한을 부여하는 것이다.
IAM 역할 생성 방법
1️⃣ IAM 콘솔 이동 → 역할(Role) 클릭
2️⃣ 새 역할(Role) 생성
- AWS 서비스 (예:
EC2
) 선택 - 적절한 정책(예:
AmazonS3FullAccess
) 추가 - 역할 이름 지정 후 생성
IAM 역할을 EC2에 할당하는 방법
- EC2 인스턴스 생성 시 IAM 역할을 선택
- 또는 기존 인스턴스에 역할을 할당 (AWS CLI 사용 가능)
aws ec2 associate-iam-instance-profile --instance-id i-12345678 --iam-instance-profile Name=MyIAMRole
마무리
IAM을 사용하여 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있다.
IAM 사용자(User) 및 그룹(Group)을 생성하여 AWS 접근 권한을 관리한다.
정책(Policy)을 활용하여 최소 권한 원칙을 적용한다.
MFA를 설정하여 루트 계정의 보안을 강화한다.
IAM 역할(Role)을 생성하여 AWS 서비스가 다른 AWS 리소스에 접근할 수 있도록 한다.
IAM을 올바르게 설정하면 AWS 계정 보안을 한층 더 강화할 수 있다!
Reference
'AWS' 카테고리의 다른 글
AWS IAM이란? (0) | 2023.03.30 |
---|---|
AWS S3 권한이란? (0) | 2023.03.29 |
AWS S3란?(개념, 속성) (0) | 2023.03.28 |
AWS S3 (Simple Storage Service) 개요 및 활용 방법 (0) | 2022.02.13 |
AWS EC2 인스턴스 생성 (0) | 2022.02.07 |