Overview
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 による認証の設定 」を参照してください。
MONGODB- AWS認証の指定
MONGODB- AWS認証メカニズムを使用するには、authMechanism
接続オプションの値として 'MONGODB-AWS'
を指定します。
注意
MongoDB PHPライブラリは、libmongoc の MONGODB- AWS認証メカニズムの実装を使用します。 この認証メカニズムを libmongoc で使用する方法の詳細については、 Cドライバーのドキュメントの「 Amazon Web Services IAM による認証」を参照してください。
MONGODB- Amazon Web Servicesメカニズムを使用すると、ドライバーは次のソースからAmazon Web Servicesの認証情報をリストされている順序で検索しようとします。
接続 URI の一部として、またはオプション パラメータとして
MongoDB\Client
に渡されるオプション環境変数
Amazon Web Services EKS
AssumeRoleWithWebIdentity
リクエストECSコンテナのメタデータ
EC 2インスタンスのメタデータ
次のセクションでは、これらのソースから認証情報を取得し、その認証情報を使用してPHPアプリケーションを認証する方法について説明します。
MongoDB $ Client 認証情報
最初に、ドライバーは、接続 URI または $uriOptions
配列パラメータの一部として、MongoDB\Client
コンストラクターにAmazon Web Servicesの認証情報を渡しているかどうかを確認します。 認証情報をMongoDB\Client
に渡すには、次の接続オプションを設定します。
username
: 認証するAmazon Web Services IAM アクセスキーID 。 接続 URI に含める前に、この値をパーセント エンコードします。password
: Amazon Web Services IAM シークレット アクセス キー。 接続 URI に含める前に、この値をパーセント エンコードします。authMechanism
:'MONGODB-AWS'
に設定します。
これらのオプションは、オプション配列を MongoDB\Client
コンストラクターに渡す方法と、接続 URI のパラメーターを使用する方法の 2 通りがあります。対応するコードを表示するには、MongoDB\Client タブまたは Connection URIタブを選択します。
$uriOptions = [ 'username' => '<AWS IAM access key ID>', 'password' => '<AWS IAM secret access key>', 'authMechanism' => 'MONGODB-AWS', ]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions, );
$uri = 'mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS'; $client = new MongoDB\Client($uri);
環境変数
MongoDB\Client
オブジェクトを構築するときにユーザー名とパスワードを指定しない場合、ドライバーは次の環境変数からAmazon Web Servicesの認証情報を検索しようとします。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
これらの環境変数を使用してアプリケーションを認証 するには、まず認証に必要なAmazon Web Services IAM 値に設定します。 次のコード例に示すように、 shellで export
コマンドを実行することも、 .env
ファイルに変数を追加することもできます。
export AWS_ACCESS_KEY_ID=<AWS IAM access key ID> export AWS_SECRET_ACCESS_KEY=<AWS IAM secret access key> export AWS_SESSION_TOKEN=<AWS session token>
AWS_ACCESS_KEY_ID=<AWS IAM access key ID> AWS_SECRET_ACCESS_KEY=<AWS IAM secret access key> AWS_SESSION_TOKEN=<AWS session token>
重要
これらの環境変数の値をパーセント エンコードしないでください。
これらの環境変数を設定したら、 authMechanism
接続オプションを'MONGODB-AWS'
に設定します。
例
次の例では、 authMechanism
接続オプションを設定します。 このオプションは、オプション配列をMongoDB\Client
コンストラクターに渡す方法と、接続 URI のパラメーターを使用する方法の 2 通りがあります。
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>', ['authMechanism' => 'MONGODB-AWS'], );
$uri = 'mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS'; $client = new MongoDB\Client($uri);
Tip
AWS Lambda
AWS Lambdaランタイムは、初期化中にこれらの環境変数を自動的に設定できます。 AWS Lambda環境で環境変数を使用する方法の詳細については、 AWSドキュメントの「 Lambda環境変数の使用 」を参照してください。
AssumeRoleWithWebIdentity requests
アプリケーションが OpenID Connect(OIDC) IdPから EKS クラスターのユーザーを認証する場合、ドライバーは AssumeRoleWithWebIdentity
リクエストを実行して、アプリケーションの一時的なAmazon Web Services認証情報の OIDC トークンを交換できます。
リクエストによって返された一時的なAWS IAM 認証情報を使用して認証するには、AssumeRoleWithWebIdentity
AWS設定ファイルが環境に存在し、正しく構成されていることを確認します。 AWS構成ファイル の作成および構成方法については、 AWSドキュメントにある「 構成 」を参照してください。
AssumeRoleWithWebIdentity
リクエストの環境を構成したら、 authMechanism
接続オプションを'MONGODB-AWS'
に設定します。 authMechanism
オプションを設定する例については、このページのauthMechanism の例を参照してください。
Tip
AssumeRoleWithWebIdentity
リクエストを使用してアプリケーションを認証する方法の詳細については、次のAmazon Web Servicesドキュメントを参照してください。
ECS Metadata
アプリケーションが Elastic Container Service(ECS)コンテナで実行されている場合、ドライバーは ECS エンドポイントから一時的なAmazon Web Servicesの認証情報を自動的に検索できます。 そのためには、 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
という環境変数で ECS エンドポイントの URI を指定します。 この変数は、次の例に示すように、export
shellコマンドを実行中するか、.env
ファイルに追加することで設定できます。
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<URI of the ECS endpoint>
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<URI of the ECS endpoint>
環境変数を設定したら、 authMechanism
接続オプションを'MONGODB-AWS'
に設定します。 authMechanism
オプションを設定する例については、このページのauthMechanism の例を参照してください。
EC 2インスタンス メタデータ
Amazon Web Servicesドライバーは、Amazon Elastic Cloud compute(EC2 )インスタンスから一時的な の認証情報を自動的に取得できます。EC 2インスタンス内から一時認証情報を使用するには、 authMechanism
接続オプションを'MONGODB-AWS'
に設定します。 authMechanism
オプションを設定する例については、このページのauthMechanism の例を参照してください。
注意
MongoDB PHPライブラリは、「環境変数」セクションで説明されている環境変数が設定されていない場合にのみ、EC 2インスタンスから認証情報を検索します。
詳細情報
MongoDB PHPライブラリで MongoDB\Client
オブジェクトを作成する方法について詳しくは、「 MongoDBクライアントの作成」ガイドを参照してください。
接続オプションの詳細については、 「接続オプションの指定」ガイドを参照してください。