RDS for SQL Server による AWS Managed Active Directory の操作
ユーザーが RDS for SQL Server DB インスタンスに接続する際、AWS Managed Microsoft AD を使用して Windows 認証でユーザーを認証できます。DB インスタンスは、Windows 認証を有効にするために AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD とも呼ばれます) を使用します。ユーザーが、信頼性の高いドメインに接続された SQL Server DB インスタンスを使用して認証を実行すると、AWS Directory Service を使用して作成したドメインディレクトリに認証リクエストが転送されます。
リージョンとバージョンの可用性
Amazon RDS では、Windows Authentication 向けに AWS Managed Microsoft AD のみの使用をサポートしています。RDS は AD Connector の使用をサポートしていません。詳細については次を参照してください:
バージョンおよびリージョンの可用性の詳細については、「RDS for SQL Server を使用したKerberos 認証」を参照してください。
Windows 認証のセットアップの概要
Amazon RDS は Windows 認証にミックスモードを使用します。この方法では、マスターユーザー (SQL Server DB インスタンスの作成に使用された名前とパスワード) が SQL 認証を使用します。マスターユーザーアカウントは特権を持つ認証情報のため、このアカウントへのアクセスを制限する必要があります。
オンプレミスまたはセルフホスト型の Microsoft Active Directory を使用して Windows 認証を取得するには、フォレストの信頼関係を確立します。信頼は、一方向または双方向にすることができます。AWS Directory Service を使用してフォレストの信頼関係を設定する方法の詳細については、AWS Directory Service 管理ガイドの「信頼関係を作成する場合」を参照してください。
SQL Server DB インスタンスの Windows 認証を設定するには、次のステップに従います。詳細については、「SQL Server DB インスタンスの Windows 認証のセットアップ」を参照してください。
-
AWS Managed Microsoft AD または AWS Management Console API のいずれかから AWS Directory Service を使用して、AWS Managed Microsoft AD ディレクトリを作成します。
-
AWS CLI または Amazon RDS API を使用してSQL Server DB インスタンスを作成する場合は、AWS Identity and Access Management (IAM) ロールを作成します。このロールはマネージド IAM ポリシー
AmazonRDSDirectoryServiceAccess
を使用し、Amazon RDS によるディレクトリへの呼び出しを許可します。SQL Server DB インスタンスの作成にコンソールを使用している場合、AWS は IAM ロールを作成します。ロールによるアクセスを許可するには、AWS Security Token Service (AWS STS) エンドポイントを AWS アカウントの AWS リージョンでアクティベートする必要があります。AWS STS エンドポイントはすべての AWS リージョンでデフォルトでアクティブになっているため、他のアクションを実行することなくエンドポイントを使用することができます。詳細については、IAM ユーザーガイドの 「AWS リージョン での AWS STS の管理」を参照してください。
-
Microsoft Active Directory のツールを使用して、AWS Managed Microsoft AD ディレクトリでユーザーとグループを作成して設定します。Active Directory にユーザーおよびグループを作成する方法の詳細については、AWS Directory Service 管理ガイドの「AWS Managed Microsoft AD でユーザーとグループを管理する」を参照してください。
-
ディレクトリと DB インスタンスを異なる VPC に配置する場合は、クロス VPC トラフィックを有効にします。
-
Amazon RDS を使用して、コンソール、AWS CLI、または Amazon RDS API のいずれかから、新しい SQL Server DB インスタンスを作成します。作成リクエストで、ディレクトリの作成時に生成されたドメイン識別子 (「
d-*
」識別子) と、作成したロールの名称を指定します。DB インスタンスのドメインおよび IAM ロールパラメータを設定して、既存の SQL Server DB インスタンスを Windows 認証を使用するように変更することもできます。 -
Amazon RDS マスターユーザーの認証情報を使用して、他の DB インスタンスと同じように SQL Server DB インスタンスに接続します。DB インスタンスは AWS Managed Microsoft AD ドメインに参加しているため、ドメイン内の Active Directory ユーザーとグループから SQL Server のログインとユーザーをプロビジョニングできます (これらは、SQL Server の「Windows」ログインとして知られています)。データベースへのアクセス許可は、これらの Windows ログインに付与され無効化されている標準の SQL サーバーのアクセス許可によって管理されています。
Amazon RDS コンソールを使用してドメイン接続された RDS for SQL Server DB インスタンスを作成すると、AWS は自動的に rds-directoryservice-access-role
IAM ロールを作成します。このロールは、ドメイン接続されたインスタンスを管理するために不可欠であり、以下の操作に必要です。
-
ドメイン接続された SQL Server インスタンスの設定変更
-
Active Directory 統合設定の管理
-
ドメイン結合インスタンスでのメンテナンス操作の実行
重要
rds-directoryservice-access-role
IAM ロールを削除すると、Amazon RDS コンソールまたは API を使用してドメイン接続された SQL Server インスタンスを変更することはできません。インスタンスを変更しようとすると、次のエラーメッセージが表示されます。You don't have permission to iam:CreateRole. To request access, copy the following text and send it to your AWS administrator.
このエラーは、Amazon RDS がドメイン接続を管理するためにロールを再作成する必要があるが、必要なアクセス許可がないために発生します。さらに、このエラーは CloudTrail に記録されないため、トラブルシューティングがより困難になる可能性があります。
誤って rds-directoryservice-access-role
を削除した場合、ドメインに接続された SQL Server インスタンスに変更を加える前に、再作成するための iam:CreateRole
アクセス許可が必要です。ロールを手動で再作成するには、ロールに AmazonRDSDirectoryServiceAccess
管理ポリシーがアタッチされ、RDS サービスがロールを引き受けることを許可する適切な信頼関係があることを確認します。
SQL Server DB インスタンスを復元してドメインに追加する
SQL Server DB インスタンスの DB スナップショットまたはポイントインタイムリカバリ (PITR) を復元し、ドメインに追加できます。DB インスタンスが復元されたら、「ステップ 5: SQL Server DB インスタンスを作成または変更する」で説明している手順に従ってインスタンスを変更し、DB インスタンスをドメインに追加します。