使用 Workload Identity Federation 进行身份验证
从 1.8.1 开始,您可以将mongosync
与 Atlas Workload Identity Federation 结合使用,对与在Microsoft Azure和Google Cloud Platform上运行的MongoDB集群的连接进行身份验证。
示例
本部分显示使用 Workload Identity Federation 的 mongosync
示例。
string在连接字符串中,设立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>
替换为访问权限令牌适用的应用程序或服务。有关更多详细信息,请参阅身份提供者字段。
string有关连接字符串选项的详细信息,请参阅身份验证选项。
使用Microsoft Azure实例元数据服务连接到MongoDB集群
以下 mongosync
示例使用Microsoft Azure实例元数据服务 (IMDS) 连接到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服务连接到MongoDB集群
要使用Microsoft Azure Kubernetes服务连接到MongoDB集群,请定义以下环境变量:
环境变量 | 说明 |
---|---|
AZURE_TENANT_ID | Azure tenant identifier. |
AZURE_APP_CLIENT_ID | Azure应用程序客户端标识符。 |
AZURE_CLIENT_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不需要环境变量。