AWS Managed Microsoft AD의 RDS for SQL Server Windows 인증 문제를 해결하려면 어떻게 해야 하나요?

5분 분량
0

AWS 계정에서 AWS Directory Service for Microsoft Active Directory를 구성했습니다. Microsoft SQL Server DB 인스턴스용 Amazon Relational Database Service(RDS)를 생성하는 데 문제를 겪고 있습니다.

간략한 설명

Amazon RDS for SQL Server 인스턴스를 생성할 때 다음 문제 중 하나가 발생할 수 있습니다.

  • Microsoft Managed AD를 사용할 수 없습니다.
  • ‘Failed to join a host to a domain’ 오류가 발생하거나, RDS 콘솔에 디렉터리 상태가 ‘실패(Failed)’로 표시됩니다.
  • Windows 인증을 사용하여 DB 인스턴스에 로그인할 수 없습니다.

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

해결 방법

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

DB 인스턴스를 생성할 때 AWS Managed Microsoft AD가 목록에 없거나 사용할 수 없음

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

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

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

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

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

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

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

AWS Managed Microsoft AD가 DB 인스턴스와 다른 AWS 계정에 속한 경우, 해당 Microsoft Managed 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 to join a host to a domain. Domain membership status for instance XXXXXXX has been set to Failed.’

또는 Directory status(디렉터리 상태)가 Failed(실패)로 표시될 수 있습니다.

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

  • TCP 및 UDP 포트 53
  • TCP 및 UDP 포트 88
  • TCP 및 UDP 포트 135
  • TCP 및 UDP 포트 389
  • TCP 및 UDP 포트 445
  • TCP 및 UDP 포트 464
  • TCP 포트 636
  • TCP 포트 3268
  • TCP 포트 3269
  • TCP 포트 9389
  • TCP 포트 49152~65535
  • UDP 포트 123
  • UDP 포트 138

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

3.    DB 인스턴스와 AWS Managed Microsoft AD가 서로 다른 VPC 또는 다른 계정에 있을 수 있습니다. 그렇다면 DB 인스턴스가 AWS Managed Microsoft AD에 도달할 수 있는 올바른 경로가 있는지 확인하세요. 또한 Microsoft Managed 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 인증을 사용하여 로그인하려면 AWS Managed Microsoft AD 사용자 또는 그룹의 인스턴스에 대한 SQL 로그인이 필요합니다. SQL 로그인은 DB 인스턴스의 기본 사용자 보안 인증을 사용합니다. 온프레미스 Microsoft 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 for SQL Server 인스턴스에서 Windows 인증 로그인을 생성하는 작업은 T-SQL을 사용하는 경우에만 지원됩니다. GUI로는 SQL Server Management Studio에서 로그인을 생성할 수 없습니다.

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


관련 정보

Amazon RDS for SQL Server DB 인스턴스에 Windows 통합 인증 사용

보안 그룹을 통한 액세스 제어

Amazon RDS DB 인스턴스에 연결할 수 없음

여러 계정에 걸친 Amazon RDS DB 인스턴스를 하나의 공유 도메인에 조인

Microsoft SQL Server 데이터베이스를 AWS 클라우드로 마이그레이션