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

Amazon Web Services IAM 認証メカニズム

重要

MONGODB- AWS認証メカニズムはMongoDBバージョン 4.4 以降でのみ使用できます。

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

ドライバーは、次のソースの認証情報を登録されている順序でチェックします。

  1. 接続文字列。

  2. カスタム認証情報プロバイダー。詳細については、カスタム AWS 認証情報プロバイダーを指定する。を参照してください。

  3. 環境変数。

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

  5. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 環境変数で指定されたAmazon Web Services ECS エンドポイント。

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

重要

ドライバーは、認証情報が見つかった最初のソースからのみ認証情報を取得します。例、接続文字列でAmazon Web Services の認証情報を指定すると、ドライバーは環境変数で指定した認証情報を無視します。

Tip

次の例では、SetAuth() メソッドを使用して適切な資格情報を設定します。ApplyURI() メソッドを使用してこれらの資格情報を指定することもできます。ApplyURI() メソッドを使用する場合は、ユーザー名とパスワードが正しく解析されるように URL エンコードする必要があります。

AWS IAM 認証情報を使用して MongoDB インスタンスに接続するには、次の手順を実行します。

  • AuthMechanism オプションに MONGODB-AWS という値を割り当てます

  • Username オプションに accessKeyID の値を割り当てます

  • Password オプションに secretAccessKey の値を割り当てます

var accessKeyID, secretAccessKey stringawsCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AuthSource: "<authenticationDb>", Username: "<accessKeyID>", Password: "<secretAccessKey>",} awsIAMClient, err := mongo.Connect(options.Client().SetAuth(awsCredential))if err != nil { panic(err)}_ = awsIAMClient

Amazon Web Servicesセッショントークンを指定する必要がある場合は、 assume ロールリクエストから返された一時的な認証情報を使用します。

一時的な認証情報を使用するには、次のように sessionToken の値を AuthMechanismProperties オプションに割り当てます。

var accessKeyID, secretAccessKey, sessionToken stringassumeRoleCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AuthSource: "<authenticationDb>", Username: "<accessKeyID>", Password: "<secretAccessKey>", AuthMechanismProperties: map[string]string{ "AWS_SESSION_TOKEN": "<sessionToken>", },} assumeRoleClient, err := mongo.Connect(options.Client().SetAuth(assumeRoleCredential))

ドライバーに独自のAmazon Web Services認証情報プロバイダーを提供することで、AWS SDK for Go v2の完全な認証情報チェーンを使用できるようになります。Amazon EKS Pod Identityなど、ドライバーの組み込み認証情報チェーンがサポートしていないAmazonのメカニズムを使用して認証する場合は、このメソッドを使用してください。

始める前に、以下のものを必ず用意してください。

  • Go 1.26 以降

  • Go ドライバー v2.9 以降

注意

試験用機能

ext/awsauth モジュールはプレリリースです。その API は不安定であり、下位互換性のない方法で変更される可能性があります。

AWS SDK から認証情報プロバイダーを提供するには、ext/awsauth モジュールと AWS SDK for Go v2 をインストールしてください。

go get go.mongodb.org/mongo-driver/ext/awsauth github.com/aws/aws-sdk-go-v2/config

次の例では、AWS SDK から AWS 認証メカニズムへプロバイダーチェーンを渡します。

awsConfig, err := config.LoadDefaultConfig(context.TODO())if err != nil { panic(err)} awsSdkCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AWSCredentialsProvider: awsauth.NewCredentialsProvider(awsConfig.Credentials),} awsSdkClient, err := mongo.Connect(options.Client().SetAuth(awsSdkCredential))if err != nil { panic(err)}_ = awsSdkClient

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