Azure Database for PostgreSQL - フレキシブル サーバーでの Microsoft Entra 認証
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使って Azure Database for PostgreSQL フレキシブル サーバーに接続するためのメカニズムです。 Microsoft Entra 認証を使用すると、データベース ユーザーの ID や他の Microsoft サービスを一元管理でき、アクセス許可の管理が容易になります。
Microsoft Entra ID を使うと次のようなベネフィットがあります。
- Azure サービス全体でのユーザー認証の一元化。
- パスワード ポリシーとパスワード ローテーションの一元管理。
- 複数形式の認証サポートによってパスワードの保存が不要。
- 外部 (Microsoft Entra ID) グループを使ってデータベースのアクセス許可を顧客が管理する機能。
- PostgreSQL データベース ロールを使ったデータベース レベルでの ID の認証。
- Azure Database for PostgreSQL フレキシブル サーバーに接続するアプリケーションに対するトークンベースの認証のサポート。
デプロイ オプション間での Microsoft Entra ID の機能の比較
Azure Database for PostgreSQL フレキシブル サーバー用の Microsoft Entra 認証には、Azure Database for PostgreSQL 単一サーバーから収集されたエクスペリエンスとフィードバックが組み込まれています。
次の表に、Azure Database for PostgreSQL 単一サーバーと Azure Database for PostgreSQL フレキシブル サーバーの Microsoft Entra 機能を大まかに比較した一覧を示します。
機能 | Azure Database for PostgreSQL - 単一サーバー | Azure Database for PostgreSQL フレキシブル サーバー |
---|---|---|
複数の Microsoft Entra 管理者 | いいえ | はい |
マネージド ID (システムおよびユーザー割り当て) | Partial | [完全] |
招待されたユーザーのサポート | いいえ | はい |
パスワード認証を無効にする機能 | 使用不可 | 利用可能 |
サービス プリンシパルがグループ メンバーとして振る舞う機能 | いいえ | はい |
Microsoft Entra サインインの監査 | いいえ | はい |
PgBouncer のサポート | いいえ | はい |
Azure Database for PostgreSQL フレキシブル サーバーでの Microsoft Entra ID のしくみ
次の概要図は、Azure Database for PostgreSQL フレキシブル サーバーで Microsoft Entra 認証を使った場合の認証のしくみをまとめたものです。 矢印は通信経路を示します。
Azure Database for PostgreSQL フレキシブル サーバーで Microsoft Entra ID を構成するには、Azure Database for PostgreSQL - フレキシブル サーバー向けの Microsoft Entra ID の構成とサインインに関する説明を参照してください。
PostgreSQL 管理者と Microsoft Entra 管理者の違い
フレキシブル サーバーの Microsoft Entra 認証を有効にし、Microsoft Entra プリンシパルを Microsoft Entra 管理者として追加すると、アカウントは次のようになります。
- 元の PostgreSQL 管理者と同じ特権を取得します。
- サーバー上の他の Microsoft Entra ロールを管理できます。
PostgreSQL 管理者は、ローカルのパスワードベースのユーザーのみを作成できます。 ただし、Microsoft Entra 管理者には、Microsoft Entra ユーザーとローカルのパスワードベースのユーザーの両方を管理する権限があります。
Microsoft Entra 管理者になることができるのは、Microsoft Entra ユーザー、Microsoft Entra グループ、サービス プリンシパル、マネージド ID です。 管理者としてグループ アカウントを使うと、管理性が向上します。 こうすることで、Azure Database for PostgreSQL フレキシブル サーバー インスタンス内のユーザーまたはアクセス許可を変更することなく、Microsoft Entra ID のグループ メンバーを一元的に追加および削除できます。
複数の Microsoft Entra 管理者を同時に構成できます。 監査とコンプライアンスの要件を強化するために、Azure Database for PostgreSQL フレキシブル サーバー インスタンスへのパスワード認証を非アクティブ化するオプションがあります。
Note
Azure Database for PostgreSQL フレキシブル サーバーでは、サービス プリンシパルまたはマネージド ID が Microsoft Entra 管理者としての役割を制限なく果たせるようになりました。 これは Azure Database for PostgreSQL 単一サーバーの制限でした。
Azure portal、API、または SQL を使って作成する Microsoft Entra 管理者には、サーバーのプロビジョニング中に作成した通常の管理者ユーザーと同じアクセス許可があります。 管理者以外の Microsoft Entra ロールのデータベース アクセス許可は、通常のロールと同様に管理されます。
Microsoft Entra ID 経由の接続
Microsoft Entra 認証では、Microsoft Entra の ID を使ってデータベースに接続する場合、次の方法がサポートされています。
- Microsoft Entra パスワード認証
- Microsoft Entra 統合認証
- 多要素認証を使用した Microsoft Entra ユニバーサル
- Active Directory アプリケーション証明書またはクライアント シークレット
- マネージド ID
Active Directory に対して認証を行った後、トークンを取得します。 このトークンはサインイン用のパスワードです。
Azure Database for PostgreSQL フレキシブル サーバーで Microsoft Entra ID を構成するには、Azure Database for PostgreSQL - フレキシブル サーバー向けの Microsoft Entra ID の構成とサインインに関する手順に従います。
その他の考慮事項
Microsoft Entra プリンシパルで任意のデプロイ手順でユーザー データベースの所有権を引き受ける場合は、ユーザー データベースを作成する前に Microsoft Entra 認証を確実に有効にするために、デプロイ (Terraform または Azure Resource Manager) モジュール内に明示的な依存関係を追加してください。
複数の Microsoft Entra プリンシパル (ユーザー、グループ、サービス プリンシパル、またはマネージド ID) を、Azure Database for PostgreSQL フレキシブル サーバー インスタンスの Microsoft Entra 管理者としていつでも構成できます。
Microsoft Entra アカウントを使って Azure Database for PostgreSQL フレキシブル サーバー インスタンスに最初に接続できるのは、PostgreSQL の Microsoft Entra 管理者だけです。 Active Directory 管理者は、それ以降の Microsoft Entra のデータベース ユーザーを構成できます。
Microsoft Entra プリンシパルが Microsoft Entra ID から削除された場合でも、PostgreSQL ロールとしては残りますが、新しいアクセス トークンを取得できなくなります。 この場合、一致するロールはデータベースにまだ存在しますが、サーバーへの認証を行うことはできません。 データベース管理者は、所有権を譲渡し、ロールを手動で削除する必要があります。
Note
削除された Microsoft Entra ユーザーによるサインインは、トークンの有効期限 (トークンの発行から最大 60 分) が切れるまで、引き続き行うことができます。 Azure Database for PostgreSQL フレキシブル サーバーからもユーザーを削除する場合は、そのアクセスはすぐに取り消されます。
Azure Database for PostgreSQL フレキシブル サーバーでは、ユーザー名ではなくユーザーの一意な Microsoft Entra ユーザー ID を使って、アクセス トークンをデータベース ロールに一致させます。 Microsoft Entra ユーザーが削除され、同じ名前で新しいユーザーが作成されると、それは Azure Database for PostgreSQL フレキシブル サーバーによって別のユーザーと見なされます。 そのため、Microsoft Entra ID からユーザーを削除し、同じ名前で新しいユーザーを追加すると、新しいユーザーは既存のロールを使って接続できません。
よく寄せられる質問
Azure Database for PostgreSQL フレキシブル サーバーで使用できる認証モードにはどのようなものがありますか?
Azure Database for PostgreSQL フレキシブル サーバーは、PostgreSQL 認証のみ、Microsoft Entra 認証のみ、PostgreSQL と Microsoft Entra の認証の両方という、3 つの認証モードをサポートしています。
フレキシブル サーバーで複数の Microsoft Entra 管理者を構成できますか?
はい。 フレキシブル サーバーで複数の Microsoft Entra 管理者を構成できます。 プロビジョニング中は、1 人の Microsoft Entra 管理者のみを設定できます。 ただし、サーバーが作成されたら、[認証] ウィンドウに移動して、必要な数の Microsoft Entra 管理者を設定できます。
Microsoft Entra 管理者になれるのは Microsoft Entra ユーザーだけですか?
いいえ。 Microsoft Entra 管理者には、ユーザー、グループ、サービス プリンシパル、マネージド ID がなることができます。
Microsoft Entra 管理者は、ローカルのパスワードベースのユーザーを作成できますか?
Microsoft Entra 管理者は、Microsoft Entra ユーザーとローカルのパスワードベースのユーザーの両方を管理する権限を持っています。
フレキシブル サーバーで Microsoft Entra 認証を有効にするとどうなりますか?
サーバー レベルで Microsoft Entra 認証を設定すると、PGAadAuth 拡張機能が有効になり、サーバーが再起動します。
Microsoft Entra 認証を使ってサインインするにはどうすればよいですか?
psql や pgAdmin などのクライアント ツールを使って、フレキシブル サーバーにサインインできます。 ユーザー名として Microsoft Entra ユーザー ID を使い、パスワードとして Microsoft Entra トークンを使います。
トークンを生成するにはどうすればよいですか?
az login
を使ってトークンを生成します。 詳細については、Microsoft Entra アクセス トークンの取得に関する説明を参照してください。グループ ログインと個人ログインの違いは何ですか?
Microsoft Entra グループ メンバーとしてサインインすることと、個別の Microsoft Entra ユーザーとしてサインインする場合の唯一の違いは、ユーザー名にあります。 個別のユーザーとしてサインインするには、個別の Microsoft Entra ユーザー ID が必要です。 グループ メンバーとしてサインインするには、グループ名が必要です。 どちらのシナリオでも、同じ個別の Microsoft Entra トークンをパスワードとして使います。
トークンの有効期間はどのくらいですか?
ユーザー トークンは最大 1 時間有効です。 システム割り当てマネージド ID のトークンは、最大 24 時間有効です。
次のステップ
- Microsoft Entra ID インスタンスを作成して設定し、Azure Database for PostgreSQL フレキシブル サーバーで Microsoft Entra ID を構成する方法については、Azure Database for PostgreSQL - フレキシブル サーバーの Microsoft Entra ID を使用した構成およびサインインに関するページを参照してください。
- Azure Database for PostgreSQL フレキシブル サーバーの Microsoft Entra ユーザーを管理する方法については、Azure Database for PostgreSQL - フレキシブル サーバーで Microsoft Entra ロールを管理する方法に関するページを参照してください。