Workload Identity Federation を使用した認証
1.8.1以降では、 mongosync
と Atlas Workload Identity Federationを使用して、 Microsoft AzureとGoogle Cloud Platformで実行中されているMongoDBクラスターへの接続を認証できます。
例
このセクションでは、ワークロード Identity Federation を使用するmongosync
の例を示します。
接続文字列で、 authMechanism
をMONGODB-OIDC
に設定し、必要に応じてauthMechanismProperties
を設定します。
Microsoft Azureの場合は、
authMechanismProperties
をENVIRONMENT:azure,TOKEN_RESOURCE:<audience>
に設定します。注: Microsoft Azure Kubernetes Service(AKS)を使用している場合は、TOKEN_RESOURCE
を省略します。Google Cloud Platformの場合は、
authMechanismProperties
をENVIRONMENT:gcp,TOKEN_RESOURCE:<audience>
に設定します。
<audience>
を、アクセス トークンが対象とするアプリケーションまたはサービスに置き換えます。詳細については、「 ID プロバイダーのフィールド 」を参照してください。
接続文字列オプションの詳細については、「認証オプション 」を参照してください。
Microsoft Azureインスタンス メタデータ サービスを使用したMongoDBクラスターへの接続
次のmongosync
の例では、 Microsoft Azure Instance Metadata Service(MDS)を使用してMongoDBクラスターに接続します。
./bin/mongosync \ --logPath /var/log/mongosync \ --cluster0 "mongodb://clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:https://www.example.com" \ --cluster1 "mongodb://clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:https://www.example.com"
Microsoft Azure Kubernetes Service を使用したMongoDBクラスターへの接続
Microsoft Azure Kubernetes Service を使用してMongoDBクラスターに接続するには、次の環境変数を定義します。
環境変数 | 説明 |
---|---|
AZURE_TENANT_ID | Azure tenant identifier. |
AZURE_APP_CLIENT_ID | Azureアプリケーションクライアント識別子です。 |
AZURE_CLIENT_ID | 認証するマネージド ID のAzureクライアント識別子。 |
AZURE_FEDERATED_TOKEN_FILE | Azureフェデレーティッド トークンのファイルパス。 |
Azureと変数の詳細については、 Microsoft Azureのドキュメントを参照してください。
次のmongosync
の例では、 環境変数を定義し、 MongoDBクラスターに接続します。
AZURE_TENANT_ID=08206ab8-16a0-406d-85e4-2f15f5620fac \ AZURE_APP_CLIENT_ID=b6c835da-e536-425b-9405-64bc471e245b \ AZURE_CLIENT_ID=f176d4eb-7dcd-4f66-bccf-aaa316ee61fd \ AZURE_FEDERATED_TOKEN_FILE=/var/run/secrets/azure/tokens/azure-identity-token \ ./bin/mongosync \ --logPath /var/log/mongosync \ --cluster0 "mongodb://clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure" \ --cluster1 "mongodb://clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure"
TOKEN_RESOURCE
この例では は必要ありません。
Google Cloud PlatformでMongoDBクラスターに接続する
次のmongosync
の例では、 Google Cloud PlatformのMongoDBクラスターに接続しています。
./bin/mongosync \ --logPath /var/log/mongosync \ --cluster0 "mongodb://clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:gcp,TOKEN_RESOURCE:https://www.example.com" \ --cluster1 "mongodb://clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:gcp,TOKEN_RESOURCE:https://www.example.com"
Google Cloud Platform環境変数は必要ありません。