자체 관리형 Active Directory 설정 - Amazon Relational Database Service

자체 관리형 Active Directory 설정

자체 관리형 AD를 설정하려면 다음 단계를 따르세요.

1단계: AD에서 조직 단위 생성

중요

자체 관리형 AD 도메인에 가입된 RDS for SQL Server DB 인스턴스를 소유한 AWS 계정에 대해 전용 OU 및 해당 OU 범위의 서비스 보안 인증을 만드는 것이 좋습니다. 전용 OU 및 서비스 보안 인증을 지정하면 권한 충돌을 피하고 최소 권한 원칙을 따를 수 있습니다.

AD에서 OU를 생성하려면
  1. 도메인 관리자로 AD 도메인에 연결합니다.

  2. Active Directory 사용자 및 컴퓨터를 열고 OU를 생성할 도메인을 선택합니다.

  3. 도메인을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기를 선택한 다음 조직 단위를 선택합니다.

  4. OU 이름을 입력합니다.

  5. 컨테이너가 실수로 삭제되지 않도록 보호 확인란을 선택한 상태로 유지합니다.

  6. 확인을 클릭합니다. 새 OU는 도메인 아래에 표시됩니다.

2단계: AD에서 AD 도메인 사용자 생성

도메인 사용자 보안 인증 정보는 AWS Secrets Manager에서 보안 암호로 사용됩니다.

AD에서 AD 도메인 사용자를 생성하려면
  1. Active Directory 사용자 및 컴퓨터를 열고 사용자를 생성할 도메인과 OU를 선택합니다.

  2. 사용자 객체를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기, 사용자 순으로 선택합니다.

  3. 사용자의 이름, 성 및 로그온 이름을 입력합니다. 다음을 클릭합니다.

  4. 사용자의 암호를 입력합니다. “다음 로그인 시 사용자가 암호를 변경해야 함”을 선택하지 마세요. “계정이 비활성화됨”을 선택하지 마세요. 다음을 클릭합니다.

  5. 확인을 클릭합니다. 새 사용자는 도메인 아래에 표시됩니다.

3단계: AD 사용자에게 제어 권한 위임

도메인의 AD 도메인 사용자에게 제어 권한을 위임하려면
  1. Active Directory 사용자 및 컴퓨터 MMC 스냅인을 열고 사용자를 생성할 도메인을 선택합니다.

  2. 이전에 만든 OU를 마우스 오른쪽 버튼으로 클릭하고 제어 위임을 선택합니다.

  3. 제어 위임 마법사에서 다음을 클릭합니다.

  4. 사용자 또는 그룹 섹션에서 추가를 클릭합니다.

  5. 사용자, 컴퓨터 또는 그룹 선택 섹션에서 생성한 AD 사용자를 입력하고 이름 확인을 클릭합니다. AD 사용자 확인에 성공하면 확인을 클릭합니다.

  6. 사용자 또는 그룹 섹션에서 AD 사용자가 추가되었는지 확인하고 다음을 클릭합니다.

  7. 위임할 작업 섹션에서 위임할 사용자 지정 작업 생성을 선택하고 다음을 클릭합니다.

  8. Active Directory 객체 유형 섹션에서:

    1. 폴더의 다음 객체만을 선택합니다.

    2. 컴퓨터 객체를 선택합니다.

    3. 이 폴더에서 선택한 객체 생성을 선택합니다.

    4. 이 폴더에서 선택한 객체 삭제를 선택하고 다음을 클릭합니다.

  9. 권한 섹션에서:

    1. 일반을 선택한 상태로 유지합니다.

    2. DNS 호스트 이름에 대한 검증된 쓰기를 선택합니다.

    3. 서비스 보안 주체 이름에 대한 검증된 쓰기를 선택하고 다음을 클릭합니다.

  10. 제어 위임 마법사를 완료하려면 설정을 검토 및 확인한 다음 마침을 클릭합니다.

4단계: AWS KMS 키 생성

KMS 키는 AWS 보안 암호를 암호화하는 데 사용됩니다.

AWS KMS 키를 생성하려면
참고

