Amazon Web Services ID とアクセス管理
項目一覧
Overview
MONGODB-AWS
認証メカニズムは、 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 による認証の設定 」を参照してください。
コード プレースホルダー
このページのコード例では、次のプレースホルダーを使用します。
<hostname>
: MongoDB Atlas配置のネットワークアドレス<awsKeyId>
: Amazon Web ServicesアクセスキーID<awsSecretKey>
: Amazon Web Servicesシークレット アクセスキー<awsSessionToken>
: Amazon Web Servicesセッション トークン
このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。
アプリケーションでのAmazon Web Services IAM 認証の使用
Amazon Web Services IAM認証 を使用するには、次の手順を実行します。
MongoDB.Driver.Authentication を追加します。 AWS NuGetパッケージをプロジェクトに。このパッケージを追加するには、IDE を使用するか、ターミナルで次のコマンドを実行中ます。
dotnet add package MongoDB.Driver.Authentication.AWS 次のコード行をアプリケーションのブートストラップ コードに追加して、 Amazon WebAmazon Web Services Services認証プロバイダを登録します。
MongoClientSettings.Extensions.AddAWSAuthentication();
Amazon Web Services認証プロバイダを 登録した後、 Amazon Web Services IAM 認証情報を明示的に指定するか、ドライバーに外部ソースから自動的に取得するように指示できます。 次のセクションでは、これらの両方の方法について説明します。
Amazon Web Services IAM 認証情報を手動で指定
MongoCredential
オブジェクトを使用するか、接続文字列の一部として、MongoClientSettings
オブジェクトでAmazon Web Services IAM 認証情報を提供できます。 認証情報を指定するための対応する構文を確認するには、Connection String タブまたは MongoCredentialタブを選択します。
var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" + "authSource=$external" + "&authMechanism=MONGODB-AWS"; var mongoClientSettings = MongoClientSettings.FromConnectionString(connectionString); var client = new MongoClient(mongoClientSettings);
Amazon Web Servicesセッション トークンを使用している場合は、次に示すように接続stringに authMechanismProperties
パラメーターを含めます。
var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" + "authSource=$external" + "&authMechanism=MONGODB-AWS" + "&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>";
var mongoClientSettings = MongoClientSettings .FromConnectionString("mongodb+srv://<hostname>"); mongoClientSettings.Credential = new MongoCredential( "MONGODB-AWS", new MongoExternalIdentity("<awsKeyId>"), new PasswordEvidence("<awsSecretKey>")); var client = new MongoClient(mongoClientSettings);
Amazon Web Servicesセッション トークンを使用している場合は、次に示すように、MongoCredential
オブジェクトで WithMechanismProperty()
メソッドを呼び出します。
mongoClientSettings.Credential = new MongoCredential( "MONGODB-AWS", new MongoExternalIdentity("<awsKeyId>"), new PasswordEvidence("<awsSecretKey>")) .WithMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>");
Amazon Web Services IAM 認証情報を自動的に取得
MongoClientSettings
でAmazon Web Services IAM 認証情報を指定する代わりに、 .NET/ C#ドライバーにAmazon Web Services SDK を使用して外部ソースから認証情報を自動的に取得するように指示できます。
ドライバーに認証情報を取得するよう指示するには、まず認証メカニズムとして MONGODB-AWS
を指定し、その認証ソースがMongoDBの外部であることを指定する必要があります。 認証メカニズムとソースは、MongoCredential
オブジェクトを使用するか、接続文字列の一部として指定できます。 Connection String タブまたは MongoCredentialタブを選択すると、MONGODB-AWS
認証メカニズムと外部認証ソースを指定するための対応する構文が表示されます。
var connectionString = "mongodb+srv://<hostname>?" + "authMechanism=MONGODB-AWS" + "&authSource=$external"; var mongoClientSettings = MongoClientSettings .FromConnectionString(connectionString); var client = new MongoClient(mongoClientSettings);
var mongoClientSettings = MongoClientSettings .FromConnectionString("mongodb+srv://<hostname>"); mongoClientSettings.Credential = new MongoCredential( "MONGODB-AWS", new MongoExternalAwsIdentity(), new ExternalEvidence()); var client = new MongoClient(mongoClientSettings);
認証メカニズムとソースを指定した後、認証情報のタイプに適したロケーションに認証情報を設定する必要があります。 .NET/ C#ドライバーは、ここにリストされている順序で次のロケーションで認証情報をチェックします。
Web IdP
OpenID Connect(OIDC)互換の Web IdPを使用して、 Amazon Elastic Kubernetes Service(EKS)またはその他のサービスを認証できます。 Web IdPを使用するには、OIDC トークンを含むファイルを作成し、次の例に示すように bash
または同様のシェル を使用して 環境変数にこのファイルへの絶対パスを設定します。
export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file containing your OIDC token>
共有Amazon Web Services認証情報ファイル
共有Amazon Web Services認証情報ファイルのプロファイルを使用して認証するには、テキストエディタ、 .NET用のAmazon Web Services SDK、またはAmazon Web Services CLI を使用して適切な認証情報ファイルを作成します。
環境変数
環境変数から認証情報を直接検索するには、bash
または同様のシェル を使用して次の環境変数を設定します。
export AWS_ACCESS_KEY_ID=<awsKeyId> export AWS_SECRET_ACCESS_KEY=<awsSecretKey> export AWS_SESSION_TOKEN=<awsSessionToken>
注意
そのロールにAmazon Web Servicesのセッショントークンが必要ない場合は、AWS_SESSION_TOKEN
を含む行を省略します。
ECS コンテナの認証情報
ECSコンテナの認証情報を使用して認証するには、bash
または同様のシェルを使用して、環境変数に ECS エンドポイントの URI を設定します。 対応する環境変数を指定するための構文を確認するには、Full ECS URI タブまたは Relative ECS URIタブを選択します。
export AWS_CONTAINER_CREDENTIALS_FULL_URI=<full ECS endpoint>
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<relative ECS endpoint>
EC2 コンテナの認証情報
EC2コンテナの認証情報を使用して認証するには、前述の環境変数が設定されていないことを確認してください。 ドライバーは、デフォルトのIPv4 EC2インスタンスのメタデータエンドポイントから認証情報を取得します。
API ドキュメント
このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。