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

최종 업데이트 날짜: 2022년 10월 14일

AWS 계정에서 AWS Directory Service for Microsoft Active Directory를 구성했습니다. Microsoft SQL Server DB 인스턴스용 Amazon Relational Database Service(RDS)를 생성할 때 다음 문제 중 하나가 발생합니다.

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

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

간략한 설명

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

해결 방법

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

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

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

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

RDS DB 인스턴스와 디렉터리 서비스가 같은 리전에 있는지 확인합니다.

1.    Amazon RDS 콘솔을 열고 탐색 창에서 [Databases]를 선택합니다.

2.    디렉터리에 연결하고자 하는 DB 인스턴스를 선택합니다.

3.    [Summary] 섹션에서 DB 인스턴스와 연결된 리전을 검토합니다.

4.    디렉터리 서비스가 DB 인스턴스와 같은 AWS 리전에 속하는지 AWS Directory Service 콘솔을 통해 확인합니다.

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

1.    디렉터리를 DB 인스턴스를 생성할 AWS 계정과 공유하기 시작하세요. AWS Directory Service 관리 가이드원활한 EC2 도메인 조인을 위한 AWS 관리형 Microsoft AD 디렉터리 공유에 소개된 단계를 따르면 됩니다.

2.    DB 인스턴스 계정을 사용하여 AWS Directory Service 콘솔에 로그인합니다. 도메인의 상태가 [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."

1.    RDS for SQL Server 인스턴스 보안 그룹이 올바른 아웃바운드 트래픽을 허용하도록 구성되어 있는지 확인합니다.

  • TCP 및 UDP 포트 53
  • TCP 및 UDP 포트 88
  • TCP 및 UDP 포트 135
  • TCP 및 UDP 포트 389
  • TCP 및 UDP 포트 445

2.    AWS 관리형 Microsoft AD 보안 그룹이 올바른 인바운드 트래픽을 허용하도록 구성되었는지 확인합니다. 보안 그룹은 AWS 관리형 Microsoft AD를 만들 때 생성됩니다. 이 보안 그룹에 추가된 인바운드 및 아웃바운드 규칙 목록은 AWS Directory Service 관리 안내서생성 내용을 참조하세요.

3.    DB 인스턴스와 AWS 관리형 Microsoft AD가 서로 다른 VPC 또는 다른 계정에 있을 수 있습니다. 그렇다면 DB 인스턴스가 AD에 도달할 수 있는 올바른 경로가 있는지 확인하세요. 또한 AD가 DB 인스턴스에 도달할 수 있는 올바른 경로가 있는지 확인하세요. 자세한 내용은 교차 계정 및 VPC 간 도메인 조인에 대한 RDS 지원(비디오)을 참조하세요.

도메인 조인 실패의 잠재적 원인을 식별하고 해결한 후 다음을 수행하여 도메인을 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을 사용합니다. 사용자 지정 역할을 사용하는 경우 기본 정책인 AmazonRDSDirectoryServiceAccess를 사용자 지정 역할에 연결합니다. 이렇게 하면 제공된 IAM 역할이 유효하지 않음 오류가 해결됩니다.

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

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

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 for SQL Server 인스턴스에서 Windows 인증 로그인을 생성하는 작업은 T-SQL을 사용하는 경우에만 지원됩니다. GUI로는 SQL Server Management Studio에서 로그인을 생성할 수 없습니다.

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