重要
MONGODB- AWS認証メカニズムはMongoDBバージョン 4.4 以降でのみ使用できます。
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 による認証の設定 」を参照してください。
MONGODB- AWS認証の指定
MONGODB-AWS
認証が有効な状態の MongoDB インスタンスに接続するには、MONGODB-AWS
認証メカニズムを指定します。
ドライバーは、次のソースの認証情報を登録されている順序でチェックします。
接続文字列。
環境変数。
Web ID トークン ファイル
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
環境変数で指定されたAmazon Web Services ECS エンドポイント。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 ドキュメント
このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。