Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Kotlin Sync ドライバー
/ /

AWS IAM 認証

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

Tip

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

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

Kotlin Syncドライバーに MONGODB-AWS認証メカニズムを使用するように指示するには、接続文字列のパラメーターとして MONGODB-AWS を指定するか、MongoCredential.createAwsCredential() ファクトリー メソッドを呼び出します。

次のセクションでは、MONGODB-AWS認証メカニズムを指定し、 Amazon Web Services IAM 認証情報を提供するためのさまざまな方法を学習できます。

これらのセクションには、次のプレースホルダーを使用するコード例が含まれています。

  • awsKeyId: Amazon Web Services のアクセスキーIDの値

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

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

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

  • port: MongoDB Atlas配置のポート

  • awsSessionToken: Amazon Web Servicesセッション トークンの値

注意

Java v1 用のAmazon Web Services SDK のサポートを終了します

Java v1 用のAmazon Web Services SDK は、12 月 31、2025 のサポートが終了します。 Amazon Web Services、 Java v2 用のAmazon Web Services SDK に移行することを推奨しています。 詳細については、 Amazon Web Servicesサイトの サポート終了の通知 を参照してください。

Amazon Web Services は、 Java v1 および v2 用のソフトウェア開発キット(SDK)を提供しています。 Amazon Web Services SDK は、次の機能を提供します。

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

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

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

MONGODB-AWS認証にAmazon Web Services SDK を使用するには、次の手順を実行します。

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

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

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

接続文字列または MongoCredentialオブジェクトを使用して、MONGODB-AWS認証メカニズムを指定できます。 対応する手順とサンプルコードについては、以下の Connection String タブまたは MongoCredentialタブを選択してください。

接続文字列で MONGODB-AWS認証メカニズムを指定するには、次の例に示すように、authMechanism パラメータを MONGODB-AWS に設定します。

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

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

val credential = MongoCredential.createAwsCredential(null, null)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

  • Amazon Web ServicesSDK forJava v2 については、 設定 を参照してください ガイドを参照してください。

  • Amazon Web ServicesSDK forJava v1 については、 はじめ に を参照してください。 ガイドを参照してください。

注意

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

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

認証情報を提供するには、必要なバージョンの次のAmazon Web Servicesドキュメントを参照してください。

注意

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

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

環境変数を使用して認証情報を提供するには、次の手順を実行します。

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

  2. 適切な環境変数を追加します。

MongoCredentialオブジェクトを使用するか、接続文字列で MONGODB-AWS認証メカニズムを指定できます。

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

val credential = MongoCredential.createAwsCredential(null, null)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

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

このセクションでは、次のタイプの認証の環境変数を設定して認証情報を提供する方法を示します。

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

  • 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 変数を設定する行を省略します。

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

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>

EC2コンテナ認証情報 を使用して認証するには、 Amazon Web Services環境変数を設定しないでください。ドライバーは、デフォルトのIPv4 EC2インスタンスのメタデータエンドポイントから認証情報を取得します。

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

Tip

MongoCredential.createAwsCredential() メソッドにはプログラムによるアクセスキーのみを指定できます。ECS または EC2コンテナの認証情報を指定する必要がある場合は、「 環境で認証情報を指定する 」の手順に従ってください。

MONGODB-AWS認証に MongoCredentialオブジェクトを使用するには、次の手順を実行します。

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

  2. 認証情報を提供します。

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

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>")
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

val awsFreshCredentialSupplier: Supplier<AwsCredential> = Supplier {
// Add your code here to fetch new credentials
// Return the new credentials
AwsCredential("<awsKeyId>", "<awsSecretKey>", "<awsSessionToken>")
}
val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder ->
builder.hosts(listOf(ServerAddress("<hostname>", <port>)))
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

接続文字列でAmazon Web Services IAM 認証情報を提供する必要がある場合は、MongoClientSettings applyConnectionString() メソッドを呼び出すことで、それを オブジェクトに追加できます。

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
val connectionString = ConnectionString("mongodb://<atlasUri>/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>")
val settings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

MongoDBへの認証の詳細については、 MongoDB Serverマニュアルの 認証 を参照してください。

Kotlin Syncドライバーを使用して MongoClientオブジェクトを作成する方法について詳しくは、「MongoClient の作成」ガイドを参照してください。

戻る

x.509

項目一覧