【问题标题】:Unable to retrieve keyvault secret with user assigned managed identity无法使用用户分配的托管标识检索 keyvault 机密
【发布时间】:2019-01-09 16:03:45
【问题描述】:

这是来自git的交叉帖子。
我有一个使用“Microsoft.Azure.Services.AppAuthentication”版本=“1.2.0-preview”和“Microsoft.Azure.KeyVault”版本=“3.0.2”的控制台应用程序。

我的 Windows 2019 VM 上有一个用户分配的托管标识。

已在我的 keyvault 上为托管身份分配了参与者角色分配,并读取到它所在的资源组。

我正在使用用户分配的托管身份,因为目的是在 kubernetes pod(使用 aad-pod 身份)中运行类似的应用程序。我有一个连接字符串环境变量设置为 AzureServicesAuthConnectionString RunAs=App;;TenantId=

当我尝试连接到 keyvault 以检索机密时,我得到了一个 Forbidden 异常:

未处理的异常:System.AggregateException:一个或多个错误 发生了。 (操作返回一个无效的状态码'Forbidden')---> Microsoft.Azure.KeyVault.Models.KeyVaultErrorException:操作 在返回无效状态代码“禁止” Microsoft.Azure.KeyVault.KeyVaultClient.GetSecretWithHttpMessagesAsync(字符串 vaultBaseUrl,字符串 secretName,字符串 secretVersion,字典`2 customHeaders, CancellationToken cancelToken) 在 Microsoft.Azure.KeyVault.KeyVaultClientExtensions.GetSecretAsync(IKeyVaultClient 操作、字符串 secretIdentifier、CancellationToken cancelToken) 在 msiauth.AzureStuff.Run() 中 C:\Users\aiadmin\src\azure\msiauth\tests.cs:第 50 行 --- 内部异常堆栈跟踪结束 --- 在 System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken 取消令牌)在 System.Threading.Tasks.Task.Wait() 在 msiauth.Program.Main(String[] args) 在 C:\Users\aiadmin\src\azure\msiauth\Program.cs:line 10

当我尝试使用“Microsoft.Azure.Management.ResourceManager”版本=“2.0.0-preview”创建资源组时,它工作正常,因此分配给用户的 MI 可以正常工作。

我尝试了完全相同的 keyvault 代码,但使用了系统分配的托管标识,它工作正常,因此权限很好,代码也可以工作。

有没有人能够在 .net core 中做到这一点?

【问题讨论】:

    标签: azure azure-sdk-.net


    【解决方案1】:

    从或向 KeyVault 读取或写入机密是对 Key Vault 本身的操作,根据访问策略集是否允许(或不允许)。

    您所指的参与者角色属于 Azure 资源管理器 RBAC 系统,并允许管理 KeyVault(例如分配访问策略)。

    很可能有效的身份同时具有 RBAC 分配和访问策略。不起作用的将需要访问策略(并且不需要 RBAC 分配)

    有关访问策略的更多信息,请参阅:https://docs.microsoft.com/en-us/azure/key-vault/key-vault-get-started#authorize

    【讨论】:

    • Azure 中的许多服务都有自己的访问控制,例如Key Vault、数据湖、SQL DB :)
    • 谢谢,我应该提到我也分配了访问策略。
    • @bunzab,你能弄明白吗?我有相同的问题。访问策略已设置,但仍为用户分配的 msi 禁止
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 2021-10-20
    • 2021-11-20
    • 1970-01-01
    • 2020-12-27
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多