AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

Amazon Web Services IAM 認証メカニズム

MONGODB-AWS認証メカニズムは、 Amazon Web Services Identity and Access Management(Amazon Web Services IAM)認証情報を使用してMongoDBに対してユーザーを認証します。 このメカニズムは、 MongoDB Atlasに認証するときにのみ使用できます。

Tip

Amazon Web Services IAM 認証のための Atlas の設定

Amazon Web Services IAM認証用のMongoDB Atlasの構成の詳細については、Atlas ドキュメントの「 Amazon Web Services IAM による認証の設定 」を参照してください。

MONGODB-AWS認証メカニズムは、 Amazon Web Services Identity and Access Management(Amazon Web Services IAM)認証情報を使用してユーザーを認証します。 Amazon Web Services署名ライブラリ をまだ持っていない場合は、次の npm コマンドを使用してインストールします。

npm install aws4

MONGODB-AWS 認証が有効な状態の MongoDB インスタンスに接続するには、MONGODB-AWS認証メカニズムを指定します。

重要

接続文字列で MONGODB-AWS 認証情報を直接指定することは非推奨となり、ノード.jsドライバー バージョン 7.0 以降では削除されます。非推奨の機能を使用しないようにするには、環境変数または別の方法を使用してAWS認証情報を提供します。

ドライバーは、次のソースで認証情報を順番に確認します。

  1. 接続文字列

  2. Process.env で利用可能な環境変数

  3. Web ID トークン ファイル

  4. 次の場所で指定されたAWS ECSエンドポイント: AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

  5. Amazon Web Services EC2 エンドポイント。 詳しくは、タスクの IAM ロール を参照してください。

重要

ドライバーは、前述のリストで指定された順序で、最初に検出した方法からのみ認証情報を読み取ります。たとえば、接続文字列で AWS 認証情報を指定すると、ドライバーは環境変数で指定した認証情報を無視します。

重要

接続文字列で MONGODB-AWS 認証情報を直接指定することは非推奨となり、ノード.jsドライバー バージョン 7.0 以降では削除されます。非推奨の機能を使用しないようにするには、環境変数または別の方法を使用してAWS認証情報を提供します。

接続文字列を使用して MongoDB インスタンスに接続するには、接続時に認証情報 AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY をドライバーに渡します。AWS ログインにセッション トークンが必要な場合は、AWS_SESSION_TOKEN も含めます。

次は、接続文字列で MONGODB-AWS 認証メカニズムと認証情報を指定するコード例です。

重要

正しく解析されるようにするには、encodeURIComponent メソッドを使用して、ユーザー名と証明書ファイルのパスを常に URI エンコードします。

const { MongoClient } = require("mongodb"); // Replace the following with values for your environment.const accessKeyId = encodeURIComponent("<AWS_ACCESS_KEY_ID>");const secretAccessKey = encodeURIComponent("<AWS_SECRET_ACCESS_KEY>");const clusterUrl = "<cluster_url>"; const authMechanism = "MONGODB-AWS"; let uri = `mongodb+srv://${accessKeyId}:${secretAccessKey}@${clusterUrl}/?authSource=%24external&authMechanism=${authMechanism}`; // Uncomment the following lines if your AWS authentication setup requires a session token.// const sessionToken = encodeURIComponent("<AWS_SESSION_TOKEN>");// uri = uri.concat(`&authMechanismProperties=AWS_SESSION_TOKEN:${sessionToken}`); // Create a new MongoClient.const client = new MongoClient(uri); async function run() { try { // Establish and verify connection. await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server."); } finally { // Ensure that the client closes when it finishes/errors. await client.close(); }}run().catch(console.dir);

オプションの aws-sdk/credential-providers 依存関係をインストールすると、ドライバーはAmazon Web Services SDK で定義された優先順位順位で認証情報を検索します。 共有Amazon Web Services認証情報ファイルまたは 設定ファイルがある場合、ドライバーはデフォルトでそれらの認証情報を使用します。

Tip

aws-sdk/credential-providers 依存関係が認証情報を検索する方法の詳細については、Amazon Web Services SDK ドキュメントを参照してください。

取得するAmazon Web Services認証情報を手動で指定するには、 Amazon Web Services SDK から定義済みの認証情報プロバイダーに AWS_CREDENTIAL_PROVIDERプロパティを設定します。 次の例では、プロバイダー チェーンをAmazon Web Services SDK からAmazon Web Services認証メカニズムに渡します。

const { MongoClient } = require('mongodb');const { fromNodeProviderChain } = require('@aws-sdk/credential-providers'); const client = new MongoClient('<cluster_url>?authMechanism=MONGODB-AWS', { authMechanismProperties: { AWS_CREDENTIAL_PROVIDER: fromNodeProviderChain() }});

カスタム プロバイダーを使用するには、認証情報を返す非同期関数を AWS_CREDENTIAL_PROVIDER認証メカニズムのプロパティに渡します。次の例は、環境変数から認証情報を取得するカスタム プロバイダー関数をAmazon Web Services認証メカニズムに渡す方法を示しています。

const { MongoClient } = require('mongodb'); const client = new MongoClient('<cluster_url>?authMechanism=MONGODB-AWS', { authMechanismProperties: { AWS_CREDENTIAL_PROVIDER: async () => { return { accessKeyId: process.env.ACCESS_KEY_ID, secretAccessKey: process.env.SECRET_ACCESS_KEY } } }});

カスタム認証情報プロバイダーは、他の形式の認証よりも優先されます。

このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。