Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Go Driver
/ /

Amazon Web Services IAM 認証メカニズム

重要

MONGODB- AWS認証メカニズムはMongoDBバージョン 4.4 以降でのみ使用できます。

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

MONGODB-AWS 認証が有効な状態の MongoDB インスタンスに接続するには、MONGODB-AWS認証メカニズムを指定します。

ドライバーは、次のソースの認証情報を登録されている順序でチェックします。

  1. 接続文字列。

  2. 環境変数。

  3. Web ID トークン ファイル

  4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 環境変数で指定されたAmazon Web Services ECS エンドポイント。

  5. Amazon Web Services EC2 エンドポイント。 詳細については、 Amazon Web Servicesドキュメントのタスクの IAM ロールを参照してください。

重要

ドライバーは、認証情報が見つかった最初のソースからのみ認証情報を取得します。例、接続文字列でAmazon Web Services の認証情報を指定すると、ドライバーは環境変数で指定した認証情報を無視します。

Tip

次の例では、SetAuth() メソッドを使用して適切な資格情報を設定します。ApplyURI() メソッドを使用してこれらの資格情報を指定することもできます。ApplyURI() メソッドを使用する場合は、ユーザー名とパスワードが正しく解析されるように URL エンコードする必要があります。

AWS IAM 認証情報を使用して MongoDB インスタンスに接続するには、次の手順を実行します。

  • AuthMechanism オプションに MONGODB-AWS という値を割り当てます

  • Username オプションに accessKeyID の値を割り当てます

  • Password オプションに secretAccessKey の値を割り当てます

var accessKeyID, secretAccessKey string
awsCredential := options.Credential{
AuthMechanism: "MONGODB-AWS",
AuthSource: "<authenticationDb>",
Username: "<accessKeyID>",
Password: "<secretAccessKey>",
}
awsIAMClient, err := mongo.Connect(options.Client().SetAuth(awsCredential))
if err != nil {
panic(err)
}
_ = awsIAMClient

AWS セッショントークンを指定する必要がある場合は、assume ロール リクエストから返された一時的な認証情報を使用します。

一時的な認証情報を使用するには、次のように sessionToken の値を AuthMechanismProperties オプションに割り当てます。

var accessKeyID, secretAccessKey, sessionToken string
assumeRoleCredential := options.Credential{
AuthMechanism: "MONGODB-AWS",
AuthSource: "<authenticationDb>",
Username: "<accessKeyID>",
Password: "<secretAccessKey>",
AuthMechanismProperties: map[string]string{
"AWS_SESSION_TOKEN": "<sessionToken>",
},
}
assumeRoleClient, err := mongo.Connect(options.Client().SetAuth(assumeRoleCredential))

環境変数に保存されている AWS 認証情報を使用して MongoDB インスタンスに対して認証するには、shell を使用して次のように変数を設定します。

export AWS_ACCESS_KEY_ID=<awsKeyId>
export AWS_SECRET_ACCESS_KEY=<awsSecretKey>
export AWS_SESSION_TOKEN=<awsSessionToken>

注意

認証するロールに AWS セッショントークンが必要ない場合は、AWS_SESSION_TOKEN を含む行を省略します。

上記の環境変数を設定したら、以下に例示するとおり MONGODB-AWS 認証メカニズムを指定します。

envVariablesCredential := options.Credential{
AuthMechanism: "MONGODB-AWS",
}
envVariablesClient, err := mongo.Connect(options.Client().SetAuth(envVariablesCredential))
if err != nil {
panic(err)
}
_ = envVariablesClient

Web IDP から取得した OpenID Connect(OIDC)トークンを使用して、Amazon Elastic Kubernetes Service(EKS)またはその他のサービスを認証できます。OIDC トークンを使用するには、トークンを含むファイルを作成するか、既存のファイルを見つけます。次に、以下の環境変数を設定してください。

  • AWS_WEB_IDENTITY_TOKEN_FILE: OIDC トークンを含むファイルの絶対パスに設定します。

  • AWS_ROLE_ARN: クラスターへの接続に使用される IAM ロールに設定します。例: arn:aws:iam::111122223333:role/my-role

次のシェルコマンドは、これらの環境変数を設定します。

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file that contains OIDC token>
export AWS_ROLE_ARN=<IAM role name>

以下の環境変数を設定した後、次の例に示すように MONGODB-AWS 認証メカニズムを指定します。

envVariablesCredential := options.Credential{
AuthMechanism: "MONGODB-AWS",
}
envVariablesClient, err := mongo.Connect(options.Client().SetAuth(envVariablesCredential))
if err != nil {
panic(err)
}
_ = envVariablesClient

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

戻る

x.509

項目一覧