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

Amazon Web Services ID とアクセス管理

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

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

注意

Amazon Web Services SDK テスト

Java Reactive Streams ドライバーは、AWS SDK のバージ 2.30.31 および 1.12.782 で MONGODB-AWS をテストします。

このページのコード例では、次のプレースホルダーを使用します。

  • <awsKeyId>: Amazon Web ServicesアクセスキーID

  • <atlasUri>: MongoDB Atlas配置のネットワークアドレス

  • <awsSecretKey>: Amazon Web Servicesシークレット アクセスキー

  • <awsSessionToken>: Amazon Web Servicesセッション トークン

  • <hostname>: MongoDB Atlas配置のホスト名

  • <port>: MongoDB Atlas配置のポート

このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。

この認証メカニズムを使用するようにドライバーに指示するには、接続stringのパラメーターとして、または MongoCredential.createAwsCredential() ファクトリー メソッドを使用して MONGODB-AWS を指定できます。

このセクションでは、この認証メカニズムを指定する方法と、Java Reactive Streams ドライバーに Amazon Web Services IAM 認証情報を提供するための様々な方法について説明します。

重要

MONGODB-AWS 認証情報を提供するこの方法は、Java Reactive Streams ドライバー v4.8 以降でのみ使用できます。

認証情報を指定するには、次の機能を提供するJava用Amazon Web Services SDK の v1 または v2 を使用します。

  • 認証情報を取得するための複数のオプション

  • アプリケーションがレート制限を回避するのに役立つ認証情報キャッシュ

  • Elastic Kubernetes Service で使用するための認証情報プロバイダー管理。

MONGODB-AWS認証にAmazon Web Services SDK for Javaを使用するには、次のアクションを実行する必要があります。

  1. 認証メカニズムを指定します。

  2. SDK を 依存関係としてプロジェクトに追加します 。

  3. 認証情報プロバイダー チェーンのいずれかの方法を使用して認証情報を提供します。

MongoCredentialを使用して認証メカニズムを指定するには、MongoCredential.createAwsCredential()ファクトリー メソッドを使用し、次の例に示すようにMongoCredentialインスタンスをMongoClientに追加します。

MongoCredential credential = MongoCredential.createAwsCredential(null, null);
// Creates a MongoClient that receives configuration information from a MongoCredential and environment variables
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Collections.singletonList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

接続文字列で認証メカニズムを指定するには、次の例に示すように、それをパラメータとして追加します。

MongoClient mongoClient = MongoClients.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS");

Amazon Web Services SDK を依存関係としてプロジェクトに追加するには、次の Amazon Web Services ドキュメントを参照してください。

  • Amazon Web Services SDK for Java v2 については、 設定ガイドを参照してください。

  • Amazon Web Services SDK for Java v1 については、使用開始ガイドを参照してください。

注意

Amazon Web Services SDK for Java v2 の場合、Java Reactive Streams ドライバーは software.amazon.awssdk:auth:2.30.31 依存関係を使用してテストされます。

Amazon Web Services SDK for Java v1 の場合、Java Reactive Streams ドライバーは com.amazonaws:aws-java-sdk-core:1.12.782 依存関係を使用してテストされます。

Java Reactive Streams ドライバーに認証情報を提供するには、次の AWS ドキュメントを参照してください。

注意

プロジェクトに Amazon Web Services SDK for Java の v1 と v2 の両方を含める場合は、v2 メソッドを使用して Java Reactive Streams ドライバーに認証情報を提供する必要があります。

MONGODB-AWS 認証メカニズムを使用するようドライバーに指示し、環境変数を設定することで、Amazon Web Services IAM 認証情報を提供できます。

環境変数を使用して認証情報を提供するには、次のアクションを実行する必要があります。

  1. 認証メカニズムを指定する

  2. 環境変数を追加する

接続文字列で MongoCredential または を使用して認証メカニズムを指定できます。

MongoCredentialを使用して認証メカニズムを指定するには、MongoCredential.createAwsCredential()ファクトリー メソッドを使用し、次の例に示すようにMongoCredentialインスタンスをMongoClientに追加します。

