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. [OK] を選択してください。新しい OU がドメインの下に表示されます。

ステップ 2: AD に AD ドメインサービスアカウントを作成する

ドメインサービスアカウントの認証情報は AWS Secrets Manager のシークレットに使用されます。

AD に AD ドメインサービスアカウントを作成するには
  1. [Active Directory ユーザーとコンピューター] を開き、ユーザーを作成するドメインと OU を選択します。

  2. [ユーザー] のコンテキストメニューを開き、[新規][ユーザー] の順に選択します。

  3. ユーザーの名、姓、およびログオン名を入力します。[次へ] を選択します。

  4. ユーザーのパスワードを入力します。[ユーザーは次回のログイン時にパスワードを変更する必要がある] を選択しないでください。[アカウントは無効です] を選択しないでください。[次へ] を選択します。

  5. [OK] を選択してください。新しいユーザーがドメインの下に表示されます。

ステップ 3: AD ドメインサービスアカウントに制御を委任する

パート A: コントロールの委任ウィザードを使用してアクセス許可を委任する

ドメイン内の AD ドメインサービスアカウントに制御を委任するには
  1. [Active Directory ユーザーとコンピュータ] Microsoft 管理コンソール (MMC) スナップインを開き、ユーザーを作成するドメインを選択します。

  2. 前に作成した OU のコンテキストメニューを開き、[コントロールの委任] を選択します。

  3. [コントロールの委任ウィザード] で、[次へ] を選択します。

  4. [ユーザーまたはグループ] セクションで、[追加] を選択します。

  5. [ユーザー、コンピュータ、またはグループの選択] セクションで、作成した AD ドメインサービスアカウントを入力し、[名前を確認] を選択します。AD ドメインサービスアカウントのチェックが成功したら、[OK] を選択します。

  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 キーを使用しないでください。AWS KMS キーは、セルフマネージド AD に参加させる RDS for Db2 DB インスタンスを含んでいるのと同じ AWS アカウントに作成してください。

AWS KMS キーを作成するには
  1. https://console.aws.amazon.com/kms/ で AWS KMS コンソールを開きます。[Create key] (キーの作成) を選択します。

  2. [キーの種類] として、[対称] を選択します。

  3. [キーの使用方法] として、[暗号化と復号化] を選択します。

  4. [Advanced options (詳細オプション)] の場合:

    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. [Finish] を選択してください。

ステップ 5: AWS シークレットを作成する

注記

シークレットは、セルフマネージド AD に参加させる RDS for Db2 DB インスタンスを含んでいるのと同じ AWS アカウントに作成してください。

シークレットを作成する
  1. https://console.aws.amazon.com/secretsmanager/ から AWS Secrets Manager コンソールを開きます。新しいシークレットを保存 を選択します。

  2. [Secret type] (シークレットタイプ) で、[Other type of secret] (他の種類のシークレット) を選択します。

  3. [キーと値のペア] として、次の 2 つのキーを追加します。

    1. 最初のキーには、SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME と入力します。

    2. 最初のキーの値には、AD ユーザーのユーザー名 (ドメインプレフィックスなし) のみを入力します。ドメイン名を含めないでください。含めると、インスタンスの作成が失敗します。

    3. 2 番目のキーとして、SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD と入力します。

    4. 2 番目のキーの値には、ドメインの AD ユーザー用に作成したパスワードを入力します。

  4. [暗号化キー] で、前のステップで作成した KMS キーを入力し、[次へ] を選択します。

  5. [シークレット名] として、後でシークレットを見つけやすい、わかりやすい名前を入力します。

  6. (オプション) [説明] として、シークレット名の説明を入力します。

  7. リソース権限については、編集を選択します。

  8. 以下のポリシーをアクセス許可ポリシーに追加します。

    注記

    Confused Deputy Problem (混乱した代理の問題) を回避するために、ポリシーの aws:sourceAccount および aws: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 アドレスとセカンダリ 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"