암호화 키의 경우 AWS 기본 KMS 키를 사용하지 마세요. 자체 관리형 AD에 가입시키려는 RDS for SQL Server DB 인스턴스가 포함된 동일한 AWS 계정에 AWS KMS 키를 만들어야 합니다.

  1. AWS KMS 콘솔에서 키 생성을 선택합니다.

  2. 키 유형에 대해 대칭을 선택합니다.

  3. 키 사용에서 암호화 및 암호 해독을 선택합니다.

  4. 고급 옵션에서 다음을 수행합니다.

    1. 키 구성 요소 오리진에서 KMS를 선택합니다.

    2. 리전 구분에서 단일 리전 키를 선택하고 다음을 클릭합니다.

  5. 별칭의 경우 KMS 키의 이름을 입력합니다.

  6. (선택 사항) 설명에 KMS 키에 대한 설명을 입력합니다.

  7. (선택 사항) 태그의 경우 KMS 키에 태그를 지정하고 다음을 클릭합니다.

  8. 키 관리자의 경우 IAM 사용자의 이름을 입력하고 선택합니다.

  9. 키 삭제의 경우 키 관리자가 이 키를 삭제하도록 허용 확인란을 선택한 상태로 유지하고 다음을 클릭합니다.

  10. 키 사용자의 경우 이전 단계와 동일한 IAM 사용자를 입력하고 해당 사용자를 선택합니다. 다음을 클릭합니다.

  11. 구성을 검토합니다.

  12. 주요 정책의 경우 정책 에 다음을 포함하세요.

    { "Sid": "Allow use of the KMS key on behalf of RDS", "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "kms:Decrypt", "Resource": "*" }
  13. 완료를 클릭합니다.

5단계: AWS 보안 암호 생성

보안 암호 생성
참고

자체 관리형 AD에 가입시키려는 RDS for SQL Server DB 인스턴스가 포함된 동일한 AWS 계정에 보안 암호를 만들어야 합니다.

  1. AWS Secrets Manager에서 새 보안 암호 저장을 선택합니다.

  2. 보안 암호 유형에서 다른 유형의 보안 암호를 선택합니다.

  3. 키/값 쌍의 경우 2개의 키를 추가합니다.

    1. 첫 번째 키에는 CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME를 입력합니다.

    2. 첫 번째 키 값에는 AD 사용자의 사용자 이름(도메인 접두사 제외)만 입력합니다. 도메인 이름을 포함하면 인스턴스 생성이 실패하므로 포함하지 마세요.

    3. 두 번째 키에는 CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD를 입력합니다.

    4. 두 번째 키의 값으로 도메인의 AD 사용자에 대해 생성한 암호를 입력합니다.

  4. 암호화 키에는 이전 단계에서 생성한 KMS 키를 입력하고 다음을 클릭합니다.

  5. 보안 암호 이름에는 나중에 암호를 찾는 데 도움이 되는 설명이 포함된 이름을 입력합니다.

  6. (선택 사항) 설명에 보안 암호 이름에 대한 설명을 입력합니다.

  7. 리소스 권한의 경우 편집을 클릭합니다.

  8. 권한 정책에 다음 정책을 추가합니다.

    참고

    혼란스러운 대리인 문제를 피하기 위해 정책의 aws:sourceAccountaws:sourceArn 조건을 사용하는 것이 좋습니다. aws:sourceAccount에는 AWS 계정를 사용하고 aws:sourceArn에는 RDS for SQL Server DB 인스턴스를 사용합니다. 자세한 내용은 교차 서비스 혼동된 대리자 문제 방지 섹션을 참조하세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringEquals": { "aws:sourceAccount": "123456789012" }, "ArnLike": { "aws:sourceArn": "arn:aws:rds:us-west-2:123456789012:db:*" } } } ] }
  9. 저장을 클릭한 후 다음을 클릭합니다.

  10. 교체 설정 구성에서 기본값을 유지하고 다음을 선택합니다.

  11. 보안 암호 설정을 검토하고 저장을 클릭합니다.

  12. 생성한 보안 암호를 선택하고 보안 암호 ARN의 값을 복사합니다. 이는 다음 단계에서 자체 관리형 Active Directory를 설정하는 데 사용됩니다.

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

콘솔, CLI 또는 RDS API를 사용하여 RDS for SQL Server DB 인스턴스를 자체 관리형 AD 도메인에 연결할 수 있습니다. 이 작업을 다음 중 한 가지 방법으로 수행할 수 있습니다.

AWS CLI를 사용하는 경우 DB 인스턴스가 생성한 자체 관리형 Active Directory 도메인을 사용하려면 다음과 같은 파라미터가 필요합니다.

  • --domain-fqdn 파라미터에는 자체 관리형 Active Directory의 정규화된 도메인 이름(FQDN)을 사용합니다.

  • --domain-ou 파라미터에는 자체 관리형 AD에서 만든 OU를 사용합니다.

  • --domain-auth-secret-arn 파라미터에는 이전 단계에서 생성한 보안 암호 ARN의 값을 사용합니다.

  • --domain-dns-ips 파라미터에는 자체 관리형 AD용 DNS 서버의 프라이머리 및 보조 IPv4 주소를 사용합니다. 보조 DNS 서버 IP 주소가 없는 경우 프라이머리 IP 주소를 2번 입력합니다.

다음 예제 CLI 명령은 자체 관리형 AD 도메인이 있는 RDS for SQL Server DB 인스턴스를 생성, 수정 및 제거하는 방법을 보여줍니다.

중요

자체 관리형 AD 도메인에 가입하거나 자체 관리형 AD 도메인에서 제거하도록 DB 인스턴스를 수정한 경우 변경 사항이 적용되려면 DB 인스턴스를 재부팅해야 합니다. 변경 사항을 즉시 적용하거나 다음 유지 관리 기간까지 기다릴 수 있습니다. 즉시 적용 옵션을 선택하면 단일 AZ DB 인스턴스에 가동 중단이 발생합니다. 다중 AZ DB 인스턴스는 재부팅을 완료하기 전에 장애 조치를 수행합니다. 자세한 내용은 수정 예약 설정 사용 섹션을 참조하세요.

다음 CLI 명령은 새 RDS for SQL Server DB 인스턴스를 만들어 자체 관리형 AD 도메인에 가입시킵니다.

대상 LinuxmacOS, 또는Unix:

aws rds create-db-instance \ --db-instance-identifier my-DB-instance \ --db-instance-class db.m5.xlarge \ --allocated-storage 50 \ --engine sqlserver-se \ --engine-version 15.00.4043.16.v1 \ --license-model license-included \ --master-username my-master-username \ --master-user-password my-master-password \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Windows의 경우:

aws rds create-db-instance ^ --db-instance-identifier my-DB-instance ^ --db-instance-class db.m5.xlarge ^ --allocated-storage 50 ^ --engine sqlserver-se ^ --engine-version 15.00.4043.16.v1 ^ --license-model license-included ^ --master-username my-master-username ^ --master-user-password my-master-password ^ --domain-fqdn my-AD-test.my-AD.mydomain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

다음 CLI 명령은 자체 관리형 Active Directory 도메인을 사용하도록 기존 RDS for SQL Server DB 인스턴스를 수정합니다.

대상 LinuxmacOS, 또는Unix:

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier my-DBinstance ^ --domain-fqdn my_AD_domain.my_AD.my_domain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

다음 CLI 명령은 자체 관리형 Active Directory 도메인에서 RDS for SQL Server DB 인스턴스를 제거합니다.

대상 LinuxmacOS, 또는Unix:

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --disable-domain

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier my-DB-instance ^ --disable-domain

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

다른 DB 인스턴스의 경우와 같은 방법으로 Amazon RDS 마스터 사용자 보안 인증 정보를 사용하여 SQL Server DB 인스턴스에 연결합니다. DB 인스턴스는 자체 관리형 AD 도메인에 가입되므로 SQL Server 로그인 및 사용자를 프로비저닝할 수 있습니다. 이 작업은 자체 관리형 AD 도메인의 AD 사용자 및 그룹 유틸리티에서 수행합니다. 데이터베이스 권한은 이러한 Windows 로그인에 부여되거나 취소되는 표준 SQL Server 권한을 통해 관리됩니다.

자체 관리형 AD 사용자가 SQL 서버를 사용하여 인증하려면 자체 관리형 AD 사용자 또는 사용자가 구성원인 자체 관리형 Active Directory 그룹에 대한 SQL Server Windows 로그인이 있어야 합니다. 세분화된 액세스 제어는 이러한 SQL Server 로그인에 대한 권한을 부여하거나 취소하여 처리합니다. SQL Server 로그인이 없거나 이러한 로그인이 있는 자체 관리형 AD 그룹에 속하지 않은 자체 관리형 AD 사용자는 SQL Server DB 인스턴스에 액세스할 수 없습니다.

자체 관리형 AD SQL Server 로그인을 생성하려면 ALTER ANY LOGIN 권한이 필요합니다. 이 권한으로 로그인을 생성하지 않은 경우 SQL Server 인증을 사용하여 DB 인스턴스의 마스터 사용자로 연결하고 마스터 사용자의 맥락에서 자체 관리형 AD SQL Server 로그인을 생성합니다.

다음과 같은 데이터 정의 언어(DDL) 명령을 실행하여 자체 관리형 AD 사용자 또는 그룹에 대한 SQL Server 로그인을 생성할 수 있습니다.

참고

Windows 2000 이전 로그인 이름을 사용하여 사용자 및 그룹을 my_AD_domain\my_AD_domain_user 형식으로 지정합니다. UPN(User Principle Name)을 my_AD_domain_user@my_AD_domain 형식으로 사용할 수 없습니다.

USE [master] GO CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO

자세한 내용은 Microsoft Developer Network 설명서에서 CREATE LOGIN(Transact-SQL)을 참조하세요.

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