View a markdown version of this page

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

자체 관리형 Active Directory 설정

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

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

중요

자체 관리형 AD 도메인에 가입된 RDS for Db2 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 도메인 서비스 계정에 제어 위임

파트 A: 제어 위임 마법사를 사용하여 권한 위임

도메인의 AD 도메인 서비스 계정에 제어 권한 위임
  1. Active Directory 사용자 및 컴퓨터 Microsoft Management Console(MMC) 스냅인을 열고 사용자를 생성할 도메인을 선택합니다.

  2. 이전에 생성한 OU의 컨텍스트 메뉴를 열고 제어 위임을 선택합니다.

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

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

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

  6. 사용자 또는 그룹 섹션에서 AD 도메인 서비스 계정이 추가되었는지 확인하고 다음을 선택합니다.

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

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

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

    2. 사용자 객체를 선택합니다.

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

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

  9. 권한 섹션에서:

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

    2. 속성별을 선택합니다.

    3. 특정 하위 객체 생성/삭제를 선택합니다.

    4. 암호 재설정을 선택합니다.

    5. msDS-SupportedEncryptionTypes 읽기를 선택합니다.

    6. msDS-SupportedEncryptionTypes 쓰기를 선택합니다.

  10. 제어 위임 마법사 완료에서 설정을 검토 및 확인한 다음 마침을 선택합니다.

파트 B: PowerShell을 사용하여 servicePrincipalName 권한 위임

제어 위임 마법사는 사용자 객체의 servicePrincipalName 속성을 노출하지 않습니다. 도메인 컨트롤러에서 다음 PowerShell 스크립트를 실행하여 AD 도메인 서비스 계정에 OU의 사용자 객체에 대한 servicePrincipalName 읽기 및 쓰기 액세스 권한을 부여합니다.

service-account를 2단계에서 생성한 AD 도메인 서비스 계정의 이름으로 바꾸고 1단계에서 생성한 OU와 일치하도록 OU의 고유 이름을 업데이트합니다.

$ou = "OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain" $user = Get-ADUser "service-account" $acl = Get-Acl "AD:\$ou" $schemaPath = (Get-ADRootDSE).schemaNamingContext $spnSchema = Get-ADObject -SearchBase $schemaPath -Filter {lDAPDisplayName -eq "servicePrincipalName"} -Properties schemaIDGUID $spnGuid = New-Object Guid (,$spnSchema.schemaIDGUID) $userGuid = New-Object Guid "bf967aba-0de6-11d0-a285-00aa003049e2" $ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule( $user.SID, "ReadProperty,WriteProperty", "Allow", $spnGuid, "Descendents", $userGuid ) $acl.AddAccessRule($ace) Set-Acl "AD:\$ou" $acl

권한이 올바르게 적용되었는지 확인하려면 다음 PowerShell 스크립트를 실행합니다.

$acl = Get-Acl "AD:\$ou" $acl.Access | Where-Object { $_.IdentityReference -like "*service-account*" } | Format-List

4단계: AWS KMS 키 생성

KMS 키는 AWS 비밀을 암호화합니다.

참고

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

AWS KMS 키를 생성하는 방법
  1. AWS KMS 콘솔(https://console.aws.amazon.com/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 Db2 DB 인스턴스가 포함된 동일한 AWS 계정에서 비밀을 생성해야 합니다.

보안 암호 생성
  1. https://console.aws.amazon.com/secretsmanager/에서 AWS Secrets Manager 콘솔을 엽니다. 새 보안 암호 저장(Store a new secret)을 선택합니다.

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

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

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

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

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

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

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

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

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

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

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

    참고

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

    { "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단계: Db2 DB 인스턴스 생성 또는 수정

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

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

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

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

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

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

다음 CLI 명령은 새 RDS for Db2 DB 인스턴스를 생성하여 자체 관리형 AD 도메인에 가입시킵니다.

Linux, macOS, Unix의 경우:

aws rds create-db-instance \ --db-instance-identifier my-DB-instance \ --db-instance-class db.m6i.large \ --allocated-storage 50 \ --engine db2-se \ --engine-version 11.5 \ --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.m6i.large ^ --allocated-storage 50 ^ --engine db2-se ^ --engine-version 11.5 ^ --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"