Cloud SQL における Managed Microsoft AD の概要

Cloud SQL for SQL Server は、Managed Service for Microsoft Active Directory(別名 Managed Microsoft AD)と統合できます。

このページには、統合を開始する前に確認すべき情報が記載されています。以下の情報(制限事項を含む)を確認後、Managed Microsoft AD での Cloud SQL の使用をご覧ください。

マネージド Microsoft AD との統合のメリット

認証、認可などは、マネージド Microsoft AD を介して行うことができます。たとえば、インスタンスをマネージド Microsoft AD ドメインに結合させると、AD ベースの ID で Windows 認証を使用してログインできるようになります。

Cloud SQL for SQL Server を AD ドメインと統合すると、Cloud をオンプレミスの AD ドメインと統合できるという利点もあります。

統合の前提条件

インスタンスに Windows 認証のサポートを追加して、マネージド Microsoft AD と統合できます。ただし、統合を行う前に、Google Cloud プロジェクトで次の対象が必要です。

サービス アカウントを作成して構成する

マネージド Microsoft AD と統合する予定の各プロジェクトに、プロダクトごと、プロジェクトごとのサービス アカウントが必要です。gcloud または Console を使用して、プロジェクト レベルでアカウントを作成します。プロダクトごと、プロジェクトごとのサービス アカウントには、プロジェクトに対する managedidentities.sqlintegrator ロールを付与する必要があります。詳細については、gcloud projects set-iam-policy をご覧ください。

Google Cloud Console を使用している場合、Cloud SQL によって自動的にサービス アカウントが作成され、managedidentities.sqlintegrator のロールを付与するように求められます。

gcloud でサービス アカウントを作成するには、次のコマンドを実行します。

gcloud beta services identity create --service=sqladmin.googleapis.com \
    --project=PROJECT_NUMBER

このコマンドは、次の形式でサービス アカウント名を返します。

    service-PROJECT_NUMBER@gcp-sa-cloud-sql.iam.gserviceaccount.com

サービス アカウント名の例を次に示します。

    service-333445@gcp-sa-cloud-sql.iam.gserviceaccount.com

統合に必要な権限を付与するには、既存の権限が必要です。必要な権限については、必要な権限をご覧ください。

統合に必要な権限を付与するには、次のコマンドを実行します。マネージド Microsoft AD が別のプロジェクトにある場合、AD_PROJECT_ID は Managed Service for Microsoft Active Directory インスタンスを含むプロジェクトである必要があります。一方、サービス アカウントの SQL_PROJECT_NUMBER は SQL Server インスタンスを含むプロジェクトである必要があります。

gcloud projects add-iam-policy-binding AD_PROJECT_ID \
--member=serviceAccount:service-SQL_PROJECT_NUMBER@gcp-sa-cloud-sql.iam.gserviceaccount.com \
--role=roles/managedidentities.sqlintegrator

gcloud beta services identity create もご覧ください。

マネージド Microsoft AD との統合に関するベスト プラクティス

統合を計画する場合は、次の点を確認してください。

SQL Server インスタンスとマネージド AD インスタンスを同じリージョンに配置すると、ネットワーク レイテンシを最小限に抑え、最適なパフォーマンスを実現できます。したがって、可能な場合には、同じリージョンに SQL Server インスタンスと AD インスタンスを設定します。さらに、それらのインスタンスを同じリージョンに設定するかどうかを問わず、プライマリ リージョンとバックアップ リージョンを設定して高可用性を確保します。

Managed Microsoft AD と統合するためのトポロジ

Cloud SQL for SQL Server は、ドメイン ローカル グループをサポートしていません。ただし、次のように設定を変更できます。

  • グローバル グループまたは個々のユーザーのログインを SQL Server に直接追加する
  • すべてのグループとユーザーが同じフォレストに属している場合は、ユニバーサル グループを使用する

ドメインのローカル グループがサポートされている場合、個々のユーザー グループ、グローバル グループとユニバーサル グループは、ドメインのローカル グループの子として追加できます(SQL Server へのアクセスは保護されます)。これにより、ドメイン ローカル グループを SQL Server のログインとして追加できます。このセクションで説明するように、Cloud SQL for SQL Server で同様の機能を有効にできます。

