メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Microsoft SQL Server DB インスタンスでの Windows 認証の使用

Microsoft SQL Server を実行する Amazon RDS DB インスタンスに接続するときは、Windows 認証を使用してユーザーを認証できます。DB インスタンスでは、Windows 認証を実行するために、Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service (Microsoft AD) が使用されます。ユーザーが、信頼性の高いドメインに接続された SQL Server DB インスタンスを使用して認証を実行すると、AWS Directory Service を使用して作成したドメインディレクトリに認証リクエストが転送されます。

Amazon RDS では、以下の AWS リージョンで Windows Authentication for SQL Server がサポートされています。

  • 米国東部(バージニア北部)

  • 米国西部 (オレゴン)

  • アジアパシフィック (シンガポール)

  • アジアパシフィック (シドニー)

  • アジアパシフィック (東京)

  • 欧州 (フランクフルト)

  • 欧州 (アイルランド)

Amazon RDS は Windows 認証にミックスモードを使用します。この方法では、マスターユーザー (SQL Server DB インスタンスの作成に使用された名前とパスワード) が SQL 認証を使用します。マスターユーザーアカウントは特権を持つ認証情報のため、このアカウントへのアクセスを制限する必要があります。

オンプレミスまたはセルフホスト型の Microsoft Active Directory を使用して Windows 認証を行うには、フォレストの信頼関係を確立する必要があります。AWS Directory Service を使用してフォレストの信頼関係を設定する方法について詳しくは、「信頼関係を作成する (Microsoft AD)」を参照してください。

SQL Server DB インスタンスの Windows 認証を設定するには、次の手順に従います (このセクションに詳しく記載しています)。

  1. Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service (Microsoft AD) を使用して、AWS コンソールまたは AWS Directory Service API のいずれかから Microsoft AD ディレクトリを作成します。

     

  2. SQL Server の DB インスタンスの作成に AWS CLI または Amazon RDS API を使用している場合、管理対象の IAM ポリシー AmazonRDSDirectoryServiceAccess を使用する IAM ロールを作成する必要があります。このロールにより Amazon RDS はディレクトリを呼び出すことができます。SQL Server DB インスタンスの作成に AWS コンソールを使用している場合、AWS は IAM ロールを作成します。

     

  3. Microsoft Active Directory のツールを使用して、Microsoft AD ディレクトリでユーザーとグループを作成し、構成します。Active Directory でユーザーとグループを作成する手順の詳細については、AWS Directory Service の資料で、ユーザーとグループを追加する (シンプルな AD と Microsoft AD) を参照してください。 ユーザーとグループを追加します (シンプルな AD および Microsoft AD)

     

  4. AWS コンソール、AWS CLI、Amazon RDS API を通じて Amazon RDS を使用し、SQL Server の新しい DB インスタンスを作成します。作成リクエストで、ディレクトリの作成時に生成されたドメイン識別子 (「d-*」識別子) と、作成したロールの名称を指定します。SQL Server DB インスタンスの domain パラメーターと IAM role パラメーターを設定して、ドメインディレクトリと同じ VPC にある DB インスタンスの場所を特定し、既存の SQL Server DB インスタンスを修正して Windows 認証を使用することもできます。

     

  5. Amazon RDS マスターユーザーの認証情報を使用して、他の DB インスタンスと同じように SQL Server DB インスタンスに接続します。DB インスタンスが Microsoft AD ドメインに結合されているため、ドメイン内の Active Directory ユーザーおよびグループから SQL Server ログインとユーザーをプロビジョニングできます (別名: SQL Server「Windows」ログイン)。データベースへのアクセス許可は、これらの Windows ログインに付与され無効化されている通常の SQL サーバーのアクセス許可によって管理されています。

     

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;

Windows Authentication for SQL Server DB インスタンスの設定

SQL Server DB インスタンスに Windows 認証をセットアップするために、Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service (Microsoft AD) を使用します。Windows 認証を設定するには、次の手順に従います。

ステップ 1: Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service を使用してディレクトリを作成する

