메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

Microsoft SQL Server DB 인스턴스를 통한 Windows 인증 사용

사용자가 Microsoft SQL Server 기반 Amazon RDS DB 인스턴스에 접속하려고 할 때 Windows 인증을 사용하여 사용자를 인증할 수 있습니다. DB 인스턴스는 Microsoft AD로도 불리는 Microsoft Active Directory용 AWS 디렉터리 서비스(Enterprise Edition)과 함께 작동해 Windows 인증을 활성화합니다. 사용자가 신뢰할 수 있는 도메인에 가입된 SQL Server DB 인스턴스를 사용하여 인증할 경우 AWS Directory Service를 사용하여 만든 도메인 디렉터리에 인증 요청이 전달됩니다.

Amazon RDS는 다음을 제외한 모든 AWS 리전에서 SQL Server의 Windows 인증을 지원합니다.

  • 미국 서부(캘리포니아 북부 지역)

  • 아시아 태평양(뭄바이)

  • 남아메리카(상파울루)

Amazon RDS에서는 Windows 인증을 위해 혼합 모드를 사용합니다. 이 방법에서 마스터 사용자(SQL Server DB 인스턴스를 만드는 데 사용된 이름과 암호)는 SQL 인증을 사용합니다. 마스터 사용자 계정은 권한 있는 자격 증명이므로 이 계정에 대한 액세스를 제한해야 합니다.

온프레미스 또는 자체 호스팅된 Microsoft Active Directory를 사용하여 Windows 인증을 수행하려면 포리스트 트러스트를 만들어야 합니다. AWS Directory Service를 사용하여 포리스트 트러스트를 설정하는 방법에 대한 자세한 내용은 신뢰 관계 생성(Microsoft AD)을 참조하십시오.

SQL Server DB 인스턴스에 대한 Windows 인증을 설정하려면 이 단원에 자세히 설명된 다음 단계를 수행하십시오.

  1. Microsoft AD로도 불리는 Microsoft Active Directory용 AWS 디렉터리 서비스(Enterprise Edition)을 이용해 AWS 콘솔 또는 AWS Directory Service API에서 Microsoft AD 디렉터리를 만듭니다.

     

  2. AWS CLI 또는 Amazon RDS API를 사용하여 SQL Server DB 인스턴스를 만드는 경우 관리형 IAM 정책 AmazonRDSDirectoryServiceAccess를 사용하는 IAM 역할을 만들어야 합니다. 이 역할을 사용하여 Amazon RDS에서 디렉터리를 호출할 수 있습니다. AWS 콘솔을 사용하여 SQL Server DB 인스턴스를 만드는 경우 AWS에서 IAM 역할을 자동으로 생성합니다.

     

  3. Microsoft Active Directory 도구를 사용하여 Microsoft AD 디렉터리에서 사용자 및 그룹을 만들고 구성합니다. Active Directory에서 사용자 및 그룹을 만드는 방법에 대한 자세한 내용은 AWS Directory Service 문서의 Add Users and Groups(Simple AD and Microsoft AD)를 참조하십시오.  사용자 및 그룹을 추가합니다(Simple AD and Microsoft AD).

     

  4. Amazon RDS를 사용하여 AWS 콘솔, AWS CLI 또는 Amazon RDS API에서 새 SQL Server DB 인스턴스를 만듭니다. 생성 요청에서 디렉터리를 만들 때 생성된 도메인 식별자("d-*" 식별자)와 생성된 역할의 이름을 제공합니다. DB 인스턴스에 대한 domainIAM role 파라미터를 설정하고 도메인 디렉터리와 동일한 VPC에 DB 인스턴스를 배치하여 Windows 인증을 사용하도록 기존 SQL Server DB 인스턴스를 수정할 수도 있습니다.

     

  5. 다른 DB 인스턴스의 경우와 같은 방법으로 Amazon RDS 마스터 사용자 자격 증명을 사용하여 SQL Server DB 인스턴스에 연결합니다. DB 인스턴스는 Microsoft AD 도메인에 조인되므로 도메인에 있는 Active Directory 사용자 및 그룹의 SQL Server 로그인 및 사용자를 프로비저닝할 수 있습니다(SQL Server "Windows" 로그인이라고 함). 데이터베이스 권한은 이러한 Windows 로그인에 부여되거나 취소되는 표준 SQL Server 권한을 통해 관리됩니다.

     

