RDS IAM 데이터베이스 인증 미사용

지원되는 RDS 인스턴스에서 IAM 인증으로 장기 데이터베이스 비밀번호 사용을 줄이세요.

설명

IAM 데이터베이스 인증을 사용하지 않으면 애플리케이션은 별도로 관리하는 데이터베이스 자격 증명에 의존할 수 있습니다. 지원되는 RDS for MariaDB, MySQL, PostgreSQL에서는 IAM 인증 토큰으로 접속할 수 있습니다. 토큰은 15분 동안 새 연결 인증에 사용할 수 있으며, 이미 연결된 세션의 수명을 제한하지는 않습니다.

잠재적 영향

장기 비밀번호가 여러 시스템에 저장되거나 공유되면 유출과 권한 회수 누락의 위험이 커질 수 있습니다.

해결 방법

지원 엔진·버전과 애플리케이션 호환성을 확인한 뒤 EnableIAMDatabaseAuthentication: true를 설정하세요. IAM 인증용 데이터베이스 사용자, 필요한 rds-db:connect 권한, TLS 연결을 함께 구성하세요. 데이터베이스 내부 권한과 감사 로그는 별도로 관리하세요. Aurora는 인스턴스가 아니라 클러스터에서 IAM 인증을 설정하세요.

예시

암호화된 RDS MySQL 원본의 읽기 복제본을 가정한 발췌입니다. 원본 식별자·리전과 지원되는 인스턴스 유형을 입력하고, 생략된 MyKey 정의에 사용 가능한 KMS 키를 제공하세요.

변경 전

yaml
AWSTemplateFormatVersion: 2010-09-09
Description: RDS Storage Encrypted
Parameters:
  SourceDBInstanceIdentifier:
    Type: String
  DBInstanceType:
    Type: String
  SourceRegion:
    Type: String
Resources:
  MyDBSmall:
    Type: "AWS::RDS::DBInstance"
    Properties:
      DBInstanceClass: !Ref DBInstanceType
      SourceDBInstanceIdentifier: !Ref SourceDBInstanceIdentifier
      SourceRegion: !Ref SourceRegion
      DeletionProtection: false
      KmsKeyId: !Ref MyKey
      EnableIAMDatabaseAuthentication: false

복제본의 IAM 데이터베이스 인증을 활성화하지 않습니다.

변경 후

yaml
AWSTemplateFormatVersion: 2010-09-09
Description: RDS Storage Encrypted
Parameters:
  SourceDBInstanceIdentifier:
    Type: String
  DBInstanceType:
    Type: String
  SourceRegion:
    Type: String
Resources:
  MyDBSmall:
    Type: "AWS::RDS::DBInstance"
    Properties:
      DBInstanceClass: !Ref DBInstanceType
      SourceDBInstanceIdentifier: !Ref SourceDBInstanceIdentifier
      SourceRegion: !Ref SourceRegion
      DeletionProtection: false
      KmsKeyId: !Ref MyKey
      EnableIAMDatabaseAuthentication: true

복제본의 IAM 인증을 활성화합니다. 애플리케이션의 토큰 생성과 실제 데이터베이스 접속도 확인하세요.

참조