Azure KeyVault:SPN KeyVault 访问被拒绝

Azure KeyVault: SPN KeyVault Access Denied

我在 VSTS 中使用下面的 Azure Powershell 命令。

(Get-AzureKeyVaultSecret -vaultName "debugkv" -name "CoreConfig-StorageAccount-AccessKey")

我在 VSTS 中 运行 时收到 ##[error]Access denied 错误,但在本地它工作正常。

我已经在 KV 的访问策略中添加了 SPN,并且还具有机密的 GET 和 SET 权限。

需要帮助解决问题。

对于 link VSTS,您需要授予在 VSTS 中形成服务端点的服务主体访问密钥库的权限;你已经知道了。

可能会造成混淆的是,您可以根据您的用例分配应用程序和服务主体以访问密钥保管库。因此,您必须确保将正确的对象分配给访问策略。

确保分配正确对象的最佳方法是通过 Azure Powershell 进行分配。

运行 已登录 Azure Powershell 会话:

$spObjectId = Get-AzureRmAdServicePrincipal -SearchString <ServicePrincipalName> | Foreach-Object {$_.Id}

Set-AzureRmKeyVaultAccessPolicy -VaultName <VaultName> -ObjectId $spObjectId -PermissionsToSecrets Get,Set

如果您想查看访问策略的更多详细信息(objectid、权限等),您也可以通过 Powershell 获取这些信息:

Get-AzureRmKeyVault -VaultName <VaultName> | Foreach-Object {$_.AccessPolicies}