Kerberos 인증에 대한 엔드포인트 만들기

Kerberos 기반 인증을 사용하려면 엔드포인트가 고객이 지정한 호스트 이름과 마침표(.) 및 정규화된 도메인 이름(FQDN) 순으로 구성되어야 합니다. Kerberos 기반 인증에 사용되는 엔드포인트의 예를 들면 다음과 같습니다. 이 예에서 SQL Server DB 인스턴스 호스트 이름은 ad-test이고 도메인 이름은 corp-ad.company.com입니다.

ad-test.corp-ad.company.com

현재 연결에서 Kerberos를 사용 중인지 확인하려면 다음 쿼리를 실행할 수 있습니다.

Copy
SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;

SQL Server DB 인스턴스에 대한 Windows 인증 설정

Microsoft AD로도 불리는 Microsoft Active Directory용 AWS 디렉터리 서비스(Enterprise Edition)을 사용해 SQL Server DB 인스턴스의 Windows 인증을 설정합니다. Windows 인증을 설정하려면 다음 단계를 수행하십시오.

1단계: Microsoft Active Directory용 AWS 디렉터리 서비스(Enterprise Edition)을 사용하여 디렉터리 만들기

AWS Directory Service에서는 AWS 클라우드에서 완벽하게 관리되는 Microsoft Active Directory를 만듭니다. Microsoft AD 디렉터리를 만들면 AWS Directory Service에서 두 도메인 컨트롤러와 DNS 서버를 자동으로 만듭니다. 디렉터리 서버는 VPC 내의 서로 다른 서브넷에 생성됩니다. 이 중복으로 인해 장애가 발생하더라도 디렉터리에 액세스할 수 있습니다.

Microsoft AD 디렉터리를 만드는 경우 AWS Directory Service에서 다음 작업이 자동으로 수행됩니다.

  • VPC 내에서 Microsoft Active Directory를 설정합니다.

  • 사용자 이름 Admin과 지정된 암호를 사용하여 디렉터리 관리자 계정을 생성합니다. 이 계정을 사용하여 디렉터리를 관리할 수 있습니다.

    참고

    이 암호를 저장해야 합니다. AWS Directory Service에서는 이 암호를 저장하지 않으므로 암호를 검색하거나 다시 설정할 수 없습니다.

  • 디렉터리 컨트롤러에 대한 보안 그룹을 만듭니다.

Microsoft Active Directory용 AWS 디렉터리 서비스(Enterprise Edition)을 시작하면 AWS에서 모든 디렉터리의 객체를 포함하는 OU(조직 단위)를 만듭니다. 디렉터리를 만들 때 입력한 NetBIOS 이름을 가진 이 OU는 도메인 루트에 있습니다. 도메인 루트는 AWS에서 소유하고 관리합니다.

Microsoft AD 디렉터리를 사용하여 만든 admin 계정은 OU의 가장 일반적인 관리 활동에 대한 권한을 가집니다.

  • 업데이트 생성 또는 사용자, 그룹, 컴퓨터 삭제

  • 도메인(예: 파일 또는 인쇄 서버)에 리소스를 추가한 다음 OU 내의 사용자 및 그룹에 해당 리소스에 대한 권한 할당

  • 추가 OU 및 컨테이너 생성

  • 권한 위임

  • 그룹 정책 생성 및 연결

  • Active Directory 휴지통에서 삭제된 객체 복원

  • Active Directory 웹 서비스에서 AD 및 DNS Windows PowerShell 모듈 실행

