Overview
このページでは、Atlas Data Federation でデータベースユーザーの詳細な認証と承認設定を構成する方法について説明します。これには、利用可能な認証方法と、 Atlas CLI 、 Atlas 管理API 、および Atlas UIを使用してユーザーを管理する方法が含まれます。
注意
Atlas はデフォルトで Atlas プロジェクトごとに最大 100 データベースユーザーをサポートします。100 以上のデータベースユーザーがプロジェクトで必要な場合は、 Atlas Administration API を使用して上限を増やすことができます。サポートが必要な場合は Atlas サポートにお問い合わせください。
必要なアクセス権
高度なデータベースユーザー構成を使用するには、Atlas で Organization Owner、Project Owner、またはProject Database Access Adminのアクセス権が必要です。
データベースユーザーの認証
Atlas (+adf+)は、データベースユーザーに対して次の形式の認証を提供します。
パスワード: SCRAM は MongoDB のデフォルトの認証方法です。SCRAM では、ユーザーごとにパスワードが必要です。
SCRAM 認証ユーザーの認証データベースは
adminデータベースです。注意
デフォルトでは、Atlas は SCRAM-SHA-256認証をサポートしています。MongoDB 4.0 より前にユーザーを作成した場合は、 MongoDB 4.0 を更新し、パスワードを更新して SCRAM-SHA-256 認証情報を生成する必要があります。既存のパスワードを再利用できます。
SCRAM を使用する場合
SCRAM認証は人間ユーザーとアプリケーションユーザーに使用できます。下位環境の場合は、SCRAM が適した認証方法となります。実稼働環境では 以上の環境では、特権アクセス管理(PAM)ソリューションと統合するなど、セキュリティのベストプラクティスに従って、シークレットを安全かつ短期間に保持します。
X.509 証明書: X.509 証明書 (相互 TLS または mTLS とも呼ばれます)は、信頼できる証明書を使用することでパスワードレス認証を可能にします。
X. 509 認証ユーザーの認証データベースは
$externalデータベースです。LDAP認可を有効にすると、Atlas が管理する X.509 証明書で認証するユーザーを使用してクラスターに接続することはできません。LDAP を有効にし、X.509 ユーザーを使用してクラスターに接続するには、「 自己管理型 X.509 証明書の設定 」を参照してください。
X.509 を使用する場合
X.509認証は、ワークロードID フェデレーション(OIDC)またはAWS IAM認証が実行できない場合、または相互認証が必要な場合に、安全なワークロードアクセスに適しています。
OIDC: OpenID Connect(OIDC)認証、外部 IdP を使用したスワードレス、シークレットレス認証が可能になります。Atlas は次のタイプの OIDC認証をサポートしています。
従業員、パートナー、契約従業員などの人間のプリンシパルのための Workforce IdP。
ワークロード Identity Federation for applications using external programmatic identities such as Azure Service Principals, Azure マネージド Identities, and Google Service Accounts.
OIDC 認証ユーザーの認証データベースは
$externalデータベースです。OIDC認証はMongoDBバージョン 7.0 以降を使用するクラスターでのみ使用できます。
OIDC を使用する場合
人間のユーザーの場合は、OIDC とともに Workforce IdP を使用することをお勧めします。
アプリケーションユーザーの場合は、 GCPまたはAzure上で実行するアプリケーション向けに OIDC とともに Workload Identity Federation を使用することをお勧めします。
AWS IAM: 認証にAWS IAM ユーザーまたはロール ARN を使用するデータベースユーザーを作成できます。
AWS IAM 認証ユーザーの認証データベースは
$externalデータベースです。AWS IAM を使用する場合
AWSで実行中アプリケーションユーザーには、 IAM ロールを持つAWS IAM認証を使用することをお勧めします。
新しいデータベースユーザーの追加
プロジェクトには、認証方法が異なる複数のユーザーを含めることができます。
ユーザーを作成した後で、そのユーザーの認証方法を変更することはできません。別の認証方法を使用するには、新しいユーザーを作成する必要があります。
Atlas CLI は、次のコマンドを使用して、新しいデータベースユーザーと X.509 証明書を作成します。指定するオプションによって、認証方法が決まります。
Atlas CLI を使用してプロジェクトのデータベースユーザーを作成するには、以下のコマンドを実行します。
atlas dbusers create [builtInRole]... [options]
Atlas CLI を使用して、指定したデータベースユーザーに Atlas に管理される新しい X.509 証明書を作成するには、次のコマンドを実行します。
atlas dbusers certs create [options]
以前のコマンドの構文とパラメータの詳細については、Atlas CLI ドキュメントの atlas dbusers create および atlas dbusers certs create を参照してください。
Atlas Administration API を通じてデータベースユーザーを追加できます。指定するオプションによって、認証方法が決まります。詳細については、「データベースユーザーを 1 つ作成する」を参照してください。
認証メカニズムを選択し、Atlas UI を使用して、手順に従って新しいデータベースユーザーを作成します。
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
特権を割り当てます。
データベースユーザーの権限を選択します。次のいずれかの方法で、新しいユーザーに特権を割り当てることができます。
Built-in Role ドロップダウンメニューから組み込みロールを選択します。Atlas UI では、データベースユーザーごとに 1 つの組み込みロールを選択できます。デフォルトオプションを削除する場合は、Add Built-in Role をクリックして新しい組み込みロールを選択できます。
カスタムロールが定義されている場合は、 Custom Rolesセクションを展開し、 Custom Rolesドロップダウンメニューから 1 つ以上のロールを選択できます。 さらにカスタムロールを追加するには、 Add Custom Roleをクリックします。 また、 Custom Rolesリンクをクリックして、プロジェクトのカスタムロールを表示することもできます。
[Specific Privileges] セクションを展開し、[Specific Privileges] ドロップダウン メニューから 1 つ以上の特権を選択します。[Add Specific Privilege] をクリックして、さらに特権を追加します。こうすることで、個々のデータベースとコレクションに対するユーザー固有の特権が割り当てられます。
Atlas では、組み込みロール、複数のカスタムロール、および複数の特定の特権を 1 人のデータベースユーザーに適用できます。
適用されたロールまたは特権を削除するには、次をクリックします:削除するロールまたは特権の横にあるDelete 。
注意
Atlas はオプションを 1 つだけ選択した場合は、 Built-in Role 、 Custom Role 、またはSpecific Privilege選択の横にDeleteアイコン。 選択したロールまたは特権は、別のロールまたは特権を適用すると、削除できます。
承認の詳細については、MongoDB マニュアルの 「ロールベースのアクセス制御 」と 「組み込みロール 」を参照してください。
ユーザーがアクセスできるプロジェクト内のリソースを指定します。
デフォルトでは、ユーザーはプロジェクト内のすべてのクラスターとフェデレーティッドデータベースインスタンスにアクセスできます。次の操作を行うことで、特定のクラスターおよびフェデレーティッドデータベースインスタンスへのアクセスを制限できます。
Restrict Access to Specific Clusters/Federated Database Instances を ON に切り替えます。
[Grant Access To] リストから、ユーザーにアクセス権を付与するクラスターとフェデレーティッドデータベースインスタンスを選択します。
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
ユーザーの情報を入力します。
フィールド | 説明 | |
|---|---|---|
Common Name | TLS/SSL 証明書によって保護されているユーザーのコモン ネーム(CN)。詳細については、RFC 2253 を参照してください。 たとえば、コモンネームが「Jane Doe」、組織が「MongoDB」、国が「米国」の場合は、次の内容をCommon Nameフィールドに挿入します。 | |
User Privileges | 次のいずれかの方法でロールを割り当てることができます。
Atlas の組み込み権限の詳細については、組み込みロール を参照してください。 承認の詳細については、MongoDB マニュアルの 「ロールベースのアクセス制御 」と 「組み込みロール 」を参照してください。 |
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
認証方法をAWS IAM として設定します。
Add New Database User モーダルウィンドウの Authentication Method セクションで AWS IAM を選択します。
AWS IAM Type ドロップダウン メニューからユーザータイプを選択します。
Role: AWSサービス(EC2、 Lambda、ECS など)またはロールを引き受けるアプリケーションの認証。アプリケーションにアクセスする場合、 MongoDBIAM ユーザー ではなく IAM ロール を使用することを強くおすすめしています。
User:データベースに直接アクセスする必要がある個々のAWSユーザーの認証。人間のユーザーの場合は、OIDC とともに Workforce Identity Federation を使用することをお勧めします。AWS IAM認証 の代わりに。
AWSロールまたはユーザー ARN を入力します。
ロール ARN形式:
arn:aws:iam::123456789012:role/MyRoleユーザー ARN形式:
arn:aws:iam::123456789012:user/MyUser
ARN の検索方法については、See instruction below リンクをクリックしてください。
特権を割り当てます。
データベースユーザーの権限を選択します。次のいずれかの方法で、新しいユーザーに特権を割り当てることができます。
Built-in Role ドロップダウンメニューから組み込みロールを選択します。Atlas UI では、データベースユーザーごとに 1 つの組み込みロールを選択できます。デフォルトオプションを削除する場合は、Add Built-in Role をクリックして新しい組み込みロールを選択できます。
カスタムロールが定義されている場合は、 Custom Rolesセクションを展開し、 Custom Rolesドロップダウンメニューから 1 つ以上のロールを選択できます。 さらにカスタムロールを追加するには、 Add Custom Roleをクリックします。 また、 Custom Rolesリンクをクリックして、プロジェクトのカスタムロールを表示することもできます。
[Specific Privileges] セクションを展開し、[Specific Privileges] ドロップダウン メニューから 1 つ以上の特権を選択します。[Add Specific Privilege] をクリックして、さらに特権を追加します。こうすることで、個々のデータベースとコレクションに対するユーザー固有の特権が割り当てられます。
Atlas では、組み込みロール、複数のカスタムロール、および複数の特定の特権を 1 人のデータベースユーザーに適用できます。
適用されたロールまたは特権を削除するには、次をクリックします:削除するロールまたは特権の横にあるDelete 。
注意
Atlas はオプションを 1 つだけ選択した場合は、 Built-in Role 、 Custom Role 、またはSpecific Privilege選択の横にDeleteアイコン。 選択したロールまたは特権は、別のロールまたは特権を適用すると、削除できます。
承認の詳細については、MongoDB マニュアルの 「ロールベースのアクセス制御 」と 「組み込みロール 」を参照してください。
ユーザーがアクセスできるプロジェクト内のリソースを指定します。
デフォルトでは、ユーザーはプロジェクト内のすべてのクラスターとフェデレーティッドデータベースインスタンスにアクセスできます。次の操作を行うことで、特定のクラスターおよびフェデレーティッドデータベースインスタンスへのアクセスを制限できます。
Restrict Access to Specific Clusters/Federated Database Instances を ON に切り替えます。
[Grant Access To] リストから、ユーザーにアクセス権を付与するクラスターとフェデレーティッドデータベースインスタンスを選択します。
AWS IAM 接続文字列の例
mongosh で Amazon Web Services IAM 認証を使用して Atlas に接続するには、shell バージョン v0.9.0 以上が必要です。
次の点を考慮してください。
アクセス キー ID をユーザー名、秘密鍵をパスワードとして使用して、AWS IAM 認証情報を使用します。
authSourceクエリ パラメータは$externalで、%24externalとしてURL エンコードします。authMechanismクエリ パラメータはMONGODB-AWSです。例
mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
Add New Database User or Group ダイアログ ボックスを開きます。
Add New Database User or Group をクリックします。
注意
Workforce IdP を Atlas に適用するまで、このボタンは Add New Database User と表示します。
Federated Authを選択します。
Authentication Methodセクションで、[Federated Auth] を選択します。
注意
組織で Workforce IdP を有効にするまで、このボックスを選択することはできません。
ユーザーまたはグループの特権を割り当てます。
新しいユーザーまたはグループに特権を割り当てるには、次のタスクの 1 つ以上を実行します。
Built-in Role ドロップダウンメニューから組み込みロールを選択します。
Atlas UI では、データベースグループごとに 1 つの組み込みロールを選択できます。
デフォルト オプションを削除する場合は、 Add Built-in Roleをクリックして新しい組み込みロールを選択できます。
カスタムロール が定義されている場合は、 Custom Rolesセクションを展開し、 Custom Rolesドロップダウンメニューから 1 つ以上のロールを選択できます。
さらにカスタムロールを追加するには、 Add Custom Roleをクリックします。
プロジェクトのカスタムロールを表示するには、 Custom Rolesリンクをクリックします。
[ Specific Privilegesセクションを展開し、 Specific Privilegesドロップダウン メニューから 1 つ以上の 特権 を選択します。
さらに特権を追加するには、 Add Specific Privilegeをクリックします。 こうすることで、個々のデータベースとコレクションに対するグループ固有の特権が割り当てられます。
適用されたロールまたは特権を削除します。
- をクリックしますの横にあるDelete
- 削除するロールまたは特権。
注意
Atlas はオプションを 1 つだけ選択した場合は、 Built-in Role 、 Custom Role 、またはSpecific Privilege選択の横にDeleteアイコン。 選択したロールまたは特権は、別のロールまたは特権を適用すると、削除できます。
Atlas では、組み込みロール、複数のカスタムロール、および複数の特定の特権をデータベースグループに適用できます。
認可の詳細については、MongoDB マニュアルの「 ロールベースのアクセス制御」と「 組み込みロール 」を参照してください。
ユーザーまたはグループがアクセスできるプロジェクト内のリソースを指定します。
デフォルトでは、グループはプロジェクト内のすべてのクラスターと フェデレーティッドデータベースインスタンス にアクセスできます。 特定のクラスターとフェデレーティッドデータベースインスタンスへのアクセスを制限するには、次の手順に従います。
Restrict Access to Specific Clusters/Federated Database Instances を On に切り替えます。
Grant Access Toリストからグループにアクセスを許可するクラスターとフェデレーティッドデータベースインスタンスを選択します。
一時ユーザーまたはグループとして保存します。
Temporary UserまたはTemporary GroupをOnに切り替え、Atlas がユーザーまたはグループを削除できるようになるまでの時間を [ Temporary User DurationまたはTemporary Group Durationドロップダウンから選択します。 グループが存在する期間として、次のいずれかから選択できます。
6 時間
1 日
1 週間
[ Database Usersタブには、Atlas が一時ユーザーまたはグループを削除するまでの残り時間が表示されます。 Atlas がユーザーまたはグループを削除すると、一時ユーザーのまたはグループの認証情報を使用するクライアントやアプリケーションは、クラスターにアクセスできなくなります。
注意
MongoDB 8.0 以降、LDAP による認証と承認は非推奨です。この機能は利用可能であり、MongoDB 8 の有効期間を通じて変更なく動作し続けます。LDAP は今後のメジャーリリースで削除される予定です。
詳細については、「LDAP の廃止」を参照してください。
「LDAP による認証を構成する」の手順に従ってから、「LDAP データベースユーザーまたはグループを追加する」の手順に従ってください。
データベースユーザーと証明書の表示
データベースユーザーの表示
Atlas CLI を使用してプロジェクトのすべての Atlas データベースユーザーを一覧表示するには、次のコマンドを実行します。
atlas dbusers list [options]
Atlas CLI を使用して指定したプロジェクト内の 1 人の Atlas データベースユーザーの詳細を返すには、次のコマンドを実行します。
atlas dbusers describe <username> [options]
以前のコマンドの構文とパラメータの詳細については、Atlas CLI ドキュメントの atlas dbusers list および atlas dbusers describe を参照してください。
データベースユーザーの X.509 証明書の表示
Atlas CLI を使用して、Atlas で管理する、有効期限が切れていないすべてのデータベースユーザーの証明書を一覧表示するには、次のコマンドを実行します。
atlas dbusers certs list <username> [options]
構文とパラメータの詳細については、Atlas CLI ドキュメントの atlas dbusers certs list を参照してください。
Atlas Administration API を使用して Atlas データベースユーザーを表示するには、「Get All」を参照してください。
Atlas UI で Atlas データベースユーザーと X.509 証明書を表示するには:
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
データベースユーザーの変更
Atlas CLI を使用してプロジェクトのデータベースユーザーを更新するには、次のコマンドを実行します。
atlas dbusers update <username> [options]
コマンド構文とパラメータの詳細については、Atlas CLI ドキュメントの atlas dbusers update を参照してください。
Atlas Administration API を通じてデータベースユーザーを更新できます。詳しくは「Update One」を参照してください。
Atlas プロジェクトの既存のユーザーを変更するには:
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
既存のユーザーを変更します。
まだ表示されていない場合は、 Database Usersタブをクリックします。
変更するユーザーの [Edit] をクリックします。
ユーザーに割り当てられた特権と認証の詳細を変更できます。認証方式は変更できません。
以下の表では、各ユーザーに対してできる操作について説明します。
ユーザー タイプアクションSCRAM 認証ユーザー
ユーザーのパスワードを編集する。
X.509 証明書認証ユーザー
新しい証明書をダウンロードする。
AWS IAM ユーザー
データベースのアクセス特権を変更する。
一時ユーザー
ユーザーの有効期限がまだ過ぎていない場合は、ユーザーが存在する期間を変更するか、ユーザーを永続的なユーザーにする。
注意
永続的なユーザーを一時ユーザーに変更することはできません。一時ユーザーを永続的なユーザーに変更した場合、再度一時ユーザーにすることはできません。
[Update User] をクリックして、変更を保存します。
データベースユーザーの削除
Atlas CLI を使用してプロジェクトからデータベースユーザーを削除するには、次のコマンドを実行します。
atlas dbusers delete <username> [options]
コマンド構文とパラメータの詳細については、atlas dbusers delete の Atlas CLI ドキュメントを参照してください。
Atlas Administration API を通じてデータベースユーザーを削除できます。詳細については、「Delete One」を参照してください。
Atlas UI を使用して Atlas プロジェクトの既存のユーザーを削除するには:
Atlas で、プロジェクトの Database & Network Access ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。