azure - 如何为现有 Azure Service Fabric 群集启用用户分配的托管标识并连接到 Azure Key Vault 以读取机密?
问题描述
拥有一个现有的 Azure 服务结构实例,该实例托管除我们的应用程序之外的多个应用程序。目前,托管在 Azure 服务结构上的应用程序正在使用 Azure AD 应用程序使用证书连接到 Keyvault。
希望通过使用托管标识连接到 Azure Key Vault 进行升级。但是启用系统分配的托管标识不是选项,因为目标 Azure 服务结构实例不仅仅专用于我们的应用程序,而是一个共享环境,它也托管其他项目的多个应用程序。
所以其他选项是启用用户分配的托管身份。
但是,如何通过 Power-shell 或其他最简单的方式在现有 Azure 服务结构实例上启用用户分配的托管标识?
现有 Azure 服务结构实例上的应用程序如何以编程方式 (c#) 对 Azure Key Vault 实例进行身份验证以访问其机密?
解决方案
如何通过 Power-shell 或其他最简单的方式在现有 Azure 服务结构实例上启用用户分配的托管标识?
如果要在服务结构中使用用户分配的 MSI,有两种方法:
Azure Service Fabric 群集托管在虚拟机规模集上,因此您可以通过powershell或门户利用 VMSS 的 MSI(参考此处) 。
首先在集群上启用 Managed Identity Token Service,然后使用 User-Assigned Managed Identity 部署 Service Fabric 应用程序,它们目前只能通过 ARM 模板使用。
现有 Azure 服务结构实例上的应用程序如何以编程方式 (c#) 对 Azure Key Vault 实例进行身份验证以访问其机密?
要访问 azure keyvault secret,您可以使用ManagedIdentityCredential
to Azure.Identity
auth,确保您已将MSI 添加到 keyvault 的访问策略中。
var client = new SecretClient(vaultUri: new Uri(keyVaultUrl), credential: new ManagedIdentityCredential());
KeyVaultSecret secret = client.SetSecret("secret-name", "secret-value");
secret = client.GetSecret("secret-name");
推荐阅读
- machine-learning - 用于 MLP Keras 预测的循环程序
- r - 从 bash 脚本激活 Anaconda?
- python - sklearn shuffle 和 np.random.permutation 的区别
- python - 我如何安排我的功能以使用我制作的这个类?
- python - 无法将表中的所有行作为键,使用 sqlite3 的值
- html - 如何使我的 css 按钮成为 Google 上的这个按钮
- python - 为什么这是以下代码的输出?
- angularjs - 切换路由时如何加载 ng-repeat?
- vue.js - 自定义可见的 vuetify 分页按钮
- c# - File.exists 给出一个空引用异常而不是返回 false。C#