AWS Directory Service は完全マネージド型の Microsoft Active Directory を AWS クラウドに作成します。Microsoft AD ディレクトリを作成すると、ユーザーに代わって AWS Directory Service が 2 つのドメインコントローラーと DNS サーバーを作成します。ディレクトリサーバーは、1 つの VPC の異なるサブネットに作成されます。この冗長性により、障害が発生してもディレクトリに確実にアクセスできます。

Microsoft AD ディレクトリを作成すると、ユーザーに代わって AWS Directory Service が次のタスクを実行します。

  • VPC 内に Microsoft Active Directory を設定します。

  • 「Admin」のユーザー名と指定されたパスワードを使用して、ディレクトリ管理者アカウントを作成します。このアカウントを使用してディレクトリを管理します。

    注記

    このパスワードは必ず保管してください。AWS Directory Service にはこのパスワードは保存されません。復元やリセットもできません。

  • ディレクトリコントローラー用セキュリティグループを作成します。

Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service を立ち上げると、AWS は組織単位 (OU) を作成します。OU にはディレクトリのオブジェクトがすべて含まれています。この OU はドメインルートにあります。OU にはディレクトリを作成する際に入力した NetBIOS 名があります。ドメインルートは AWS が所有し、管理します。

Microsoft AD ディレクトリに作成された管理者アカウントには、次のような、OU に対して頻繁に実行される管理行為の許可があります。

  • アップデートを作成する、またはユーザー、グループ、コンピュータを削除する

  • ファイルやプリントサーバーなどのドメインにリソースを追加して、追加したリソースへのアクセス許可を OU のユーザーとグループに割り当てる

  • 追加の OU やコンテナを作成する

  • 権限を委譲する

  • グループポリシーを作成し、リンクする

  • 削除されたオブジェクトを Active Directory のごみ箱から元に戻す

  • Active Directory Web Service で AD と DNS Windows PowerShell モジュールを実行する