또한 admin 계정은 다음 도메인 차원 활동을 수행할 권한이 있습니다.

  • DNS 구성 관리(레코드, 영역 및 전달자 추가, 제거 또는 업데이트)

  • DNS 이벤트 로그 보기

  • 보안 이벤트 로그 보기

Microsoft Active Directory용 AWS 디렉터리 서비스(Enterprise Edition)으로 디렉터리를 생성하려면

  1. [AWS Directory Service console] 탐색 창에서 [Directories]를 선택한 후 [ Set up Directory]를 선택합니다.

  2. [Create Microsoft AD]를 선택합니다. Microsoft AD는 현재 Amazon RDS에서 사용하도록 지원되는 유일한 옵션입니다.

  3. 다음 정보를 제공합니다.

    Directory DNS

    디렉터리의 정규화된 이름(예: corp.example.com)입니다.

    NetBIOS name

    디렉터리의 짧은 이름(예: CORP)입니다.

    관리자 암호

    디렉터리 관리자의 암호입니다. 디렉터리 생성 프로세스에서는 사용자 이름 Admin과 이 암호를 사용하여 관리자 계정을 생성합니다.

    디렉터리 관리자 암호는 단어 "admin"을 포함할 수 없습니다. 암호는 대소문자를 구분하며 길이가 8~64자 사이여야 합니다. 또한 다음 네 범주 중 세 개에 해당하는 문자를 1자 이상 포함해야 합니다.

    • 소문자(a-z)

    • 대문자(A-Z)

    • 숫자(0-9)

    • 영숫자 외의 특수 문자(~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    [Confirm Password]

    관리자 암호를 다시 입력합니다.

    설명

    디렉터리에 대한 선택적 설명을 입력합니다.

  4. [VPC Details] 섹션에 다음 정보를 제공하고 [Next Step]을 선택합니다.

    VPC

    디렉터리에 대한 VPC입니다. SQL Server DB 인스턴스가 동일한 VPC에 생성되어야 합니다.

    서브넷

    디렉터리 서버에 대한 서브넷을 선택합니다. 두 서브넷이 서로 다른 가용 영역에 있어야 합니다.

  5. 디렉터리 정보를 검토하고 필요한 사항을 변경합니다. 정보가 올바르면 [Create Microsoft AD]를 선택합니다.

     [Directory details] 페이지의 그림

디렉터리를 생성하는 데 몇 분 정도 걸립니다. 디렉터리가 생성된 경우 [Status] 값이 [Active]로 변경됩니다.

디렉터리에 대한 정보를 보려면 디렉터리 목록에서 해당 디렉터리를 선택합니다. SQL Server DB 인스턴스를 생성하거나 수정할 때 디렉터리 ID가 필요하므로 이 값을 기록해 두십시오.

 세부 정보 페이지 그림

2단계: Amazon RDS에 사용할 IAM 역할 만들기

AWS 콘솔을 사용하여 SQL Server DB 인스턴스를 만들 경우 이 단계를 건너뛸 수 있습니다. AWS CLI 또는 Amazon RDS API를 사용하여 SQL Server DB 인스턴스를 만드는 경우 관리형 IAM 정책 AmazonRDSDirectoryServiceAccess를 사용하는 IAM 역할을 만들어야 합니다. 이 역할을 사용하여 Amazon RDS에서 AWS Directory Service를 자동으로 호출할 수 있습니다.

다음 IAM 정책 AmazonRDSDirectoryServiceAccess를 사용하여 AWS Directory Service에 액세스할 수 있습니다.

Copy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication" ], "Effect": "Allow", "Resource": "*" } ] }

이 정책을 사용하여 IAM 역할을 만듭니다. IAM 역할을 만드는 방법에 대한 자세한 내용은 고객 관리형 정책 만들기를 참조하십시오.

3단계: 사용자 및 그룹 생성 및 구성

Active Directory 도메인 서비스 및 Active Directory Lightweight Directory Services 도구의 일부인 Active Directory 사용자 및 컴퓨터 도구를 사용하여 사용자 및 그룹을 생성할 수 있습니다. 사용자는 디렉터리에 액세스할 수 있는 개별 사용자 또는 개체를 나타냅니다. 그룹은 개별 사용자에게 권한을 적용할 필요 없이 사용자 그룹에 권한을 부여하거나 거부하는 데 매우 유용합니다.

AWS Directory Service 디렉터리에서 사용자 및 그룹을 생성하려면 AWS Directory Service 디렉터리의 구성원인 Windows EC2 인스턴스에 연결하고 사용자 및 그룹 생성 권한이 있는 사용자로 로그인해야 합니다. 자세한 내용은 사용자 및 그룹 추가(Simple AD and Microsoft AD)를 참조하십시오.

4단계: SQL Server DB 인스턴스 생성 또는 수정

이제 디렉터리에 사용할 Microsoft SQL Server DB 인스턴스를 생성하거나 수정합니다. 이 작업을 다음 중 한 가지 방법으로 수행할 수 있습니다.

  • 새 SQL Server DB 인스턴스 생성

  • 기존 SQL Server DB 인스턴스 수정

  • DB 스냅샷에서 SQL Server DB 인스턴스 복원

  • 특정 시점 복원에서 SQL Server DB 인스턴스 복원

Windows 인증은 VPC의 SQL Server DB 인스턴스에 대해서만 지원되고, DB 인스턴스가 디렉터리와 동일한 VPC 내에 있어야 합니다.

DB 인스턴스에서 생성된 도메인 디렉터리를 사용하려면 여러 파라미터가 필요합니다.

  • domain 파라미터의 경우 디렉터리를 만들 때 생성된 도메인 식별자("d-*" 식별자)를 입력해야 합니다.

  • 디렉터리를 생성할 때 사용한 것과 동일한 VPC를 사용합니다.

  • DB 인스턴스가 디렉터리와 통신할 수 있도록 VPC 내에서 송신할 수 있는 보안 그룹을 사용합니다.

5단계: Windows 인증 SQL Server 로그인 생성

다른 DB 인스턴스의 경우와 같은 방법으로 Amazon RDS 마스터 사용자 자격 증명을 사용하여 SQL Server DB 인스턴스에 연결합니다. DB 인스턴스는 Microsoft AD 도메인에 조인되므로 도메인에 있는 Active Directory 사용자 및 그룹의 SQL Server 로그인과 사용자를 프로비저닝할 수 있습니다. 데이터베이스 권한은 이러한 Windows 로그인에 부여되거나 취소되는 표준 SQL Server 권한을 통해 관리됩니다.

Active Directory 사용자가 SQL Server로 인증하도록 허용하려면 사용자가 구성원인 그룹 또는 사용자에 대한 SQL Server Windows 로그인이 있어야 합니다. 세분화된 액세스 제어는 이러한 SQL Server 로그인에 대한 권한을 부여하거나 취소하여 처리합니다. 사용자가 해당 SQL Server 로그인이 없고 해당 SQL Server 로그인을 가진 그룹의 구성원이 아닌 경우 해당 사용자는 SQL Server DB 인스턴스에 액세스할 수 없습니다.

Active Directory SQL Server 로그인을 생성하려면 ALTER ANY LOGIN 권한이 필요합니다. 이 권한을 가진 로그인을 아직 생성하지 않은 경우 SQL Server 인증을 사용하여 DB 인스턴스의 마스터 사용자로 연결합니다. 다음 데이터 조작 언어(DDL) 명령을 실행하여 Active Directory 사용자 또는 그룹에 대한 SQL Server 로그인을 생성합니다.

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

domainName\login_name 형식의 Windows 2000 이전 로그인 이름을 사용하여 사용자 또는 그룹을 지정해야 합니다. login_name@DomainName 형식의 UPN(User Principle Name)을 사용할 수 없습니다. CREATE LOGIN에 대한 자세한 내용은 Microsoft Developer Network 문서의 https://msdn.microsoft.com/en-us/library/ms189751.aspx를 참조하십시오.

도메인의 사용자(사용자 및 애플리케이션)는 이제 Windows 인증을 사용하여 도메인이 조인된 클라이언트 컴퓨터의 RDS SQL Server 인스턴스에 연결할 수 있습니다.

도메인에서 DB 인스턴스 관리

AWS 콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 DB 인스턴스 및 DB 인스턴스와 도메인의 관계를 관리할 수 있습니다(예: 도메인 내부, 외부 또는 사이에서 DB 인스턴스 이동).

예를 들어 Amazon RDS API를 사용하여 다음을 수행할 수 있습니다.

  • 실패한 멤버십에 대한 도메인 조인을 다시 시도하려면 ModifyDBInstance API 작업을 사용하고 현재 멤버십의 디렉터리 ID를 지정합니다.

  • 멤버십에 대한 IAM 역할 이름을 업데이트하려면 ModifyDBInstance API 작업을 사용하고 현재 멤버십의 디렉터리 ID와 새 IAM 역할을 지정합니다.

  • 도메인에서 DB 인스턴스를 제거하려면 ModifyDBInstance API 작업을 사용하고 'none'을 도메인 파라미터로 지정합니다.

  • 한 도메인에서 다른 도메인으로 DB 인스턴스를 이동하려면 ModifyDBInstance API 작업을 사용하고 새 도메인의 도메인 식별자를 도메인 파라미터로 지정합니다.

  • 각 DB 인스턴스에 대한 멤버십을 나열하려면 DescribeDBInstances API 작업을 사용합니다.

도메인 멤버십 이해

DB 인스턴스를 생성하거나 수정한 경우 해당 인스턴스는 도메인의 구성원이 됩니다. AWS 콘솔은 DB 인스턴스에 대한 도메인 멤버십의 상태를 나타냅니다. DB 인스턴스의 상태는 다음 중 한 가지가 될 수 있습니다.

  • joined - 인스턴스가 도메인의 구성원입니다.

  • joining - 인스턴스가 도메인 구성원이 되기 위한 과정을 진행하고 있습니다.

  • pending-join - 인스턴스 멤버십이 보류 중입니다.

  • pending-maintenance-join - AWS에서 다음 예약된 유지 관리 기간 동안 인스턴스를 도메인의 구성원으로 만들려고 시도합니다.

  • pending-removal - 도메인에서 인스턴스 제거 작업이 보류 중입니다.

  • pending-maintenance-removal - AWS에서 다음 예약된 유지 관리 기간 동안 도메인에서 인스턴스를 제거하려고 시도합니다.

  • failed - 구성 문제가 발생하여 인스턴스가 도메인에 조인되지 않았습니다. 구성을 확인하고 문제를 해결한 다음 인스턴스 수정 명령을 다시 실행하십시오.

  • removing - 인스턴스를 도메인에서 제거하고 있습니다.

네트워크 연결 문제 또는 잘못된 IAM 역할로 인해 도메인 구성원 되기 요청이 실패할 수 있습니다. DB 인스턴스를 생성하거나 기존 인스턴스를 수정한 후 도메인 구성원 되기 시도가 실패할 경우 수정 명령을 다시 실행하거나 새로 생성된 인스턴스를 수정하여 도메인에 조인해야 합니다.

Windows 인증을 사용하여 SQL Server에 연결

Windows 인증을 사용하여 SQL Server에 연결하려면 도메인에 조인된 컴퓨터에 도메인 사용자로 로그인해야 합니다. 다음과 같이 SQL Server Management Studio를 시작한 후 [Windows 인증]을 인증 유형으로 선택합니다.

SQL Server DB 인스턴스를 복원한 후 도메인에 추가

DB 스냅샷을 복원하거나 SQL Server DB 인스턴스에 대한 특정 시점 복원을 수행한 후 도메인에 추가할 수 있습니다. DB 인스턴스가 복원된 후 4단계: SQL Server DB 인스턴스 생성 또는 수정 단원에 설명된 프로세스를 사용하여 DB 인스턴스를 도메인에 추가하도록 인스턴스를 수정합니다.

관련 주제