MongoCredential credential = MongoCredential.createAwsCredential(null, null);
// Creates a MongoClient that receives configuration information from a MongoCredential and environment variables
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Collections.singletonList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

接続文字列で認証メカニズムを指定するには、次の例に示すように、それをパラメータとして追加します。

MongoClient mongoClient = MongoClients.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS");

環境変数を設定して、次のタイプの認証を有効にすることができます。

  • プログラムによるアクセス キー

  • Web ID プロバイダー

  • ECS コンテナの認証情報

  • EC2 コンテナの認証情報

次の例は、 bashまたは同様の shell を使用して、環境変数にプログラムによるアクセス キーを設定する方法を示しています。

export AWS_ACCESS_KEY_ID=<awsKeyId>
export AWS_SECRET_ACCESS_KEY=<awsSecretKey>
export AWS_SESSION_TOKEN=<awsSessionToken>

そのロールに Amazon Web Services セッショントークンが必要ない場合は、AWS_SESSION_TOKENを含むコマンドを省略します。

OpenID Connect(OIDC)互換のWeb ID プロバイダーを使用して、Amazon Elastic Kubernetes Service(EKS)またはその他のサービスを認証できます。

重要

プロジェクトには、Web IdP を使用して認証するためのAmazon Web Services SDK の v1 または v2 を依存関係として含める必要があります。

Web ID プロバイダーを使用するには、OIDC トークンを含む ファイルを作成します。 次に、次の例に示すように、 bashまたは同様の shell を使用して、環境変数をこのファイルへの絶対パスに設定します。

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file containing your OIDC token>

ECSコンテナ認証情報 を使用して認証するには、次の例に示すように、 または同様のシェル を使用して環境変数に ECS エンドポイントの相対的 URI を設定します。bash

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>

EC2コンテナの認証情報を使用して認証するには、このセクションで述べられている環境変数が設定されていないことを確認してください。ドライバーは、環境変数からではなく、デフォルトのIPv4 EC2インスタンスのメタデータエンドポイントとなる接続されたデバイスから認証情報を取得します。

Amazon Web Services IAM 認証情報を MongoCredentialインスタンスを使用して MongoClient に提供できます。 MONGODB-AWS認証用の MongoCredentialインスタンスを構築するには、createAwsCredential() ファクトリー メソッドを使用します。

MongoCredential.createAwsCredential() メソッドにはプログラムによるアクセスキーのみを提供できます。ECS または EC2 コンテナの認証情報を提供する必要がある場合は、「環境変数の使用」または「Java用のAmazon Web Services SDK の使用セクションの手順を使用します。

MONGODB-AWS認証に MongoCredential を使用するには、次のアクションを実行する必要があります。

  1. 認証メカニズムを指定する

  2. 認証情報を提供する

MongoCredentialを使用して認証メカニズムを指定するには、MongoCredential.createAwsCredential()ファクトリー メソッドを使用し、次の例に示すようにMongoCredentialインスタンスをMongoClientに追加します。

MongoCredential credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray());
// Creates a MongoClient that receives AWS credentials from the MongoCredential instance
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Collections.singletonList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

Amazon Web Servicesセッショントークンを指定する必要がある場合は、次の例に示すように、それをwithMechanismProperty()メソッドに渡します。

MongoCredential credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>");
// Creates a MongoClient that receives configuration information from a MongoCredential instance
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Collections.singletonList(new ServerAddress("<hostname>"))))
.credential(credential)
.build());

Amazon Web Services IAM認証情報を更新するには、次の例に示すように、新しい認証情報を返す Supplier Lambda式を宣言します。

Supplier<AwsCredential> awsFreshCredentialSupplier = () -> {
// Add your code to fetch new credentials
return new AwsCredential("<awsKeyId>", "<awsSecretKey>", "<awsSessionToken>");
};
// Creates a MongoCredential instance to specify the new AWS credentials
MongoCredential credential = MongoCredential.createAwsCredential(null, null)
.withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier);
// Creates a MongoClient that receives new configuration information from a MongoCredential instance
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Collections.singletonList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

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