ワークロード アイデンティティ フェデレーションを使用すると、アプリケーションは Azure Service Principals、Azure マネージド Identities、Google Service Accounts などの外部のプログラムによるアイデンティティを使用して MongoDB Ops Manager 配置にアクセスできます。
仕組み
ワークロード アイデンティティ フェデレーションにより、OAuth 2.0 アクセス トークンを使用して MongoDB 配置へのアプリケーションからのアクセスが許可されます。アクセス トークンは、Azure Entra ID や Google Cloud Platform (GCP) など、あらゆる外部 IdP (アイデンティティ プロバイダー) から発行できます。MongoDB Ops Manager はユーザーIDと権限を保存しますが、シークレットは保存しません。一部の MongoDB ドライバー は、アプリケーションでこの認証メカニズムを利用できます。
MongoDB ドライバーは、ワークロード Identity Federation の 2 種類の認証フロー(組み込み認証とコールバック認証)をサポートしています。
組み込み認証
互換性のあるプリンシパルタイプを使用して、互換性のあるインフラストラクチャ上にアプリを配置する場合は、組み込み認証を使用できます。アプリは、パスワードを指定したり、クラウドプロバイダーのメタデータサービスから JWT を手動でリクエストしたりせずに、Ops Manager の配置にアクセスできます。その代わり、ドライバーは既存のプリンシパル識別子を使用して JSON web token(JWT)アクセス トークンをリクエストします。ドライバーは、アプリが接続するときに、トークンを MongoDB Ops Manager の配置に渡します。
実装の詳細については、お使いのドライバーのドキュメントを参照してください。
組み込み認証をサポートするインフラストラクチャとプリンシパルのタイプ
クラウドプロバイダー | インフラストラクチャ タイプ | プリンシパルタイプ |
|---|---|---|
GCP | コンピュート エンジン | GCP サービス アカウント |
App Engine 標準環境 | ||
App Engine の柔軟な環境 | ||
クラウド関数 | ||
Cloud Run | ||
Google Kubernetes Engine | ||
クラウドビルド | ||
Azure | Azure VM | Azure Managed IdP(ユーザーとシステムが割り当てられている) |
コールバック認証
コールバック認証は、OAuth 2.0 アクセス トークンをサポートするすべてのサービスで使用できます。ワークロード ID フェデレーションはコールバック メソッドを呼び出します。そのメソッド内では、承認サーバーまたはクラウド プロバイダーから必要な JWT をリクエストします。その後、アプリが接続するときに、ワークロード ID フェデレーションを使用してトークンを MongoDB Ops Manager に渡します。
実装の詳細については、ドライバーのドキュメントを参照してください。
Azure マネージド ID によるセキュリティ
Azure マネージド Identity を使用したワークロード Identity Federation は、Azure 上で実行されている MongoDB Ops Manager の配置に認証する最も安全な方法を提供します。このアプローチには、次のセキュリティ上の利点が得られます。
マネージド ID を活用する: これにより、Azure VM、AKS、Azure Functions などの Azure サービスで実行中のアプリケーションは、別個の MongoDB 認証情報を管理する必要なく、割り当てられた Azure マネージド ID を使用して MongoDB Ops Manager で認証できます。
安全な「スワードレス」認証: アプリケーションはAzureメタデータサーバーから有効期間の短い OAuth 2.0 アクセス トークンを取得し、MongoDB Ops Manager はそのトークンを検証します。これにより、アプリケーションコードや構成内で機密データベースのユーザー名とパスワードを保存およびマネージドする必要がなくなります。
一元化された ID マネジメント: Azure Entra IDフレームワーク内でAzureワークロードの ID を管理し、ID マネジメントのための単一のソースを提供します。
監査の強化: Azure はサービス アカウントのアクティビティの監査するログを提供し、トレーサビリティとセキュリティ モニタリング機能を強化します。
必要なアクセス権
Workload Identity Federation を構成するには、MongoDB Ops Manager へのProject Owner アクセス権が必要です。
前提条件
以下の前提条件を満たす必要があります:
MongoDB 7.0以降。
MongoDB Agent で少なくとも 1 つの他の認証メカニズムが構成されています。
注意
MongoDB Agent は、OIDC を介してお客様の配置に接続できません。MongoDB Agent に対しては、別の認証メカニズムを有効にする必要があります。MongoDB Ops Manager がモニタリングまたはバックアップを管理しない場合は、代替の認証メカニズムを使用するようにそれらを手動で構成する必要があります。
手順
ワークロード アイデンティティ フェデレーションを構成するには、次の手順に従ってください。
ワークロード IdP を構成する(1 回限りの設定)。
外部 ID プロバイダー アプリケーションを構成する
重要: プロジェクトの 認証と TLS 設定をリセットするには、まず、MongoDB Ops Manager がプロジェクト内でマネージドしている MongoDB 配置をマネージャーから解除します。
Workload IdP 認証の構成
注意
Workload Identity Federation は認証用にJSON webJSON web token token のみをサポートします。不変のアクセス トークンはサポートされていません。
OIDC 認証の構成
MongoDBは OIDC のデータベースユーザーを明示的に作成しません。構成に基づいて、OIDC ユーザーをMongoDBロールにマッピングします。
OIDC認証の構成時に選択した承認タイプの手順を完了します。
ユーザー ID
User ID認可タイプを選択した場合は、新しいユーザーを作成して、個々のユーザーに認可を付与します。
OIDC ユーザーを追加します。
ユーザーアカウントのフィールドを入力します。
フィールド説明Identifier
最初のフィールドに
$externalデータベースを入力します。2 番目のフィールドに、ユーザー名として、OIDC IdP 構成名と構成のユーザー プリンシパル クレームをスラッシュ (
/) で区切ったものを入力します。例:{configuration_name}/{user_principal_claim}
Roles
使用可能なユーザー定義ロールと組み込みロールをこのボックスに入力します。 コンボボックス内で をクリックすると、既存のロールのリストが表示されます。
Authentication Restrictions
[Add Entry] をクリックします。
1 つ以上の IP アドレスおよび/または CIDR ブロックを Client Source または Server Address ボックスのいずれかに追加します。複数のアドレスまたはブロックをカンマで区切ります。
Client Source は、このユーザーが認証を行い、指定されたロールを使用できるアドレスを制限します。
Server Address は、このユーザーが認証できるアドレスを制限し、指定されたロールを持つ必要があります。
[Save] をクリックします。
別のエントリを追加するには、[ Add Entry ] をクリックします。
[Add User] をクリックします。
グループ メンバーシップ
Group Membership認可タイプを選択した場合は、次の手順を実行して、 IdP ユーザー グループ メンバーシップに基づいて認可を付与するカスタムロールを作成します。
OIDC ロールを作成します。
次のフィールドを入力します。
フィールド必要性説明Identifier
必須
Databaseボックスに
adminと入力します。Name ボックスで、OIDC IdP 構成名と外部 IdP からのグループ名をスラッシュ (
/) で区切って入力します:{configuration_name}/{group_name}Inherits From
任意
ロール名とデータベースのペアのリスト。 これらのペアの形式は
roleName@dbNameです。Authentication Restrictions
任意
IdPから制限する IP アドレスまたは CIDR 表記のリスト。
Privilege Actions by Resource
任意
リソースに対して許可されるアクション。
詳しくは、「特権アクション 」を参照してください。
[Add Role] をクリックします。
ワークロード アイデンティティ フェデレーションによるMongoDBへのアプリ接続
ワークロード ID フェデレーション認証を使用してアプリを MongoDB に接続するには、次の MongoDB ドライバーを使用します。
既存のワークロード IdP 構成を管理する
ワークロード ID フェデレーション構成を管理するには、これらのアクションを実行できます。
Revoke JWKS
注意
署名キーをローテーションするために、この機能を使用しないでください。 OIDC IdP署名キーをローテーションすると、MongoDB は既存のアクセス トークンの有効期限が切れると、JWKS を自動的に取得します。
秘密キーが侵害された場合は、MongoDB ノードにキャッシュされた JWKS(JSON Web Key Sets)をすぐに取り消すことができます。
設定を編集
Workload Identity Federation の設定を編集するには、次の手順に従います。
構成の削除
Workload Identity Federation 構成を削除するには、次の手順に従います。