管理者アカウントには、ドメイン全体に関係するアクティビティを実行する権限もあります。

  • DNS 設定 (追加、削除、レコードの更新、ゾーン、転送) を管理する

  • DNS イベントログを参照する

  • セキュリティイベントログを参照する

Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service でディレクトリを作成するには

  1. AWS Directory Service コンソールのナビゲーションペインで、[Directories] を選択して、[Set up Directory] を選びます。

  2. [Create Microsoft AD] を選択します。現在、Amazon RDS では Microsoft AD の使用のみがサポートされています。

  3. 以下の情報を記述します。

    Directory DNS

    ディレクトリの完全修飾名。例: corp.example.com。

    NetBIOS name

    ディレクトリの短縮名。例: CORP。

    Administrator password

    ディレクトリ管理者のパスワードです。ディレクトリの作成プロセスでは、ユーザー名「Admin」とこのパスワードを使用して管理者アカウントが作成されます。

    ディレクトリ管理者のパスワードには、「admin」の単語を含めることはできません。パスワードは大文字と小文字が区別され、8〜64 文字の長さにする必要があります。また、以下の 4 つのカテゴリうち 3 つから少なくとも 1 文字を含める必要があります。

    • 小文字 (a〜z)

    • 大文字 (A〜Z)

    • 番号 (0〜9)

    • アルファベット以外の文字 (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    [Confirm Password]

    管理者のパスワードをもう一度入力します。

    説明

    必要に応じて、ディレクトリの説明。

  4. [VPC Details] セクションに次の情報を入力して、[Next Step] を選択します。

    VPC

    ディレクトリ用の VPC。同じ VPC に SQL Server DB インスタンスを作成する必要があります。

    Subnets

    ディレクトリサーバーのサブネットを選択します。2 つのサブネットは、異なるアベイラビリティゾーンに存在している必要があります。

  5. ディレクトリ情報を確認し、必要な変更を加えます。情報が正しいことを確認して、[Create Microsoft AD] を選択します。

    [Directory details] ページのグラフィック

ディレクトリが作成されるまで、数分かかります。正常に作成されると、[Status] 値が [Active] に変わります。

ディレクトリに関する情報を表示するには、ディレクトリの一覧で、そのディレクトリを選択します。ディレクトリ ID を書き留めます。SQL Server DB インスタンスを作成または変更するときに、この値が必要になります。

 詳細ページのグラフィック

ステップ 2: Amazon RDS が使用できるように、IAM ロールを作成します。

AWS コンソールを使用して SQL Server DB インスタンスを作成する場合、この手順をスキップできます。SQL Server の DB インスタンスの作成に AWS CLI または Amazon RDS API を使用した場合、管理対象の 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 ライトウェイトディレクトリサービスツールの一部である「Active Directory ユーザーとコンピュータ」ツールを使用して、ユーザーとグループを作成できます。ユーザーは、ディレクトリにアクセスできる個別の人またはエンティティを表します。グループは、個別のユーザーごとに権限を付与するのではなく、ユーザーのグループに権限を付与または拒否するために非常に便利です。

AWS Directory Service のディレクトリでユーザーとグループを作成するには、AWS Directory Service ディレクトリのメンバーである Windows EC2 インスタンスに接続されていて、ユーザーとグループを作成する権限を持つユーザーとしてログインしている必要があります。詳細については、「ユーザーとグループを追加する (シンプルな AD と Microsoft AD)」を参照してください。

ステップ 4: SQL Server DB インスタンスを作成または変更する

次に、ディレクトリと使用できるよう Microsoft SQL Server DB インスタンスを作成または変更します。これには以下の 2 つの方法があります。

  • 新しい SQL Server DB インスタンスを作成する

  • 既存の SQL Server DB インスタンスを変更する

  • DB スナップショットから SQL Server DB インスタンスを復元する

  • ポイントインタイム復元から SQL Server DB インスタンスを復元する

VPC の SQL Server DB インスタンスでは Windows 認証のみがサポートされており、DB インスタンスはディレクトリと同じ VPC に存在する必要があります。

作成したドメインディレクトリを使用するには、DB インスタンスにパラメーターがいくつか必要です。

  • domain パラメーターには、ディレクトリの作成時に生成されたドメイン識別子 (「d-*」識別子) を入力する必要があります。

  • ディレクトリを作成したときに使用したものと同じ VPC を使用します。

  • DB インスタンスがディレクトリと通信できるように、VPC 内の出力を許可するセキュリティグループを使用します。

ステップ 5: Windows 認証の SQL Server ログインを作成する

Amazon RDS マスターユーザーの認証情報を使用して、他の DB インスタンスと同じように SQL Server DB インスタンスに接続します。DB インスタンスが Microsoft AD ドメインに結合されるため、ドメインの Active Directory のユーザーおよびグループから SQL Server のログインおよびユーザーをプロビジョニングできます。データベースへのアクセス許可は、これらの Windows ログインに付与され無効化されている通常の SQL サーバーのアクセス許可によって管理されています。

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 インスタンスのマスターユーザーとして接続します。Active Directory のユーザーまたはグループに SQL Server ログインを作成するには、次のデータ定義言語 (DDL) コマンドを実行します。

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

ユーザーやグループは、Windows 2000 以前のログイン名を「domainName\login_name」の形式で指定する必要があります。ユーザープリンシパル名 (UPN) を「login_name@DomainName」の形式で使用することはできません。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 インスタンスをドメインの中または外に移動する、ドメイン間で移動させるなどが含まれます。

たとえば、Amazon RDS API を使用して次を実行できます。

  • ModifyDBInstance API アクションを使用して、現在のメンバーシップのディレクトリ ID を指定し、失敗したメンバーシップのドメイン結合を再試行する。

  • ModifyDBInstance API アクションを使用して、現在のメンバーシップのディレクトリ ID および新しい IAM ロールを指定し、メンバーシップの IAM ロール名を更新する。

  • ModifyDBInstance API アクションを使用して、ドメインパラメーターに「none」を指定し、ドメインから DB インスタンスを削除する。

  • ModifyDBInstance API アクションを使用して、ドメインパラメーターに新しいドメインのドメイン識別子を指定し、あるドメインから別のドメインに DB インスタンスを移動する。

  • DescribeDBInstances API アクションを使用して、各 DB インスタンスのメンバーシップを一覧表示する。

ドメインのメンバーシップを理解する

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 インスタンスを追加します。

関連トピック