Azure Kubernetes-多个托管身份?

时间:2020-09-10 14:17:09

标签: azure kubernetes azure-active-directory azure-kubernetes azure-managed-identity

我们计划在单个Azure kubernetes群集上部署多个应用程序,每个应用程序将具有自己的一组Azure资源-例如:密钥库,存储。

我计划为每个应用程序提供单独的托管身份,并提供对相关资源的访问。

我知道AZURE AAD POD标识是配置窗格以利用托管身份访问Azure资源的方法。

但是如何将多个托管身份添加到Azure kubernetes群集中?这是实施的权利吗?

1 个答案:

答案 0 :(得分:1)

正如我之前提到的,我认为您不能向集群添加多个MSI,而只能使用系统分配的MSI或用户分配的MSI。

参考-Use managed identities in Azure Kubernetes Service

在这种情况下,如果要使用其他服务主体进行身份验证(本质上MSI也是由Azure管理的服务主体),则可以与服务主体一起创建多个AD Apps。

参考-How to: Use the portal to create an Azure AD application and service principal that can access resources

然后在每个应用程序的代码中,使用ClientSecretCredential进行身份验证。

ClientSecretCredential credential1 = new ClientSecretCredentialBuilder()
     .tenantId(tenantId)
     .clientId(clientId)
     .clientSecret(clientSecret)
     .build();

然后使用凭据创建客户端,例如SecretClient。

SecretClient secretClient = new SecretClientBuilder()
    .vaultUrl("<your-key-vault-url>")
    .credential(credential1)
    .buildClient();