Overview
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アクセスキーIDsecret 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非同期ランタイムを使用しています。
認証情報ソース
ドライバーは、認証情報が見つかった最初のソースからのみ認証情報を取得します。 ドライバーは、次の順序で次のソースから認証情報を確認します。
Credential構造体または接続string 。環境変数。
Web ID トークン ファイル
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI環境変数で指定されたAmazon Web Services ECS エンドポイント。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を省略します。
1 let uri = "<connection string>"; 2 let mut client_options = ClientOptions::parse(uri).await?; 3 4 let 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 12 client_options.credential = Some(aws_cred); 13 let 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 ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。