AWS ID とアクセス管理
項目一覧
Overview
MONGODB-AWS
認証メカニズムは、 Amazon Web Services Identity and Access Management(AWS IAM)認証情報を使用してMongoDB. ユーザーを認証します。このメカニズムは、 MongoDB Atlasに認証するときにのみ使用できます。
Tip
AWS IAM 認証用の Atlas の設定
AWS IAM認証用にMongoDB Atlasを構成する方法の詳細については、Atlas ドキュメントの「 AWS IAM による認証を設定する 」を参照してください。
コード プレースホルダー
このページのコード例では、次のプレースホルダーを使用します。
<hostname>
: MongoDB Atlas配置のネットワークアドレス<awsKeyId>
: Amazon Web ServicesアクセスキーID<awsSecretKey>
: Amazon Web Servicesシークレット アクセスキー<awsSessionToken>
: AWSセッショントークン
このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。
アプリケーションでのAWS IAM 認証の使用
AWS IAM認証を使用するには、次の手順を実行します。
MongoDB.Driver.Authentication を追加します。 AWS NuGetパッケージをプロジェクトに。このパッケージを追加するには、IDE を使用するか、ターミナルで次のコマンドを実行中します。
dotnet add package MongoDB.Driver.Authentication.AWS 次のコード行をアプリケーションのブートストラップ コードに追加して、 Amazon WebAmazon Web Services Services認証プロバイダを登録します。
MongoClientSettings.Extensions.AddAWSAuthentication();
AWS認証プロバイダを 登録した後、 AWS IAM 認証情報を明示的に指定するか、ドライバーに外部ソースから自動的に取得するように指示できます。次のセクションでは、これらの両方の方法について説明します。
AWS IAM 認証情報を手動で指定
AWS IAM 認証情報は、MongoCredential
オブジェクトを使用するか、接続文字列の一部として、MongoClientSettings
オブジェクトで指定できます。認証情報を指定するための対応する構文を確認するには、 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>");
AWS IAM 認証情報を自動的に取得
MongoClientSettings
でAWS IAM 認証情報を指定する代わりに、 .NET/ C#ドライバーにAWS 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>
共有AWS認証情報ファイル
共有AWS認証情報ファイルのプロファイルを使用して認証するには、テキストエディタ、 .NET用のAWS SDK、またはAWS 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 コンテナの認証情報
EC 2コンテナの認証情報を使用して認証するには、前述の環境変数が設定されていないことを確認してください。ドライバーは、デフォルトの IPv 4 EC 2インスタンスのメタデータエンドポイントから認証情報を取得します。
API ドキュメント
このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。