【问题标题】:Spring boot app with cosmos managed identity具有 cosmos 托管标识的 Spring Boot 应用程序
【发布时间】:2021-11-22 13:06:14
【问题描述】:

我正在使用部署到 aks 的 Spring Boot 应用程序。

应用程序连接 Azure cosmos db。 连接细节在 application.yml 中提供

我正在尝试摆脱连接 url 并引入 cosmos db 托管身份系统/用户。

任何想法或链接来帮助您了解如何将 Spring Boot 与 Cosmos 托管身份联系起来

【问题讨论】:

  • 这是用于 SQL API 的吗?
  • 欢迎您!请注意标签:您使用了与 Cosmos DB 无关的 [cosmos](描述中也明确提到了这一点,并使用 [azure-cosmosdb]) - 我已相应地修复了此问题。
  • 除了标记:请编辑以包含有关您所做的事情、错误、问题等的详细信息。
  • 你好@Indrajit Banerjee,如果我的回答对你有帮助,你可以投票并接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为填充。)。这对其他社区成员可能是有益的。谢谢。

标签: spring-boot azure kubernetes azure-cosmosdb


【解决方案1】:

• Azure cosmos DB 支持系统级别和基于用户级别的托管标识访问。因此,您可以通过托管在 azure AKS 集群中的 Spring Boot 应用程序配置对 azure cosmos DB 的托管标识访问,方法是为已配置的 Spring Boot 应用程序配置托管标识,如下所示:-

Go to your cosmos DB account  Settings  Identity  System assigned, or User assigned  Save. You can also set azure active directory-based role assignments to the cosmos DB account as well.

• 如果您在 AKS 中访问托管的 Spring Boot 应用程序并检索服务主体 ID 以通过将角色分配到 azure cosmos DB 来分配系统托管标识以进行托管标识访问,则可以运行使用以下命令来分配服务主体到一个参数,然后分配一个响应、内容和 ARMToken 参数,然后使用之前检索到的访问令牌来获取访问 cosmos DB 的访问密钥。

注意:- 下面是一个将服务主体分配给参数的示例命令

 ‘ $spID = (Get-AzVM -ResourceGroupName myRG -Name 
  myVM).identity.principalid
  New-AzRoleAssignment -ObjectId $spID -RoleDefinitionName 
  "Cosmos DB Account Reader Role" -Scope 
  "/subscriptions/<mySubscriptionID>/resourceGroups/
  <myResourceGroup>/providers/
   Microsoft.DocumentDb/databaseAccounts/<COSMOS DB ACCOUNT 
   NAME>" '

请找到以下链接以获取更多信息:-

https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-cosmos-db

https://docs.microsoft.com/en-us/azure/cosmos-db/managed-identity-based-authentication

【讨论】:

  • 请注意,文档请求问题是题外话。在我的 cmets 几天前要求提供更多详细信息之后,OP 仍然没有用具体问题更新他们的问题。没有必要发布这样的答案,因为没有详细的问题要回答。
猜你喜欢
  • 2022-06-14
  • 2018-09-05
  • 2015-12-15
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 2020-04-28
  • 2018-02-25
  • 1970-01-01
相关资源
最近更新 更多