왜 IAM DB 인증이 필요한가?
Amazon RDS(MySQL, PostgreSQL)를 사용할 때, 우리는 보통 사용자 이름과 비밀번호를 통해 로그인 하는데, 이는 다음과 같은 보안 취약점을 안고 있다:
- 비밀번호를 코드나 설정 파일에 하드코딩해야 함
- 비밀번호가 노출될 위험이 있음
- 비밀번호를 주기적으로 변경해야 함
- IAM과 분리된 사용자 관리로 운영 복잡성 증가
위와 같은 문제들을 해결하기 위해 비밀번호 없는 RDS 접속 방식이 필요해졌다.
IAM DB 인증이란?
IAM DB 인증은 비밀번호 없이 RDS에 로그인할 수 있게 해주는 기능으로, AWS IAM 사용자 또는 역할이 생성한 15분 유효의 임시 토큰을 사용해 RDS(MySQL, PostgreSQL)에 로그인할 수 있다.
주요 특징:
- 비밀번호 대신 임시 토큰 사용
- 15분만 유효한 단기 자격 증명으로 보안성 강화
- IAM 기반 사용자 인증 → 중앙 관리 가능
- CloudTrail로 모든 로그인 시도 로깅 가능
IAM DB 인증 동작 흐름
graph TD
A[IAM 사용자 또는 역할] --> B[rds-db:connect 권한]
B --> C[토큰 생성 (CLI/SDK)]
C --> D[MySQL/PostgreSQL 클라이언트에 토큰 입력]
D --> E[RDS 로그인 성공]
- IAM 사용자/역할에 rds-db:connect 권한 부여
- AWS CLI 또는 SDK로 접속용 임시 토큰 생성
- 이 토큰을 DB 클라이언트에서 비밀번호처럼 사용
- IAM 정책 + DB 권한이 모두 만족하면 접속 성공
주의할 점
- 토큰은 15분 후 만료 → 애플리케이션에서 주기적으로 갱신해야 함
- MySQL은 --enable-cleartext-plugin 옵션 필요
- DB 사용자 생성 시 AWSAuthenticationPlugin 지정 필수
IAM DB 인증은 RDS 보안을 강화하고 IAM 중심의 인증 관리 전략을 실현하는 데 매우 유용한 도구로 훨씬 안전하고 깔끔한 인증 방식이 될 수 있다.
'AWS' 카테고리의 다른 글
DNS 레코드와 별칭(Alias) (0) | 2025.06.01 |
---|---|
API vs HTTP: 웹 통신 개념 비교 (0) | 2025.05.31 |
OLTP vs OLAP - 목적에 맞는 데이터베이스 선택 (0) | 2025.05.29 |
VPC ↔ 온프레미스 DNS 쿼리, Inbound와 Outbound Endpoint로 해결하기 (0) | 2025.05.28 |
AWS에서 SSO를 구현하는 방법: AD, STS, Federation 등 개념 정리 (0) | 2025.05.27 |