オプション 1: SQL Server へのログインとしてユーザー アカウントとグループを追加する

複数のフォレストに複数のドメインがあり、複数のグローバル グループが存在している場合、個々のユーザー アカウント、グローバル グループ、ユニバーサル グループすべてを SQL Server へのログインとして直接追加できます。次の図にオプション 1 の例を示します。

AD トポロジ、オプション 1。

オプション 2: いずれかのドメインでユニバーサル グループを定義する

ドメインが同じフォレストにある場合は、いずれかのドメインにユニバーサル グループを定義できます。次に、個々のユーザー アカウント、グローバル グループとユニバーサル グループを定義済みのユニバーサル グループの子として追加し、定義済みのユニバーサル グループを SQL Server ログインとして追加します。次の図にオプション 2 の例を示します。

AD トポロジ、オプション 2。

制限事項と代替案

マネージド Microsoft AD と統合する場合は、次の制限が適用されます。

  • ドメインのローカル グループはサポートされていませんが、SQL Server 内でグローバル グループまたは個別のユーザーのログインを直接追加できます。または、すべてのグループとユーザーが同じフォレストに属する場合は、ユニバーサル グループを使用できます。
  • 一般に、Google Cloud Console で作成した新しいユーザーには CustomerDbRootRole ロールが割り当てられます。このロールには、次の SQL Server エージェントの固定データベース ロールが含まれます(SQLAgentUserRole)。ただし、マネージド Microsoft AD ユーザーなど、SQL Server で直接作成されたユーザーは、このロールを付与する必要がある MSDB データベースが保護されているため、このロールを付与したり、SQL Server Agent を使用したりすることはできません。
  • 制限されたオペレーションによっては、「Windows NT フループ / ユーザーに関する情報を取得できませんでした」というエラーが発生する可能性があります。このタイプの制限付きオペレーションの一例として、信頼関係を介して接続されたドメインからのユーザーのログインを作成するというものがあります。別の例としては、信頼関係を介して接続されたドメインのユーザーに権限を付与するというものです。このようなケースでは、多くの場合、オペレーションの再試行は成功します。再試行に失敗した場合は、接続を閉じてから新しい接続を開きます。
  • 完全修飾ドメイン名(FQDN)は、Windows の SQL Server ではサポートされていません。そのため、SQL Server ログインを作成するときは、FQDN ではなくドメイン名(略称)を使用します。たとえば、ドメイン名が ad.mydomain.com の場合、ad.mydomain.com\user ではなく ad\user の SQL Server ログインを作成します。
  • SQL Server インスタンスにアクセスするには、常に FQDN を使用します。たとえば、private.myinstance.us-central1.myproject.cloudsql.mydomain.com のような FQDN を使用できます。NetBIOS 名はサポートされいません。また、DNS サフィックスを省略した場合は略称も使用できません。
  • Active Directory ユーザーとグループに基づく SQL Server ログインは、Google Cloud Console から管理できません。
  • Cloud SQL では、SQL Server インスタンスが 2021 年 3 月 12 日以前に作成された場合、このインスタンスは、Managed Microsoft AD と統合できません。
  • Windows 認証は外部の信頼では機能しません。次のようなエラーが表示されます。「ターゲット プリンシパル名が正しくありません。SSPI コンテキストを生成できません。」また、Microsoft の推奨事項に関連して、Kerberos 認証には外部信頼ではなくフォレストの信頼を使用してください。

統合の対象外

マネージド Microsoft AD と統合する場合、次の機能はサポートされていません。

  • ドメイン ローカル グループ
  • 信頼関係を介して接続されたドメインから、ユーザーが SQL Server ログインを削除する。このおオペレーションは、マネージド ドメインのユーザーまたは sqlserver ログインにより実行できます。
  • NTLM 認証。
  • 信頼関係を介して接続されたドメインの IP アドレスを使用してログインする。
  • 長い名前(63 文字を超える)を持つインスタンス。

次のステップ