Cloud 환경에서는 서버와 데이터가 물리적으로 분리되어 있기 때문에 누가 어떤 Resource에 접근할 수 있는지 관리하는 것이 매우 중요합니다.
AWS에서는 이를 위해 IAM(Identity and Access Management) 서비스를 제공합니다.
IAM은 AWS Resource에 대한 인증(Authentication)과 권한(Authorization)을 관리하는 핵심 Security 서비스입니다.
예:
사용자 로그인
↓
Identity 확인
↓
Permission 검사
↓
AWS Resource 접근
IAM을 제대로 설계하지 않으면 불필요한 권한 노출과 보안 위험이 발생할 수 있습니다.
| 구성 요소 | 역할 |
|---|---|
| User | 사용자 Identity |
| Group | 사용자 집합 관리 |
| Role | 서비스 권한 부여 |
| Policy | 권한 규칙 정의 |
| Permission | Resource 접근 제어 |
AWS IAM 구조를 이해하면 Cloud Security와 Enterprise Infrastructure 권한 관리의 기반을 만들 수 있습니다.
AWS IAM이란?
IAM(Identity and Access Management)은 AWS Resource 접근 권한을 관리하는 서비스입니다.
관리 대상:
- 사용자
- Application
- Server
- Cloud Service
- External System
누가 무엇을 할 수 있는지를 제어합니다.
AWS IAM Authentication과 Authorization
IAM은 두 가지 핵심 기능을 제공합니다.
Authentication
“누구인가?”를 확인하는 과정입니다.
예:
사용자 로그인
↓
Identity 확인
Authorization
“무엇을 할 수 있는가?”를 확인하는 과정입니다.
예:
EC2 생성 가능
S3 삭제 불가
권한 정책으로 관리합니다.
AWS IAM 기본 구조
전체 구조:
Identity
↓
IAM Policy
↓
Permission
↓
AWS Resource
Identity와 Resource 사이의 접근 관계를 관리합니다.
AWS IAM User란?
IAM User는 AWS에 접근하는 개별 Identity입니다.
사용 대상:
- 개발자
- 관리자
- Application User
예:
Developer User
↓
EC2 조회 권한
↓
S3 접근 권한
사용자별 권한을 설정합니다.
AWS IAM Group이란?
Group은 여러 IAM User를 묶어서 관리하는 기능입니다.
예:
Developer Group
├── User A
├── User B
└── User C
공통 권한을 쉽게 관리할 수 있습니다.
AWS IAM Role이란?
IAM Role은 가장 중요한 AWS Security 개념 중 하나입니다.
Role은 특정 사용자나 AWS Service에게 임시 권한을 제공합니다.
예:
EC2 Instance
↓
IAM Role 부여
↓
S3 접근
Access Key를 서버 내부에 저장하지 않아도 됩니다.
AWS IAM Policy란?
Policy는 권한 규칙을 정의하는 JSON 문서입니다.
구조:
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "*"
}
어떤 작업을 허용하거나 차단할지 정의합니다.
AWS IAM Policy 구성 요소
주요 요소:
| 요소 | 설명 |
|---|---|
| Effect | Allow 또는 Deny |
| Action | 수행 가능한 작업 |
| Resource | 대상 Resource |
| Condition | 조건 설정 |
정밀한 권한 제어가 가능합니다.
AWS IAM Managed Policy와 Inline Policy
Managed Policy
AWS 또는 사용자가 생성하고 여러 Identity에 연결 가능
Inline Policy
특정 Identity에만 적용
운영 방식에 따라 선택합니다.
AWS IAM Least Privilege 원칙
최소 권한 원칙은 Cloud Security의 핵심입니다.
잘못된 예:
Admin 권한 전체 제공
↓
불필요한 접근 가능
올바른 방식:
필요한 작업만 허용
↓
권한 최소화
보안 위험을 줄입니다.
AWS IAM과 EC2 연결
EC2는 Access Key를 직접 저장하면 안 됩니다.
권장 방식:
EC2
↓
IAM Role
↓
AWS API 접근
Credential 관리가 안전해집니다.
AWS IAM과 Kubernetes 연결
앞에서 작성한 Kubernetes와 연결하면:
AWS IAM
↓
EKS Authentication
↓
Kubernetes RBAC
↓
Pod Permission
Cloud Identity와 Kubernetes 권한을 연결할 수 있습니다.
AWS IAM과 EKS 구조
Amazon EKS에서는 IAM과 Kubernetes RBAC를 함께 사용합니다.
구조:
User
↓
IAM Authentication
↓
Kubernetes RBAC
↓
Cluster Resource 접근
Enterprise Kubernetes 환경에서 중요한 구조입니다.
AWS IAM MFA 보안
MFA(Multi Factor Authentication)는 추가 인증 방식입니다.
구성:
Password
OTP
↓
접근 허용
관리자 계정에서는 필수적으로 사용하는 것이 권장됩니다.
AWS IAM Access Key 관리
Access Key는 Application이 AWS API를 사용할 때 사용합니다.
주의:
- Git 저장 금지
- 공유 금지
- 주기적 Rotation
- 불필요 Key 삭제
Credential 보안이 중요합니다.
AWS IAM Security Best Practice
권장:
- Root Account 사용 최소화
- MFA 활성화
- IAM Role 사용
- Least Privilege 적용
- Access Key Rotation
- CloudTrail 기록
안전한 Cloud 환경을 구축합니다.
AWS IAM 장애 분석
사용자 확인:
aws iam list-users
Policy 확인:
aws iam list-policies
Role 확인:
aws iam list-roles
확인:
- Permission Denied
- Policy 오류
- Role 연결 문제
- Trust Relationship
AWS IAM 장점
| 장점 | 설명 |
|---|---|
| 보안 강화 | 접근 제어 |
| 권한 관리 | 사용자별 설정 |
| 자동화 지원 | Service Role 활용 |
| 감사 대응 | 접근 기록 관리 |
IAM은 AWS Security Architecture의 가장 기본이 되는 서비스입니다.
자주 묻는 질문
IAM User와 IAM Role 차이는 무엇인가요?
User는 사람이나 Identity를 위한 계정이고 Role은 서비스나 사용자에게 임시 권한을 제공하는 방식입니다.
Root Account를 사용하면 안 되나요?
가능하지만 보안상 일반 작업에는 사용하지 않는 것이 권장됩니다.
Kubernetes와 AWS IAM은 함께 사용할 수 있나요?
가능합니다.
EKS 환경에서는 AWS IAM과 Kubernetes RBAC를 함께 사용하여 권한을 관리합니다.
마무리
AWS IAM은 Identity와 Permission을 관리하여 Cloud Resource 접근을 제어하는 핵심 Security 서비스입니다.
| 구성 요소 | 역할 |
|---|---|
| User | 사용자 관리 |
| Group | 권한 그룹화 |
| Role | 서비스 권한 |
| Policy | 권한 규칙 |
| MFA | 추가 인증 |
AWS IAM 구조를 이해하면 EC2, S3, EKS, DevOps 환경에서 안전한 Enterprise Cloud Security Architecture를 설계할 수 있습니다.