🔐 AWS IAM 역할을 활용한 사용자 그룹별 권한 관리 전략
AWS에서 사용자와 권한을 효율적으로 관리하기 위해 가장 추천되는 방식 중 하나는 IAM 정책(Policy)을 역할(Role)에 연결하고,
이를 사용자 그룹 또는 서비스에 역할 기반(Role-based)으로 할당하는 구조입니다.
✅ 왜 역할(Role)을 사용하는가?
정책을 사용자에게 직접 붙이면 관리가 어렵고, 변경 시에도 반복 작업이 많습니다.
하지만 역할을 기준으로 관리하면 다음과 같은 장점이 있습니다:
- 💡 정책 재사용 가능
- 👥 그룹별 역할 매핑으로 권한 관리 간소화
- 🔄 역할 교체만으로 손쉬운 권한 변경
🧩 실전 예시 – Dev, QA, Ops 그룹 권한 분리
아래처럼 세 그룹이 있다고 가정합니다:
- Dev 그룹: S3 read/write 권한
- QA 그룹: S3 read-only 권한
- Ops 그룹: EC2 전체 제어 권한
이럴 땐, 아래와 같은 구조로 구성합니다:
- IAM Policy 생성: 예를 들어 아래와 같이 “S3ReadOnlyPolicy”를 생성합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
- IAM Role 생성: 역할 이름은 예를 들어
QA-S3-Reader
로 설정하고, 위 정책을 연결 - IAM 그룹 생성: 그룹 이름은
qa-team
등으로 설정 - 그룹에 사용자 추가: QA 멤버들을 그룹에 추가
- 그룹에 역할 연결: 그룹이 해당 Role을
AssumeRole
하도록 신뢰 정책 구성
🔑 역할 신뢰 정책 예시
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:group/qa-team"
},
"Action": "sts:AssumeRole"
}
]
}
🎯 결론
IAM 권한 관리는 규모가 커질수록 복잡해지기 마련입니다.
정책 → 역할 → 사용자/그룹 순으로 관리 구조를 나누면,
권한 부여/회수/감사(Compliance)까지 훨씬 효율적이고 안전하게 운영할 수 있습니다.
📚 다음에 다룰 내용
– IAM 역할에 MFA 조건 붙이기
– AWS Organization과 SCP(서비스 제어 정책) 연계 전략
– Terraform으로 IAM 역할 자동화하기