AWS

IAM DB 인증 - 비밀번호 없이 안전하게 RDS 접속하기

heesoohi 2025. 5. 30. 01:03

왜 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 로그인 성공]

 

 

  1. IAM 사용자/역할에 rds-db:connect 권한 부여
  2. AWS CLI 또는 SDK로 접속용 임시 토큰 생성
  3. 이 토큰을 DB 클라이언트에서 비밀번호처럼 사용
  4. IAM 정책 + DB 권한이 모두 만족하면 접속 성공

 

주의할 점

  • 토큰은 15분 후 만료 → 애플리케이션에서 주기적으로 갱신해야 함
  • MySQL은 --enable-cleartext-plugin 옵션 필요
  • DB 사용자 생성 시 AWSAuthenticationPlugin 지정 필수

 

IAM DB 인증은 RDS 보안을 강화하고 IAM 중심의 인증 관리 전략을 실현하는 데 매우 유용한 도구로 훨씬 안전하고 깔끔한 인증 방식이 될 수 있다.