Azure SQL を含む Azure のデータベース基盤を管理している場合、今回確認すべきポイントは「Azure Database for PostgreSQL Flexible Server で Microsoft Entra ID 認証をどう有効化し、既存のID管理・ネットワーク・アプリ接続にどう影響するか」です。結論から言うと、これは Azure SQL Database そのものの設定変更ではなく、Azure Database for PostgreSQL Flexible Server 向けの Microsoft Entra ID 認証設定手順です。既存環境がただちに強制移行される内容ではありませんが、パスワード認証からトークンベース認証へ移行したい組織、MFAや条件付きアクセスを前提にデータベースアクセスを統制したい組織では、早めに設計を見直す価値があります。
特に注意したいのは、Microsoft Entra 管理者の設計、プライベートネットワーク環境での送信通信、DNS解決、グループ認証、アプリケーション側のトークン取得処理です。設定自体は Azure portal から始められますが、実務では「認証方式を変えたら接続ツールやバッチが動かなくなった」「VNet内から Microsoft Entra ID へ到達できず管理者追加に失敗した」「グループ名の大文字小文字やスペースでログインできない」といったつまずきが起きやすい領域です。
Azure SQL の変更ではなく、対象は Azure Database for PostgreSQL Flexible Server
まず整理しておきたいのは、今回の公式情報の対象サービスです。提示された Microsoft Learn のページは「Azure Database for PostgreSQL Flexible Server で Microsoft Entra ID を認証に使う方法」を説明するものであり、Azure SQL Database や Azure SQL Managed Instance の設定手順ではありません。Azure SQL という広い文脈でデータベース基盤を見ている管理者は、対象サービスを取り違えないことが重要です。(Microsoft Learn)
| 確認項目 | 内容 |
|---|---|
| 対象サービス | Azure Database for PostgreSQL Flexible Server |
| 主なテーマ | Microsoft Entra ID を使った PostgreSQL への認証 |
| Azure SQL Database への直接適用 | 不可。Azure SQL 系の Microsoft Entra 認証とは別に確認が必要 |
| 管理者が見るべき観点 | ID管理、認証方式、接続ツール、ネットワーク、ロール設計、アプリ改修 |
公式ページのタイトルや本文では、Azure Database for PostgreSQL Flexible Server インスタンスに対して Microsoft Entra ID アクセスを構成し、Microsoft Entra トークンを使って接続する方法が説明されています。なお、確認時点で該当ページの Last updated 表示は 2026年2月19日です。2026年6月25日付の更新情報として社内展開・更新一覧から参照している場合でも、実際に反映されている本文内容と更新日表示はあわせて確認しておくと安全です。(Microsoft Learn)
今回の更新ポイントは「認証の統制」を PostgreSQL に広げること
Microsoft Entra ID 認証を Azure Database for PostgreSQL に導入すると、データベース接続に使うIDを Microsoft Entra ID 側で一元管理しやすくなります。ユーザー、グループ、サービスプリンシパル、マネージドIDを管理者や接続主体として扱えるため、従来のローカル PostgreSQL ユーザーとパスワードだけに依存する運用から脱却しやすくなります。(Microsoft Learn)
実務上の価値は、単に「ログイン方法が増える」ことではありません。退職者や異動者のアクセス停止、MFAを前提にした接続、アプリケーションのマネージドID化、監査しやすい権限管理に近づける点が大きなメリットです。
| 更新・確認ポイント | 管理者が見るべき内容 |
|---|---|
| 認証方式の選択 | PostgreSQL 認証のみ、Microsoft Entra 認証のみ、両方の併用を要件に応じて選ぶ |
| Microsoft Entra 管理者 | ユーザー、グループ、サービスプリンシパル、マネージドIDを管理者にできる |
| 接続方式 | psql、PgAdmin、VS Code拡張、libpqベースのクライアントでトークンをパスワードとして利用 |
| ネットワーク要件 | Private access では AzureActiveDirectory サービスタグや DNS 解決を確認 |
| グループ認証 | グループロールを作成し、グループメンバーとして接続できる |
| 移行期限 | 公式ページで確認できる範囲では、強制移行期限は示されていない |
影響範囲:DBAだけでなくID管理・ネットワーク・アプリ担当も関係する
Microsoft Entra ID 認証はデータベースのログイン設定に見えますが、実際の影響範囲は広めです。DBAだけで完結させると、ネットワークやアプリケーション接続でつまずく可能性があります。
DBA・データベース管理者への影響
DBAは、Microsoft Entra 管理者を誰にするか、通常利用するロールをどう分離するかを決める必要があります。公式情報では、Microsoft Entra 管理者は Microsoft Entra ID ベースの認証用ユーザーを作成・有効化できる一方、CREATEDB などの昇格された権限を持つため、通常のデータベース操作には使わないよう注意されています。(Microsoft Learn)
実務では、個人ユーザーを直接管理者にするよりも、運用チーム用の Microsoft Entra グループを管理者にするほうが管理しやすくなります。担当者の異動や退職があっても、データベース側の管理者設定を毎回変更せず、Entra ID 側のグループメンバー変更で対応できるためです。
ID管理・セキュリティ担当への影響
ID管理チームは、Microsoft Entra ID 側のユーザー、グループ、サービスプリンシパル、マネージドIDの設計に関与します。特に本番環境では、個人アカウントではなくグループやマネージドIDを中心に設計したほうが、監査・棚卸し・権限削除を行いやすくなります。
また、Microsoft Entra ID のユーザーを削除しても、対応する PostgreSQL ロールは自動的に消えるわけではありません。削除された Microsoft Entra プリンシパルは新しいアクセストークンを取得できなくなりますが、データベース側のロールは残るため、所有権の移譲やロール削除を別途実施する必要があります。(Microsoft Learn)
ネットワーク担当への影響
Private access、VNet統合、カスタムDNSを使っている環境では、Microsoft Entra ID への送信通信と名前解決が重要です。公式情報では、Private access の場合に AzureActiveDirectory サービスタグへの送信NSG規則、ルートテーブル利用時の宛先 AzureActiveDirectory・次ホップ Internet のルート、プロキシ利用時の HTTPS 許可が挙げられています。また、カスタムDNSでは login.microsoftonline.com と graph.microsoft.com がパブリックに解決できないと、管理者割り当てやトークン取得が失敗します。(Microsoft Learn)
アプリケーション担当への影響
アプリケーション側では、固定パスワードで接続していた処理を、Microsoft Entra トークンを取得して接続する方式へ変える必要があります。人が psql で接続するだけなら Azure CLI でトークンを取得できますが、アプリケーションやバッチではトークンの有効期限、更新処理、マネージドIDやサービスプリンシパルの利用可否を設計する必要があります。
特に「Microsoft Entra 認証のみ」に切り替える場合、従来の PostgreSQL ユーザー名・パスワードだけで接続していた処理はそのままでは動かない可能性があります。先に検証環境で接続方式を確認し、接続文字列、認証ライブラリ、シークレット管理、リトライ処理を見直してください。
認証方式は3パターンから選ぶ
Azure Database for PostgreSQL Flexible Server では、認証方式として「PostgreSQL 認証のみ」「Microsoft Entra 認証のみ」「PostgreSQL と Microsoft Entra 認証の併用」を選べます。公式FAQでも、この3つの認証モードが説明されています。(Microsoft Learn)
| 認証方式 | 向いているケース | 注意点 |
|---|---|---|
| PostgreSQL 認証のみ | 既存アプリがローカルユーザー・パスワード接続に強く依存している場合 | IDの集中管理やMFAとの連携は弱くなる |
| PostgreSQL + Microsoft Entra 認証 | 段階移行、検証期間、本番切替前の併用 | 2種類の認証経路が残るため、棚卸しと監査が必要 |
| Microsoft Entra 認証のみ | パスワード依存を減らし、ID統制を強化したい場合 | 既存ツール、バッチ、アプリの接続方式を事前検証する必要がある |
最初から Microsoft Entra 認証のみにするのが理想的に見えるケースもありますが、既存環境では一気に切り替えないほうが安全です。まず併用モードで接続テストを行い、アプリケーション、運用ツール、監視ジョブ、バックアップ関連処理が問題なく動くことを確認してから、パスワード認証を無効化する流れが現実的です。
設定手順:新規作成時と既存サーバーで流れが少し違う
Microsoft Entra ID 認証は、サーバーのプロビジョニング中にも、サーバー作成後にも構成できます。新規構築では最初から認証方式を設計できる一方、既存環境では接続影響を見ながら段階的に進める必要があります。(Microsoft Learn)
新規サーバー作成時に設定する場合
新規に Azure Database for PostgreSQL Flexible Server を作成する場合は、Azure portal のプロビジョニング中に認証方式を選びます。選択肢としては「PostgreSQL と Microsoft Entra 認証」または「Microsoft Entra 認証のみ」を選び、管理者設定タブで Microsoft Entra ユーザー、グループ、サービスプリンシパル、マネージドIDを管理者として指定します。(Microsoft Learn)
このとき、プロビジョニング中に追加できる Microsoft Entra 管理者は1つだけです。複数の Microsoft Entra 管理者を追加したい場合は、サーバー作成後に追加します。(Microsoft Learn)
実務では、次のような設計が扱いやすいです。
| 用途 | 推奨される設計例 |
|---|---|
| 本番DBの管理者 | 個人ではなく、DBAチーム用の Microsoft Entra グループ |
| アプリ接続 | マネージドIDまたはサービスプリンシパル |
| 緊急時対応 | 運用ルールを定めたブレークグラス用アカウント |
| 開発・検証 | 開発者個人ではなく、開発チーム用グループ |
既存サーバーに後から設定する場合
既存の Flexible Server に設定する場合は、Azure portal で対象インスタンスを開き、セキュリティの「認証」から認証方式を変更します。その後、「Add Microsoft Entra Admins」から有効な Microsoft Entra ユーザー、グループ、サービスプリンシパル、マネージドIDを選択し、保存します。(Microsoft Learn)
注意点は、Microsoft Entra 管理者を設定すると、完全な管理者権限を持つ新しいユーザーを PostgreSQL Flexible Server インスタンスに追加することになる点です。個人アカウントを安易に追加するのではなく、権限の棚卸し、承認フロー、監査ログの確認手順まで含めて設計してください。(Microsoft Learn)
psql での接続確認はトークンをパスワードとして使う
Microsoft Entra ID 認証では、認証後に取得したアクセストークンを PostgreSQL のパスワードとして使います。psql は Microsoft Entra ID を直接理解するツールではないため、アクセストークンを PGPASSWORD 環境変数に渡す形で接続します。公式情報でも、psql、PgAdmin、VS Code拡張、libpqベースのクライアントが例として示されています。(Microsoft Learn)
基本的な流れは次のとおりです。
az login
export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)
psql "host=<server-name>.postgres.database.azure.com user=<[email protected]> dbname=<database-name> sslmode=require"
Windows PowerShell では、次のように環境変数へトークンを入れてから接続します。
$env:PGPASSWORD = az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv
ここで大切なのは、アクセストークンを長期保存しないことです。公式情報では、接続時のアクセストークンは5〜60分有効で、接続直前に取得するよう説明されています。グループメンバーとして接続する場合も、同じくトークンをスクリプトに保存しないことが重要です。(Microsoft Learn)
PgAdmin を使う場合は「今すぐ接続」を外してから登録する
PgAdmin でも Microsoft Entra トークンを使って接続できます。ただし、サーバー登録時の操作に注意が必要です。公式手順では、PgAdmin の「Register > Server」から登録し、General タブで接続名を入力したうえで「Connect now」をオフにします。その後、Connection タブでホスト情報を入力し、Username に Microsoft Entra UPN を設定して保存します。接続時にパスワードを求められたら、アクセストークンを貼り付けます。(Microsoft Learn)
PgAdmin で失敗しやすいのは、通常のパスワード入力の感覚で古いトークンやローカル PostgreSQL パスワードを入れてしまうケースです。Microsoft Entra 認証で接続する場合、パスワード欄に入れるのは「現在有効なアクセストークン」です。接続テストの前に必ず新しいトークンを取得してください。
グループ認証を使うと権限管理が楽になる
本番環境では、個人ユーザー単位で PostgreSQL ロールを作るよりも、Microsoft Entra グループと PostgreSQL ロールを対応させるほうが管理しやすくなります。公式情報では、グループメンバーとして接続するには、グループのメンバーであり、そのグループがデータベース上に作成・マップされている必要があると説明されています。(Microsoft Learn)
グループプリンシパルを作成する例は次のとおりです。
select * from pgaadauth_create_principal('Prod DB Readonly', false, false);
グループ同期を有効にする場合は、pgaadauth.enable_group_sync パラメーターを ON にします。公式情報では、グループは30分ごとに自動同期され、手動同期も可能とされています。一方で、同期されるのはグループメンバーシップの変更であり、グループ名などのメタデータ変更は同期されません。(Microsoft Learn)
そのため、グループ名は後から頻繁に変えない前提で設計するのが安全です。たとえば、Prod DB Readonly のような表示名をデータベースロールに使う場合、名前の大文字小文字やスペースも接続時の指定に影響します。
ロール管理は SQL でも行える
Microsoft Entra 認証を有効化した後は、Azure Database for PostgreSQL 内で Microsoft Entra ID 対応のデータベースロールを作成・管理できます。公式情報では、pgaadauth_list_principals、pgaadauth_create_principal、pgaadauth_create_principal_with_oid などの関数が説明されています。(Microsoft Learn)
代表的な確認コマンドは次のとおりです。
select * from pg_catalog.pgaadauth_list_principals(false);
Microsoft Entra プリンシパル名を使ってロールを作成する場合は、次の形式を使います。
select * from pg_catalog.pgaadauth_create_principal('<roleName>', false, false);
既存の PostgreSQL ロールに Microsoft Entra 認証を紐づけたい場合は、セキュリティラベルを使って Microsoft Entra オブジェクトIDとマッピングできます。(Microsoft Learn)
SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';
ここで重要なのは、表示名だけでなく objectId を使った設計も検討することです。Microsoft Entra ID では、同じ名前のユーザーを削除して再作成しても、内部的には別のユーザーとして扱われます。Azure Database for PostgreSQL はユーザー名ではなく一意の Microsoft Entra ユーザーIDを使ってトークンとデータベースロールを照合するため、同名ユーザーの再作成で既存ロールに接続できないことがあります。(Microsoft Learn)
Microsoft Entra 認証を有効化するとサーバー再起動が発生する点に注意
公式FAQでは、サーバーレベルで Microsoft Entra 認証を有効にすると、PGAadAuth 拡張機能が有効になり、サーバーが再起動すると説明されています。(Microsoft Learn)
これは本番運用で見落としやすいポイントです。認証設定の変更だからといって、業務時間中に気軽に有効化すると、アプリケーションの接続断や一時的なエラーにつながる可能性があります。既存本番サーバーでは、以下を事前に決めてから実施してください。
| 確認項目 | 実施内容 |
|---|---|
| メンテナンス時間 | 業務影響の少ない時間帯を確保 |
| 接続元の棚卸し | アプリ、バッチ、BIツール、監視ジョブを洗い出す |
| ロールバック方針 | 認証方式、管理者、接続文字列の戻し方を確認 |
| 事前検証 | 検証環境で psql、PgAdmin、アプリ接続を確認 |
| 監視 | 切替直後の接続失敗、認証エラー、アプリログを確認 |
MFA設定の誤解:isMfa は MFA フローを起動するものではない
ロール作成時の isMfa フラグにも注意が必要です。公式情報では、isMfa フラグは Microsoft Entra ID トークン内の mfa 要求をテストするものであり、トークン取得フローそのものには影響しないと説明されています。つまり、これを true にしたからといって、データベース側が自動的にMFA登録やMFA要求を開始するわけではありません。(Microsoft Learn)
MFAを確実に求めたい場合は、Microsoft Entra ID 側の条件付きアクセス、認証強度、対象ユーザー・対象アプリの設計とセットで考える必要があります。データベース側の isMfa は「MFA済みのトークンかどうかを見る仕組み」と理解したほうが安全です。
移行期限は示されていないが、社内期限は決めるべき
今回の公式情報から確認できる範囲では、Azure Database for PostgreSQL Flexible Server の PostgreSQL 認証が特定日で廃止される、または Microsoft Entra 認証へ強制移行される、という移行期限は示されていません。認証方式としても、PostgreSQL 認証のみ、Microsoft Entra 認証のみ、両方の併用が選択肢として説明されています。(Microsoft Learn)
ただし、期限がないから後回しでよい、という話ではありません。特に以下に該当する環境では、社内期限を設けて段階的に移行したほうがよいでしょう。
| 優先度 | 対象環境 | 推奨アクション |
|---|---|---|
| 高 | 本番DB、個人パスワード共有、退職者棚卸しが不十分な環境 | Microsoft Entra グループ管理と接続ログ確認を優先 |
| 中 | 開発・検証DB、手動接続が多い環境 | psql・PgAdminでトークン接続を標準化 |
| 中 | アプリが固定パスワードで接続している環境 | マネージドIDまたはサービスプリンシパル利用を検証 |
| 低 | 一時的な検証環境 | 次回作成時から Microsoft Entra 認証を標準にする |
現実的には、いきなり全サーバーを Microsoft Entra 認証のみにするのではなく、まず新規構築の標準を変え、次に既存環境を重要度順に移行する進め方が安全です。
管理者が確認すべきチェックリスト
設定作業に入る前に、次のチェックリストを使って影響範囲を整理してください。
| チェック項目 | 確認すること | 見落とした場合のリスク |
|---|---|---|
| 対象サービス | Azure SQL ではなく PostgreSQL Flexible Server か | 誤った手順を適用して作業が止まる |
| 認証方式 | PostgreSQLのみ、併用、Entraのみのどれにするか | 既存アプリや運用ツールが接続不能になる |
| Microsoft Entra 管理者 | 個人ではなくグループで管理できるか | 異動・退職時の権限削除漏れ |
| ネットワーク | AzureActiveDirectory への送信通信が可能か | 管理者追加やトークン取得に失敗 |
| DNS | login.microsoftonline.com と graph.microsoft.com が解決できるか | 認証処理や Microsoft Graph API 呼び出しに失敗 |
| クライアント | psql、PgAdmin、VS Code、アプリで接続確認したか | 本番切替後に運用作業ができない |
| グループ同期 | pgaadauth.enable_group_sync の設定を確認したか | グループメンバー変更が反映されない |
| ロール管理 | UPN、表示名、objectId の使い分けを決めたか | 同名再作成や名前変更で接続トラブルが起きる |
| トークン管理 | トークンをスクリプトに保存していないか | 短期トークンの期限切れや漏えいリスク |
| 再起動影響 | 有効化時のサーバー再起動を考慮したか | 業務時間中の接続断 |
グローバル環境ではクラウド種別とテナント設計も確認する
グローバル企業では、Azure Public Cloud だけでなく、国・地域や業界要件に応じて異なるクラウド環境を利用している場合があります。公式手順では、パブリッククラウドのリソース値として https://ossrdbms-aad.database.windows.net が示されていますが、Azure CLI 2.0.71 以降では --resource-type oss-rdbms を使えると説明されています。(Microsoft Learn)
そのため、グローバル展開では次の方針が実務的です。
| 観点 | 推奨方針 |
|---|---|
| Azure CLIのトークン取得 | 可能なら --resource-type oss-rdbms を標準化 |
| 複数クラウド | 必要に応じて az cloud show でリソース値を確認 |
| 複数テナント | 管理者・グループ・アプリの所属テナントを明確化 |
| 命名規則 | グループ表示名の大文字小文字、スペース、重複を避ける |
| 監査 | 個人アカウントよりグループ・マネージドID中心で設計 |
特に海外拠点が独自テナントを持っている場合、どのテナントの Microsoft Entra プリンシパルを PostgreSQL ロールに対応させるのかを明確にしておく必要があります。運用開始後にテナントやグループ名を整理しようとすると、接続設定、ロール、監査手順の修正範囲が広がります。
よくある失敗と対策
Azure SQL の手順だと思って読んでしまう
今回の対象は Azure Database for PostgreSQL Flexible Server です。Azure SQL Database、Azure SQL Managed Instance、SQL Server on Azure VM の Microsoft Entra 認証とは手順や前提が異なります。Azure SQL 管理者が読む場合は、「Azureデータベース基盤全体のID統制」という観点で参考にしつつ、直接適用しないようにしてください。
Microsoft Entra 管理者を日常作業に使ってしまう
Microsoft Entra 管理者は強い権限を持ちます。公式情報でも、通常のデータベース操作に Microsoft Entra 管理者を使わないよう注意されています。(Microsoft Learn)
対策として、管理者ロール、読み取り専用ロール、アプリ用ロール、運用作業用ロールを分けてください。本番環境では、管理者権限を持つアカウントでアプリケーション接続を行わないことが基本です。
Private access 環境で Microsoft Entra ID に到達できない
プライベートネットワークに閉じた環境では、データベース自体に到達できても、Microsoft Entra ID や Microsoft Graph に必要な通信が通らないことがあります。AzureActiveDirectory サービスタグへの送信許可、ルートテーブル、プロキシ、カスタムDNSを事前に確認してください。(Microsoft Learn)
グループ名の大文字小文字やスペースで失敗する
Microsoft Entra ユーザー名やグループ名は大文字小文字が区別されます。名前にスペースがある場合は、必要に応じてエスケープも必要です。公式情報でも、グループメンバーとして接続する場合は、グループ表示名と完全一致させ、メンバーのエイリアスではなくグループ名を使うよう説明されています。(Microsoft Learn)
アクセストークンをパスワードのように保存してしまう
アクセストークンは接続直前に取得するものです。スクリプトや設定ファイルに保存すると、期限切れによる失敗や漏えいリスクが生じます。アプリケーションでは、実行時にトークンを取得・更新する設計にしてください。
まず実施すべきアクション
Azure SQL を含むデータベース基盤を管理しているチームは、今回の内容を「PostgreSQL Flexible Server の認証統制を見直すきっかけ」として扱うのがよいでしょう。すぐに本番設定を変えるのではなく、次の順序で進めると安全です。
- 対象が Azure Database for PostgreSQL Flexible Server であることを確認する
- 現在の認証方式と接続元を棚卸しする
- 検証環境で Microsoft Entra 管理者をグループとして追加する
- Private access、NSG、ルート、DNS、プロキシを確認する
- psql と PgAdmin でトークン接続を試す
- アプリケーション接続をマネージドIDまたはサービスプリンシパルで検証する
- 本番環境ではメンテナンス時間を確保して段階的に切り替える
今回のポイントは、単なる認証設定の追加ではありません。ローカルDBユーザーとパスワードに依存した運用から、Microsoft Entra ID を中心にしたID統制へ移行するための設計変更です。移行期限が明示されていないとしても、新規構築では Microsoft Entra 認証を標準候補にし、既存環境では重要度の高いサーバーから検証を始めるのが現実的です。

コメント