AWS
[AWS] IAM
배씌
2025. 9. 19. 14:22
IAM
👥 Users & Groups
IAM : Identify and Access Management, Global service
- Root account: 기본적으로 생성되며, 생성 후에는 루트 계정을 더이상 사용해서도, 공유해서도 안 됨. 대신 사용자를 생성해야 함.
- Users: 하나의 사용자는 조직 내의 한 사람에 해당됨. 필요하다면 사용자들을 그룹으로 묶을 수도 있음.
- Groups: 그룹에는 사용자만 배치할 수 있음. 다른 그룹은 포함할 수 없음.
사용자 & 그룹 생성 이유? -> 그들이 AWS 계정을 사용하도록 허용하기 위해 -> 권한 필요 !
✅ Permissions
- 사용자 또는 그룹에게 policy, 또는 IAM policy라고 불리는 JSON 문서를 지정
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*",
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:Describe*",
"Resource": "*",
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:Describe*"
],
"Resource": "*",
},
]
}
- AWS에서는 least privilege principle(최소 권한의 원칙)을 사용 -> 필요한 권한만 허용
🏛️ Polices Structure
{
"Version": "2012-10-17",
"Id": "S3-Account-Permissions",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::123456789012:root"]
},
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": ["arn:aws:s3:::mybucket/*"]
}
]
}
Policy 구성
- Version : 정책 언어 버전
- Id : 정책 식별 ID (선택)
- Statement : 한 개 이상의 statements
{Statement 구성}
- Sid : Statement 식별 ID (선택)
- Effect : Statement 가 특정 API에 접근하는 것을 허용할 지 (Allow / Deny)
- Principal : 특정 정책이 적용될 사용자, 계정, 혹은 역할
- Action : effect에 기반해 허용 및 거부되는 API 호출의 목록
- Resource : 적용될 action의 리소스 목록
- Condition : Statement 가 언제 적용될지 결정 (선택)
🔐 MFA (Multi Factor Authentication)
: 루트 계정과 IAM 계정을 보호하기 위해 MFA 사용
MFA : 비밀번호 + 개인 소유 디바이스 (OTP, Google Authentication, ...)
MFA 종류
- Virtual MFA device : 하나의 장치에서도 토큰을 여러개 지원함. 즉, 루트 계정, IAM 사용자, 또 다른 계정 등 원하는 수 만큼의 계정 및 사용자 등록이 가능.
- Google Authenticator
- Authy
- Universal 2nd Factor (U2F) Security Key : 물리적인 보안 장치 (USB 처럼 생겼음)
- Yubikey by Yubico
- Hardware Key Fob MFA Device : 하드웨어 보안 장치
- Gemalto
- Hardware Key Fob MFA Device for AWS GovCloud (US)
👤 IAM Role
: 몇몇 AWS 서비스는 본인 계정에서 실행해야 함. -> 이때 권한을 부여하는 데 IAM Role 을 사용
Role 종류
- EC2 Instance Roles
- Lambda Function Roles
- Roles for CloudFormation
🔒 IAM 보안 도구
- IAM Credentials Report : 계정에 있는 사용자와 자격 증명 상태 포함 (자격 증명 보고서)
- IAM Access Advisor : 계정 내 사용자의 권한 관리자
👍 IAM 모범 사례
- 루트 계정은 AWS 계정 설정할 때 빼고는 사용 ❌
- 사용자를 그룹에 넣어 해당 그룹에 권한을 부여할 수 있음 → 그룹 수준에서 보안 관리
- MFA 사용할 것
- AWS 서비스에서 권한을 부여할 때마다 Role를 만들고 사용할 것
- IAM 자격 증명 보고서, 액세스 관리자 기능 사용
💡 IAM 요약
- Users : 실제 사용자 (AWS 콘솔 로그인)
- Groups : Users 들 모아둔 것
- Polices : Users나 Groups에 대한 권한 (JSON)
- Roles : AWS 서비스 권한 부여할 때 사용함
- Security : 비밀번호 + MFA 사용
- Audit : IAM 자격 증명 보고서, 액세스 관리자