데이터베이스 클러스터 IAM 인증 미사용

지원되는 데이터베이스 클러스터에 IAM 인증을 구성해 장기 비밀번호 공유를 줄이세요.

설명

지원되는 RDS 또는 Aurora 클러스터에서 IAM 데이터베이스 인증을 사용하면 애플리케이션이 장기 비밀번호 대신 인증 토큰으로 접속할 수 있습니다. 이 기능을 사용하지 않고 비밀번호를 여러 서비스에 공유하면 교체와 접근 권한 관리가 어려워질 수 있습니다. IAM 인증만으로 MFA나 데이터베이스 감사 로그가 자동 활성화되지는 않습니다.

잠재적 영향

공유하거나 오래 유지한 비밀번호가 유출되면 해당 데이터베이스 사용자의 권한 범위에서 데이터에 접근할 수 있습니다.

해결 방법

클러스터 엔진·버전의 지원 여부를 확인하고 EnableIAMDatabaseAuthentication: true를 설정하세요. IAM 인증용 데이터베이스 사용자와 필요한 rds-db:connect 권한, TLS를 구성한 뒤 애플리케이션의 토큰 인증을 시험하세요. 데이터베이스 내부 권한을 최소화하고 불필요한 비밀번호 사용을 정리하세요.

예시

Aurora PostgreSQL 클러스터의 발췌입니다. 지원되는 DBEngineVersion과 그 버전에 맞는 DBClusterParameterGroupName을 입력하세요. 사용자·비밀번호 입력과 네트워크 등 나머지 정의는 생략했습니다.

변경 전

yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
  sample:
    Type: "AWS::RDS::DBCluster"
    Properties:
      MasterUsername: !Ref DBUsername
      MasterUserPassword: !Ref DBPassword
      StorageEncrypted: true
      DBClusterIdentifier: aurora-postgresql-cluster
      Engine: aurora-postgresql
      EngineVersion: !Ref DBEngineVersion
      DBClusterParameterGroupName: !Ref DBClusterParameterGroupName
      EnableCloudwatchLogsExports:
        - postgresql
      EnableIAMDatabaseAuthentication: false

클러스터의 IAM 인증을 비활성화합니다. 다른 인증 방식의 자격 증명 관리는 계속 필요합니다.

변경 후

yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
  sample:
    Type: "AWS::RDS::DBCluster"
    Properties:
      MasterUsername: !Ref DBUsername
      MasterUserPassword: !Ref DBPassword
      StorageEncrypted: true
      DBClusterIdentifier: aurora-postgresql-cluster
      Engine: aurora-postgresql
      EngineVersion: !Ref DBEngineVersion
      DBClusterParameterGroupName: !Ref DBClusterParameterGroupName
      EnableCloudwatchLogsExports:
        - postgresql
      EnableIAMDatabaseAuthentication: true

클러스터에서 IAM 인증을 사용할 수 있게 합니다. 이 설정만으로 기존 계정이나 애플리케이션의 인증 방식이 모두 전환되지는 않습니다.

참조