Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル
/ /

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 による認証の設定 」を参照してください。

MONGODB- AWS認証メカニズムを使用するには、authMechanism 接続オプションの値として 'MONGODB-AWS' を指定します。

注意

MongoDB PHPライブラリは、libmongoc の MONGODB- AWS認証メカニズムの実装を使用します。 この認証メカニズムを libmongoc で使用する方法の詳細については、 Cドライバーのドキュメントの「 Amazon Web Services IAM による認証」を参照してください。

MONGODB- Amazon Web Servicesメカニズムを使用すると、ドライバーは次のソースからAmazon Web Servicesの認証情報をリストされている順序で検索しようとします。

  1. 接続 URI の一部として、またはオプション パラメータとしてMongoDB\Clientに渡されるオプション

  2. 環境変数

  3. Amazon Web Services EKS AssumeRoleWithWebIdentityリクエスト

  4. ECSコンテナのメタデータ

  5. EC 2インスタンスのメタデータ

次のセクションでは、これらのソースから認証情報を取得し、その認証情報を使用してPHPアプリケーションを認証する方法について説明します。

最初に、ドライバーは、接続 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環境変数の使用 」を参照してください。

アプリケーションが 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ドキュメントを参照してください。

アプリケーションが 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 の例を参照してください。

Amazon Web Servicesドライバーは、Amazon Elastic Cloud compute(EC2 )インスタンスから一時的な の認証情報を自動的に取得できます。EC 2インスタンス内から一時認証情報を使用するには、 authMechanism接続オプションを'MONGODB-AWS'に設定します。 authMechanismオプションを設定する例については、このページのauthMechanism の例を参照してください。

注意

MongoDB PHPライブラリは、「環境変数」セクションで説明されている環境変数が設定されていない場合にのみ、EC 2インスタンスから認証情報を検索します。

MongoDB PHPライブラリで MongoDB\Clientオブジェクトを作成する方法について詳しくは、「 MongoDBクライアントの作成」ガイドを参照してください。

接続オプションの詳細については、 「接続オプションの指定」ガイドを参照してください。

戻る

x.509

項目一覧