Docs Menu
Docs Home
/ / /
C#/.NET
/ /

AWS ID とアクセス管理

項目一覧

  • Overview
  • コード プレースホルダー
  • アプリケーションでのAWS IAM 認証の使用
  • AWS IAM 認証情報を手動で指定
  • AWS IAM 認証情報を自動的に取得
  • Web IdP
  • 共有AWS認証情報ファイル
  • 環境変数
  • ECS コンテナの認証情報
  • EC2 コンテナの認証情報
  • API ドキュメント

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認証を使用するには、次の手順を実行します。

  1. MongoDB.Driver.Authentication を追加します。 AWS NuGetパッケージをプロジェクトに。このパッケージを追加するには、IDE を使用するか、ターミナルで次のコマンドを実行中します。

    dotnet add package MongoDB.Driver.Authentication.AWS
  2. 次のコード行をアプリケーションのブートストラップ コードに追加して、 Amazon WebAmazon Web Services Services認証プロバイダを登録します。

    MongoClientSettings.Extensions.AddAWSAuthentication();

AWS認証プロバイダを 登録した後、 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>");

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#ドライバーは、ここにリストされている順序で次のロケーションで認証情報をチェックします。

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認証情報ファイルのプロファイルを使用して認証するには、テキストエディタ、 .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コンテナの認証情報を使用して認証するには、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>

EC 2コンテナの認証情報を使用して認証するには、前述の環境変数が設定されていないことを確認してください。ドライバーは、デフォルトの IPv 4 EC 2インスタンスのメタデータエンドポイントから認証情報を取得します。

このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

x.509