AWS Managed Microsoft Active Directory에서 Amazon RDS for SQL Server Windows 인증 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 10일

AWS 계정에서 AWS Directory Service for Microsoft Active Directory(Microsoft AD)를 구성했습니다. 그런데 SQL Server를 실행하는 Amazon Relational Database Service(Amazon RDS) DB 인스턴스를 생성하려고 하면 다음과 같은 문제 중 하나가 발생합니다.

  • 해당 Active Directory를 사용할 수 없습니다.
  • “호스트를 도메인에 조인하지 못함” 오류가 발생하거나, RDS 콘솔에 디렉터리 상태가 “실패(Failed)”로 표시됩니다.
  • Windows 인증을 사용하여 DB 인스턴스에 로그인할 수 없음

AWS 관리형 Microsoft AD에서 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

이제 SQL Server를 실행하는 Amazon RDS DB 인스턴스의 Windows 인증이 여러 AWS 계정 및 Amazon VPC에서 지원됩니다. 따라서 하나의 AWS 관리형 Microsoft AD를 여러 AWS 계정과 VPC에 걸쳐 공유하여 디렉터리 인식형 데이터베이스 워크로드를 간편하게 관리할 수 있습니다. 다만, 이것은 RDS SQL Server DB 인스턴스가 AWS 관리형 Microsoft AD과 같은 AWS 리전에 속한 경우에만 해당합니다.

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

DB 인스턴스를 생성할 때 Active Directory가 나열되지 않거나 사용할 수 없음

중요: 관리형 도메인이 Active Directory의 AWS 관리형 액티브 디렉터리여야만 Amazon RDS 콘솔에 목록으로 표시됩니다.

AWS 관리형 디렉터리 서비스가 DB 인스턴스와 다른 AWS 리전에 속한 경우, DB 인스턴스를 생성하거나 수정해도 디렉터리가 목록에 표시되지 않습니다. 이 문제를 해결하려면 DB 인스턴스가 디렉터리 서비스와 같은 AWS 리전에 있어야 합니다.

RDS DB 인스턴스와 디렉터리 서비스가 같은 리전에 있는지 확인하세요.

  1. Amazon RDS 콘솔을 열고 탐색 창에서 [Databases]를 선택합니다.
  2. 디렉터리에 연결하고자 하는 DB 인스턴스를 선택합니다.
  3. [Summary] 섹션에서 DB 인스턴스와 연결된 리전을 검토합니다.
  4. 디렉터리 서비스가 DB 인스턴스와 같은 AWS 리전에 속하는지 디렉터리 서비스 콘솔을 통해 확인합니다.

AWS 관리형 디렉터리 서비스가 DB 인스턴스와 다른 AWS 계정에 속한 경우, 해당 AWS Directory Service를 AWS 계정과 공유합니다. 그러면 DB 인스턴스를 생성하거나 수정하면서 디렉터리 서비스를 목록에 표시할 수 있습니다.

  1. 디렉터리를 DB 인스턴스를 생성할 AWS 계정과 공유하기 시작하세요. AWS Directory Service 관리 가이드의 원활한 EC2 도메인 조인을 위한 AWS 관리형 Microsoft AD 디렉터리 공유에 소개된 단계를 따르면 됩니다.
  2. DB 인스턴스 계정을 사용하여 AWS 디렉터리 서비스 콘솔에 로그인합니다. 도메인의 상태가 [SHARED]인지 확인하고 계속 진행해야 합니다.
  3. AWS Directory Service 콘솔에 로그인하되 디렉터리 ID 값이 아니라 DB 인스턴스 계정을 사용합니다. 이 디렉터리 ID를 사용하여 DB 인스턴스를 도메인에 조인합니다.

DB 인스턴스를 도메인에 조인할 때 오류가 표시되거나 RDS 콘솔에 디렉터리 상태가 “실패(Failed)”로 표시됨

DB 인스턴스를 도메인에 조인할 때, 다음과 같은 오류 메시지가 표시되거나 디렉터리 상태가 실패(Failed)로 표시될 수 있습니다.

"Failed to join a host to a domain. Domain membership status for instance XXXXXXX has been set to Failed."

AWS 관리형 디렉터리 서비스가 같은 계정에 속하지만 VPC는 다르거나 DB 인스턴스와 다른 AWS 계정에 속한 경우, 해당 AWS 관리형 디렉터리 서비스 VPC와 DB 인스턴스 VPC 사이에 VPC 간 트래픽을 활성화하세요. 이렇게 하려면 VPC 피어링 또는 AWS Transit Gateway를 사용합니다. VPC 라우팅 테이블에 VPC 간 트래픽 흐름을 지원하기 위해 필요한 대상 경로가 있어야 합니다.

보안 그룹의 인바운드 및 아웃바운드 규칙이 DB 인스턴스가 Active Directory와 통신할 수 있도록 구성되었는지 확인합니다. 그런 다음, 다음 단계를 수행하여 도메인에 DB 인스턴스를 다시 조인합니다.

  1. Amazon RDS 콘솔을 열고 탐색 창에서 [Databases]를 선택합니다.
  2. 도메인에 조인하지 못한 DB 인스턴스를 선택하고 [수정]을 선택합니다.
  3. [Microsoft SQL Server Windows 인증] 섹션의 [디렉터리]에서 [없음]을 선택합니다.
  4. 즉시 적용을 선택합니다. 수정을 완료한 후 DB 인스턴스는 자동으로 재부팅됩니다.
  5. 디렉터리를 다시 조인하려면 탐색 창에서 [Databases]를 선택합니다.
  6. DB 인스턴스를 선택하고 [수정]을 선택합니다.
  7. [Microsoft SQL Server Windows 인증] 섹션의 [디렉터리]에 있는 목록에서 디렉터리를 선택합니다.
  8. 즉시 적용을 선택합니다. 수정을 완료한 후 DB 인스턴스는 다시 재부팅됩니다.

ModifyDBInstance 작업을 호출할 때 오류(InvalidParameterCombination) 발생: 제공한 IAM 역할이 잘못되었습니다. 해당 역할이 존재하며 정책이 올바른지 확인하세요.

AWS CLI를 사용하여 디렉터리 서비스를 DB 인스턴스에 연결하는 경우, 기본 IAM 역할인 rds-directoryservice-access-role을 사용합니다. 사용자 지정 IAM 역할을 사용하는 경우, 사용자 지정 IAM 역할에 기본 정책 AmazonRDSDirectoryServiceAccess를 연결해야 “제공한 IAM 역할이 잘못됨” 오류를 해결할 수 있습니다.

Windows 인증을 사용하여 DB 인스턴스에 로그인할 수 없음

Windows 인증을 사용하여 로그인하려면 DB 인스턴스에서 해당 Active Directory 사용자 또는 그룹에 대하여 SQL 로그인을 생성해야 합니다. 이때 DB 인스턴스 기본 사용자 자격 증명을 사용합니다. 온프레미스 Active Directory에서 그룹 또는 사용자를 사용하는 경우 신뢰 관계를 생성해야 합니다.

  1. SQL Server Management Studio(SSMS)를 사용하여 기본 사용자로 DB 인스턴스에 로그인합니다.

  2. T-SQL을 사용하여 Windows 인증 로그인을 생성합니다.

CREATE LOGIN [<Domain Name>\<user or group>] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];

참고: RDS SQL Server에서 Windows 인증 로그인을 생성하는 작업은 T-SQL을 사용하는 경우에만 지원됩니다. GUI로는 SQL Server Management Studio에서 로그인을 생성할 수 없습니다.

  • Windows 인증을 사용하여 DB 인스턴스에 연결합니다.