1. IAM
1) IAM 기본 개념 (Users & Groups)
- 글로벌 서비스 (Global Service): 리전에 국한되지 않고 글로벌 단위로 사용자와 그룹을 관리합니다.
- 루트 계정 (Root Account): 계정 생성 시 기본적으로 생성되는 마스터 계정입니다.
- 생성 이후에는 일상적인 작업에 사용하거나 타인과 공유해서는 안 되며, 별도의 IAM 사용자를 생성하여 사용해야 합니다.
- 사용자 (Users): 조직 내 한 사람(또는 서비스)에 해당합니다.
- 그룹 (Groups): 여러 사용자를 묶어 권한을 일괄 관리하기 위한 단위입니다.
- 그룹 안에는 사용자(Users)만 배치할 수 있으며, 다른 그룹을 하위 그룹으로 포함할 수는 없습니다.
2) 권한 (Permissions) 및 최소 권한의 원칙
- IAM 정책 (IAM Policy): 특정 사용자나 그룹이 어떤 AWS 서비스와 리소스에 접근할 수 있는지 정의하는 JSON 문서입니다.
- 최소 권한의 원칙 (Least Privillege Principle): 사용자가 업무를 수행하는 데 꼭 필요한 최소한의 권한만을 부여해야 합니다.
3) IAM 정책 구조
{
"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": "*",
},
]
}
- 기본 구성 요소:
- Version: 정책 언어 버전 (보통 “2012-10-17” 사용)
- Id: 정책 식별자 (선택 사항)
- Statement: 실제 권한 규칙을 담는 객체로, 하나 이상 필수 포함
- Statement 세부 구성 요소:
- Sid: Statement ID (선택 사항)
- Effect: 접근 허용(Allow) 또는 거부(Deny) 여부
- Principal: 정책이 적용될 대상 (사용자, 계정, 역할 등)
- Action: 허용/거부할 특정 API 호출 목록 (예: ec2:Describe*)
- Resource: Action이 적용될 AWS 리소스 목록
- Condition: 정책이 적용될 특정 조건(선택 사항)
4) 비밀번호 정책 (Password Policy)
- 강력한 비밀번호 설정을 통해 계정 보안을 강화할 수 있습니다.
- 설정 가능 옵션: 비밀번호 최소 길이 지정, 특정 문자 유형(대/소문자, 숫자, 특수문자) 포함 의무화, 비밀번호 만료 기간 및 재사용 금지 설정 등
5) 다중 인증 (MFA - Multi Factor Authentication)
- 핵심 개념: 아는 것(비밀번호) + 소유한 것(보안 장치) 조합으로 계정을 보호합니다. 비밀번호가 해킹당하더라도 MFA가 있으면 안전합니다. 루트 계정과 관리자 권한 사용자에게는 필수적입니다.
- AWS 지원 MFA 옵션
- Virtual MFA Device: 스마트폰 앱 활용 (Google Authenticator, Authy 등 / 여러 계정 등록 가능)
- Universal 2nd Factor (U2F) Security Key: 물리적 USB 키 (YubiKey 등)
- Hardware Key Fob MFA Device: Gemalto, SurePassID 등 타사 제공 물리장치
2. AWS CLI 및 SDK