Azure kubernetes - 多个托管身份?
Azure kubernetes - multiple managed identity?
我们计划在我们的单个 Azure kubernetes 集群上部署多个应用程序,每个应用程序都有自己的一组 Azure 资源 - 例如:Key vault、Storage。
我计划为每个应用程序配置单独的托管身份并提供对相关资源的访问权限。
我知道 AZURE AAD POD 标识是配置 Pod 以使用托管标识访问 Azure 资源的方法。
但是,如何将多个托管标识添加到 Azure kubernetes 集群中?这是执行权吗?
正如我之前提到的,我认为您不能向集群添加多个 MSI,您可以只使用 system-assigned MSI 或 user-assigned MSI。
参考 - Use managed identities in Azure Kubernetes Service
在你的情况下,如果你想使用不同的服务主体进行身份验证(本质上 MSI 也是 Azure 管理的服务主体),你可以创建多个 AD 应用程序以及服务主体。
然后在每个应用程序的代码中,使用ClientSecretCredential
进行身份验证。
ClientSecretCredential credential1 = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build();
然后使用凭据创建客户端,例如秘密客户端.
SecretClient secretClient = new SecretClientBuilder()
.vaultUrl("<your-key-vault-url>")
.credential(credential1)
.buildClient();
我们计划在我们的单个 Azure kubernetes 集群上部署多个应用程序,每个应用程序都有自己的一组 Azure 资源 - 例如:Key vault、Storage。
我计划为每个应用程序配置单独的托管身份并提供对相关资源的访问权限。
我知道 AZURE AAD POD 标识是配置 Pod 以使用托管标识访问 Azure 资源的方法。
但是,如何将多个托管标识添加到 Azure kubernetes 集群中?这是执行权吗?
正如我之前提到的,我认为您不能向集群添加多个 MSI,您可以只使用 system-assigned MSI 或 user-assigned MSI。
参考 - Use managed identities in Azure Kubernetes Service
在你的情况下,如果你想使用不同的服务主体进行身份验证(本质上 MSI 也是 Azure 管理的服务主体),你可以创建多个 AD 应用程序以及服务主体。
然后在每个应用程序的代码中,使用ClientSecretCredential
进行身份验证。
ClientSecretCredential credential1 = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build();
然后使用凭据创建客户端,例如秘密客户端.
SecretClient secretClient = new SecretClientBuilder()
.vaultUrl("<your-key-vault-url>")
.credential(credential1)
.buildClient();