Cloud SQL におけるマネージド Microsoft AD の概要

Cloud SQL for SQL Server は、Managed Service for Microsoft Active Directory(別名マネージド Microsoft AD)と統合できます。このページには、統合を開始する前に確認すべき情報が記載されています。以下の情報(制限事項を含む)を確認後、マネージド 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]

このコマンドは、次の形式でサービス アカウント名を返します。
service-[PROJECT_NUMBER]@gcp-sa-cloud-sql.iam.gserviceaccount.com

サービス アカウント名の例を次に示します。
service-333445@gcp-sa-cloud-sql.iam.gserviceaccount.com

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

統合に必要な権限を付与するには、次のコマンドを実行します。

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

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

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

ドメインを計画するときは、ベスト プラクティスをご覧ください。たとえば、リージョンの追加と削除については、マネージド Microsoft AD のドキュメントをご覧ください。

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

制限事項と代替案

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

  • ドメインのローカル グループはサポートされていませんが、SQL Server 内でグローバル グループまたは個別のユーザーのログインを直接追加できます。または、すべてのグループとユーザーが同じフォレストに属する場合は、ユニバーサル グループを使用できます。
  • 制限されたオペレーションによっては、「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 から管理できません。
  • マネージド Microsoft AD ドメインと対応する SQL Server インスタンスは、同じ Google Cloud プロジェクト内に配置する必要があります。
  • バックアップからインスタンスを復元すると、以前に接続されていたインスタンスがマネージド Microsoft AD ドメインから接続解除されます。
  • Cloud SQL では、SQL Server インスタンスが 2021 年 3 月 12 日以前に作成された場合、このインスタンスは Managed Microsoft AD と統合できません。
  • Windows 認証は外部の信頼では機能しない場合があります。次のようなエラーが表示されます。「ターゲット プリンシパル名が正しくありません。SSPI コンテキストを生成できません。」また、Microsoft の推奨事項に関連して、Kerberos 認証には外部信頼ではなくフォレストの信頼を使用してください。
  • Windows 認証は、abcd.com のように、合計長が 8 文字未満のドメイン名では機能しない可能性があります。

統合の対象外

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

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

次のステップ