Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

AWS IAM

MONGODB-AWS認証メカニズムは、 Amazon Web Services Identity and Access Management(AWS IAM)認証情報を使用してユーザーを認証します。

AWS IAM を使用してMongoDB Atlasに認証できますが、 MongoDB Enterprise AdvancedまたはMongoDB Community Edition には認証できません。

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

  • access key ID: Amazon Web ServicesアクセスキーID

  • secret access key: Amazon Web Servicesシークレット アクセスキー

  • session token: Amazon Web Servicesセッション トークン

  • db: ユーザーに関連付けられた認証データベース

この認証メカニズムを使用するには、プロジェクトのCargo.tomlファイルでmongodb依存関係にaws-auth機能フラグを追加する必要があります。 以下は、 MONGODB-AWS認証メカニズムを有効にするためにmongodb依存関係機能リストに含める必要があるものの例を示しています。

[dependencies.mongodb]
version = "3.5.2"
features = [ "aws-auth", ... ]

重要

Rust ドライバーでMONGODB-AWS認証メカニズムを使用するには、アプリケーションが次の要件を満たしている必要があります。

  • MongoDB Server バージョン4.4以降に接続している場合

  • tokio非同期ランタイムを使用しています。

ドライバーは、認証情報が見つかった最初のソースからのみ認証情報を取得します。 ドライバーは、次の順序で次のソースから認証情報を確認します。

  1. Credential 構造体または接続string 。

  2. 環境変数。

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

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

  5. AWS EC2 エンドポイントとなる接続されたデバイス。詳細については、 AWSドキュメントの タスクの IAM ロール を参照してください。

たとえば、Amazon Web Services 接続 でstring の認証情報を指定した場合、ドライバーはそれらの認証情報を使用し、環境変数で指定した認証情報をすべて無視します。

対応する方法で IAM 認証情報を設定する方法を示すコードサンプルについては、以下の {0 Credential Struct、 、 タブから選択します。Environment VariablesWeb Identity Token FileAmazon Web Services

MONGODB-AWS認証メカニズムを指定するには、Credential 構造体の mechanismフィールドをAuthMechanism::MongoDbAws に設定します。

一時的な認証情報を使用している場合は、 Amazon Web Servicesセッション トークンの値を含むドキュメントを作成し、Credential 構造体の mechanism_properties フィールドをこのドキュメントに設定します。 一時的な認証情報を使用していない場合は、次の例の行9を省略します。

1let uri = "<connection string>";
2let mut client_options = ClientOptions::parse(uri).await?;
3
4let aws_cred = Credential::builder()
5 .username("<access key ID>".to_string())
6 .password("<secret access key>".to_string())
7 .source("<db>".to_string())
8 .mechanism(AuthMechanism::MongoDbAws)
9 .mechanism_properties(doc!("AWS_SESSION_TOKEN": "<session token>"))
10 .build();
11
12client_options.credential = Some(aws_cred);
13let client = Client::with_options(client_options)?;

Tip

一時的なAmazon Web Services IAM 認証情報は、 STS(Token Service)の 引き受けロールリクエストから取得できます。 このプロセスの詳細については、 AssumeRole Amazon Web Services のドキュメント を参照してください。

Amazon Web Servicesの認証情報を環境変数に保存するには、 shellで次のコマンドを実行します。

export AWS_ACCESS_KEY_ID=<access key ID>
export AWS_SECRET_ACCESS_KEY=<secret access key>
export AWS_SESSION_TOKEN=<session token>

Amazon Web Servicesセッション トークンを使用していない場合は、AWS_SESSION_TOKEN 環境変数を設定する行を省略します。

Credential構造体のmechanismオプションをAuthMechanism::MongoDbAwsに設定します。 ドライバーは、環境変数からAmazon Web Services IAM 認証情報を読み取ります。 次のコードは、 Amazon Web Services認証が指定された Credential 構造体を定義し、 MongoDBに接続する方法を示しています。

let uri = "<connection string>";
let mut client_options = ClientOptions::parse(uri).await?;
let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build();
client_options.credential = Some(aws_cred);
let client = Client::with_options(client_options)?;

Web IDP から取得した OpenID Connect(OIDC)トークンを使用して、Amazon Elastic Kubernetes Service(EKS)またはその他のサービスを認証できます。 OIDC トークンを使用するには、トークンを含む ファイルを作成し、次の shell コマンドに示すようにトークン ファイルへの絶対パスである値を持つ環境変数を定義します。

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to OIDC token file>

Credential構造体のmechanismオプションをAuthMechanism::MongoDbAwsに設定します。 ドライバーは、トークン ファイルからAmazon Web Services IAM 認証情報を読み取ります。 次のコードは、 Amazon Web Services認証が指定された Credential 構造体を定義し、 MongoDBに接続する方法を示しています。

let uri = "<connection string>";
let mut client_options = ClientOptions::parse(uri).await?;
let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build();
client_options.credential = Some(aws_cred);
let client = Client::with_options(client_options)?;

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

MongoDBデプロイのユーザー管理 の詳細については、 MongoDB Serverマニュアルの「 ユーザー 」を参照してください。

このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

x.509

項目一覧