開発者にとって一般的な課題は、サービス間の通信をセキュリティで保護するために使用されるシークレット、資格情報、証明書、キーを管理することです。 マネージド ID を使用すると、開発者はこれらの資格情報を管理する必要がなくなります。
開発者はシークレットを Azure Key Vault に安全に格納できますが、サービスには Azure Key Vault にアクセスする方法が必要です。 マネージド ID は、Microsoft Entra 認証をサポートするリソースに接続するときにアプリケーションが使用するために、Microsoft Entra ID で自動的にマネージド ID を提供します。 アプリケーションでは、マネージド ID を使用して、資格情報を管理することなく Microsoft Entra トークンを取得できます。
以下に、マネージド ID を使用するベネフィットをいくつか紹介します。
- 資格情報を管理する必要はありません。 資格情報にアクセスすることはできません。
- マネージド ID を使用すると、独自のアプリケーションを含む、Microsoft Entra 認証をサポートするあらゆるリソースに対して認証を行うことができます。
- 追加コストなしでマネージド ID を使用できます。
Azure で使用できるマネージド ID の種類
次の 2 種類のマネージド ID が存在します。
システム割り当て: Azure Database for PostgreSQL などの一部の Azure リソースの種類では、リソースでマネージド ID を直接有効にすることができます。 システム割り当てマネージド ID と呼ばれます。 システム割り当てマネージド ID を有効にする場合:
Microsoft Entra ID は、その ID 用に特殊な種類のサービス プリンシパルを作成します。 サービス プリンシパルは、その Azure リソースのライフサイクルに関連付けられています。 Azure リソースを削除すると、Azure によってサービス プリンシパルも自動的に削除されます。
その ID を使用して Microsoft Entra ID にトークンを要求できるのは、必然的に、その Azure リソースのみとなります。
マネージド ID に関連付けられているサービス プリンシパルが 1 つ以上のサービスにアクセスできることを承認できます。
マネージド ID に関連付けられているサービス プリンシパルに割り当てられる名前は、常に、作成対象のAzure リソースの名前と同じです。
ユーザー割り当て: 一部のAzure リソースの種類では、独立したリソースとして作成するマネージド ID の割り当てもサポートされています。 これらの ID のライフサイクルは、割り当てられているリソースのライフサイクルとは無関係です。 複数のリソースに割り当てることができます。 ユーザー割り当てマネージド ID を有効にする場合:
Microsoft Entra ID は、その ID に対して特殊な種類のサービス プリンシパルを作成します。 サービス プリンシパルは、それを使用するリソースとは別に管理します。
複数のリソースで、ユーザー割り当て ID を利用できます。
マネージド ID が 1 つ以上のサービスにアクセスすることを承認します。
Azure Database for PostgreSQL でのマネージド ID の使用
Azure Database for PostgreSQLでは、システム割り当てマネージド ID が次の目的で使用されます。
-
azure_storage 拡張機能を、
managed-identity認証の種類を使用してストレージ アカウントにアクセスするように構成する場合。 詳細については、 Microsoft Entra ID で承認を使用するようにazure_storage拡張機能を構成する方法を参照してください。 - Azure Database for PostgreSQL からの Microsoft Fabric ミラー化データベース (プレビュー) では、システム割り当てマネージド ID の認証情報を使用して、指定したデータベースをミラー化するためにフレキシブル サーバーが Microsoft Fabric の Azure Data Lake サービスに送信する要求に署名します。
次の目的で、Azure Database for PostgreSQL フレキシブル サーバー用に構成したユーザー割り当てマネージド IDを使用します: