Kerberos 用の MongoDB Agent の構成
- Cloud Managerへのプログラムによるアクセスのための OAuth 2.0認証はプレビュー機能として利用できます。
- 機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。 OAuth2.0 認証を使用するには、 Cloud Manager Public APIへのリクエストで使用する サービス アカウント を作成します。
MongoDB Enterpriseは Kerberos をサポートしています。 Kerberos は、ネットワーク認証プロトコルです。MongoDB Agent は、Kerberos を実行する MongoDB インスタンスに対して認証できます。
前提条件
最小有効期間が 4 時間のチケットを発行するための KDC の構成
Kerberos チケットは期間限定でユーザーを認証できます。 Kerberos キーディストリビューションセンター(KDC)を構成 する必要があります 4 時間以上有効なチケットを発行します。MongoDB Agent は定期的にチケットを更新します。 KDCサービスは、ユーザーとホストにセッション チケットと一時的なセッションキーを提供します。
配置用認証メカニズムとして Kerberos を追加
MongoDB Agent は、MongoDB ユーザーと同様に、配置内の MongoDB データベースを操作します。 そのため、認証をサポートするように MongoDB 配置と MongoDB Agent を構成する必要があります。
配置を追加するときに配置の認証メカニズムを指定することも、既存の配置の設定を編集することもできます。 少なくとも、MongoDB Agent が使用する認証メカニズムを配置で有効にする必要があります。 MongoDB Agent は、サポートされている任意の認証メカニズムを使用できます。
このチュートリアルでは、次のことを確認する必要があります。
配置が Kerberos 認証をサポートしている
MongoDB Agent は Kerberos 認証を使用します。
Kerberos 認証を有効にする方法については、「 Cloud Manager プロジェクトで Kerberos 認証を有効にする 」を参照してください。
Kerberos を使用するように MongoDB Agent ホストを構成する
モニタリングまたはバックアップを実行中のホストに、Kerberos 関連のファイルを 2 つインストールする必要があります。
krb5 .conf を作成または構成するKerberos 構成ファイル。
プラットフォームデフォルト パスノートLinux
/etc/krb5.conf
Windows
%WINDIR%\krb5.ini
これは、非アクティブ ディレクトリ ベースの Kerberos 実装のデフォルト パスです。 Kerberos 構成ファイルが保存されている場所を確認するには、Windows のバージョンの Kerberos 実装のドキュメントを参照してください。
Linux システムで キー を確保する バイナリは
/usr/bin/kinit
にあります。kinit
は、Kerberos を使用してエージェントを認証する Kerberos チケット発行チケットを取得または更新します。
手順
MongoDB Agent の Kerberos ユーザー プリンシパルを作成する
MongoDB Agent の Kerberos ユーザー プリンシパル名( UPN )を作成または選択します。
UPNは 2 つの部分に形式設定されるため、Kerberos 邦土全体でサービスを一意に識別できます。
コンポーネント | 説明 |
---|---|
サービス名 | ホストが Kerberos レルムに提供している 1 つのサービスの名前( |
Kerberos realm | 同じ Kerberos データベースを共有する管理対象ホストとサービスのセット。 Kerberos の命名規則により、 |
例
EXAMPLE.COM
に設定されている Kerberos レルムでは、MongoDB Agent はUPNを次のように設定します: mongodb-agent@EXAMPLE.COM
MongoDB Agentkeytab
の Kerberos UPN 用の ファイルを生成します。
キータブ の生成 MongoDB Agent UPN 用の ファイル(*.keytab
)をコピーし、それを MongoDB Agent を実行するホストにコピーします。MongoDB Agent を実行するオペレーティング システム ユーザーが、 keytab
ファイルを所有するオペレーティング システム ユーザーと同じであることを確認します。
MongoDB Agent UPN のユーザーの作成とロールの割り当て
オートメーションがアクティブ化されている場合、Cloud Manager は MongoDB Agent 認証を管理します。
認証用に構成するにはKerberos MongoDB Agent、「 プロジェクトでの Kerberos認証の有効化 」を参照してください。Cloud Manager
MongoDB Agent の Kerberos UPNを作成したら、MongoDB Agent のUPNに対応する配置内に MongoDB ユーザーを作成し、そのユーザーに特権を付与します。
MongoDB ユーザーを作成する場所は、 LDAP 認可を使用しているかどうかによって異なります。
注意
MongoDB 8.0 以降、LDAP による認証と承認は非推奨です。この機能は利用可能であり、MongoDB 8 の有効期間を通じて変更なく動作し続けます。LDAP は今後のメジャーリリースで削除される予定です。
詳細については、「LDAP の廃止」を参照してください。
MongoDB 配置で LDAP 認可を使用している場合は、 LDAP サーバー上の MongoDB Agent 用の LDAP ユーザーと LDAP グループを作成する必要があります。LDAPユーザーとグループを作成したら、 LDAPグループを配置のadmin
データベース内の MongoDB ロールにマッピングします。
警告
LDAP認証を使用する場合は、 $external
データベースに MongoDB ユーザーを作成しないでください。 MongoDB 3.4以降は、MongoDB ユーザーが$external
データベースに存在し、かつLDAP認証が有効になっている場合、起動しません。
MongoDB Agent を表す MongoDB ユーザーの場合:
MongoDB Agent の UPN を使用して、 という名前の LDAP サーバーに新しい LDAP ユーザーを作成します。
MongoDB Agent のロールと一致する名前のLDAPグループを作成します。
適切な権限を持つ MongoDB Agent のロールを
admin
データベースに作成します。注意
オートメーションがアクティブ化されると、オートメーションはLDAP認証用の MongoDB Agent ユーザーのロールを自動的に作成します。
LDAPユーザーをLDAPグループに割り当てます。
Tip
以下も参照してください。
次の方法を学ぶには: | 詳細は、次を参照してください: |
---|---|
LDAPユーザーの作成 | LDAP実装のドキュメント。 |
LDAPグループの作成 | LDAP実装のドキュメント。 |
MongoDB Agent に適切なロールを割り当てる | |
LDAPグループと MongoDB ロールをマッピングする | MongoDB マニュアルの LDAP 認可 ページの「 LDAP ロール」セクション 。 |
Cloud Manager 自動化を使用せずに LDAP 認証を構成 | MongoDB マニュアルのLDAP 認証ページ 。 |
LDAP認証を使用していない場合は、MongoDB 配置の$external
データベースにユーザーとして MongoDB Agent のUPNを追加する必要があります。 LDAP認証がない場合、MongoDB は$external
データベースを使用して Kerberos に対してユーザーを認証します。
注意
MongoDB Agent に適したロールを見つけるには、「 MongoDB Agent に必要なアクセス権 」を参照してください。
mongosh
から、次のコマンドを実行して MongoDB ユーザーを作成します。
db.getSiblingDB("$external").createUser( { user : "<Kerberos Principal>", roles : [ { role : "clusterAdmin", db : "admin" }, { role : "readWriteAnyDatabase", db : "admin" }, { role : "userAdminAnyDatabase", db : "admin" }, { role : "dbAdminAnyDatabase", db : "admin" }, { role : "backup", db : "admin" }, { role : "restore", db : "admin" } ] } )