Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

AWS IAM 認証

注意

MongoDB Atlas共有責任モデルは、安全で回復力のあるデータ環境を維持するためのMongoDBとそのカスタマーの補完的な役割を定義します。このフレームワークの下、 MongoDB は基礎のプラットフォームのセキュリティと運用上の整合性を管理しますが、カスタマーは特定の配置の構成、管理、データ ポリシーに責任を負います。所有者のセキュリティと運用の優れ性の詳細な内訳については、共有責任モデルを参照してください。

AWS IAM ユーザーまたはロール を使用すると、パスワードを管理せずに Atlas クラスターへのデータベースユーザーを認証できます。AWS IAM を使用すると、認証メカニズムの数とマネージドの秘密の数が削減されます。Atlas はネットワーク経由で認証秘密キーを受信せず、ドライバーは秘密キーを保持しません。

ユースユースケースに適した認証方法を選択します。

  • IAM ロール: AWSサービス(EC2、 Lambda、ECS)またはフェデレーティッド ユーザーが引き受けるロール。AWSコンピューティング リソースで実行中ワークロードには、アプリケーションとワークロードロードにアクセスするために IAM ロール を使用することをお勧めします。

  • IAM ユーザー:データベースに直接アクセスする必要がある個々のAWSユーザー。このオプションは、特定のユーザー認証情報で実行中アプリケーションに適しています。開発者や管理者などの人間ユーザーの場合は、OIDC とともに Workforce IdP フェデレーション を使用することをお勧めします。

重要

クライアントがAWS IAMデータベース認証を使用して接続する前に、 IAM認証用に構成されたデータベースユーザーを作成する必要があります。認証に IAM Users または IAM Roles を使用するデータベースユーザーを作成する方法については、データベースユーザーの管理 を参照してください。

注意

Atlas は、Amazon Web Services STS を使用して、IAM ユーザーとロールの ID を確認します。Amazon Web Services、リージョンごとに 1 秒あたり、1 アカウントあたり、600 リクエストのデフォルトのリクエスト割り当てが適用されます。この割り当ては、IAM ユーザーまたはロールのAmazon Web Servicesアカウントに適用されます。

Amazon Web ServicesIAM ロールを設定して、 クラスターへのAmazon Web Services コンピュートAtlas タイプを認証できます。

注意

Amazon Web Services IAM プリンシパルの認証は、LDAP 認証が有効になっている場合は設定できません。

Amazon Web Services IAM プリンシパルの認証が必要な場合は、Amazon Amazon Web Services IAM 認証でアクセスするクラスターを、 LDAP認証が無効になっている別のプロジェクトに移動することを検討してください。

Amazon Web Services LambdaおよびHTTP (ECS および EC2)の場合、ドライバーは 環境変数 から自動的に読み取りを行います。Amazon Web Services EKS の場合、IAM ロールを手動で割り当てる必要があります。

このページでは、AWS Lambda、AWS ECSAWS EKS による AWS IAM ロールを使用した接続方法について説明します。

注意

AWS コンソールで、IAM ロールを Lambda、EC2、ECS、EKS のいずれかに割り当てる必要があります。

AWS Lambda は、Lambda 関数に 実行ロールを割り当てる と、次の環境変数を通じて関数に情報を渡します。

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

注意

関数内で 実行ロール を使用する場合は、これらの環境変数を手動で作成する必要はありません。

これらの環境変数について詳しくは、 Amazon Web Services Lambda環境変数の使用 を参照してください。

Amazon Web Services ECS は次の URI から認証情報を取得します。

http://169.254.170.2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}

AWS_CONTAINER_CREDENTIALS_RELATIVE_URI は、環境変数です。詳細については、 Amazon Web Servicesドキュメントのタスクの IAM ロールを参照してください。

AWS EC2 インスタンスは、 IAM ロールが付与されている場合、 インスタンス メタデータ サービス V2 から自動的に認証情報を取得します。認証情報は、次のURLから検索されます。

http://169.254.169.254/latest/meta-data/iam/security-credentials/

重要

認証を機能させるには、EC2インスタンスに IAM ロールをアタッチする必要があります。IAM ロールには、Atlas クラスターにアクセスするために必要な権限が必要です。

EC2インスタンスに IAM ロールをアタッチする方法については、 AWSドキュメントにある「 IAM ロールを使用してインスタンスを起動する 」を参照してください。

Amazon Web Services Services ECS Fargate での認証用にAmazon Web Services IAM ロールを設定する方法については、 Amazon Amazon Web Services のドキュメントの「Amazon ECSタスク実行 IAM ロール」を参照してください。

AWS EKS の場合、まずポッドに IAM ロールを割り当てて、そのポッドで次の環境変数を設定する必要があります。

  • AWS_WEB_IDENTITY_TOKEN_FILE - Web ID トークン ファイルへのパスが含まれます。

  • AWS_ROLE_ARN - クラスターへの接続に使用される IAM ロールが含まれます。

Amazon Web Services EKS の詳細については、「 Amazon EKS とは 」を参照してください。 ( Amazon Web Servicesのドキュメント)。

AWS IAM ロールへのデータベースアクセスを許可するには、 AWS IAM の「 データベースユーザーの設定 」セクションで説明されている手順を完了します。Atlas CLI、Atlas 管理API、または Atlas UIを使用してデータベースへのアクセスを許可する方法の詳細については、「データベースユーザーの設定」を参照してください。

を使用してAmazon Web Services IAM 認証情報でmongosh に接続するにAtlas は、 MONGODB- 認証メカニズムを指定する接続 を指定しますstringAmazon Web Services 。この接続string形式は、すべてのAmazon Web Services IAM 認証メカニズムに適用されます。

重要

この接続文字列形式を使用する前に、 AWS IAM ロールを使用した認証の設定 で説明されている方法のいずれかを使用して認証を設定する必要があります。

mongosh で Amazon Web Services IAM 認証を使用して Atlas に接続するには、shell バージョン v0.9.0 以上が必要です。

次の点を考慮してください。

  • アクセス キー ID をユーザー名、秘密鍵をパスワードとして使用して、AWS IAM 認証情報を使用します。

  • authSource クエリ パラメータは $external で、%24external としてURL エンコードします。

  • authMechanism クエリ パラメータは MONGODB-AWS です。

    mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>