通过 SPN 连接到 Azure KeyVault

问题描述 投票:0回答:1

我需要帮助通过服务委托人访问 Azure KeyVault。我目前有两个订阅,需要进行通信并访问另一个订阅的 Key Vault,但要做到这一点,我需要通过 SPN 进行连接。我查看了 Get-AzureRmKeyVault 它没有提供通过SPN认证的方法,从我可以找到。

如果有人有解决方案,我将非常感激!

azure powershell azure-keyvault service-principal
1个回答
0
投票

不知道你实际上是什么意思 access keyvault,在 azure keyvault 中,有 Management planeData plane,他们使用不同的访问控制机制。

如果你想让你的服务委托人做 Management plane 操作(例如设置你的keyvault的标签),你需要给它一个作用在 Access control (IAM) 你的钥匙库中的门户。如果你想做 Data plane 操作(例如对keyvault中的密钥、秘密、证书进行操作),你需要将具有正确权限的服务委托人添加到 Access policies 的钥匙库。

有关钥匙库的访问控制的更多细节,你可以检查 - 钥匙库的访问控制。安全进入钥匙库.

所以请确认你的服务委托人已经有了正确的权限,然后使用下面的命令。

$azureAplicationId ="<application-id>"
$azureTenantId= "<tenant-id>"
$azurePassword = ConvertTo-SecureString "<client-secret>" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)
Connect-AzAccount -Credential $psCred -TenantId $azureTenantId -ServicePrincipal 

然后你可以执行 Management plane 诸如此类的操作 Update-AzKeyVaultData plane 诸如此类的操作 Get-AzKeyVaultSecret.

要在不同的订阅中访问keyvault,只需使用下面的命令来选择订阅。

Set-AzContext -Subscription <subscription-id>

我注意到似乎你正在使用旧的 AzureRm 模块,它已经被废弃,不会再更新了,我建议你使用新的 Az 模块,遵循 将Azure PowerShell从AzureRM迁移到Azure。.

© www.soinside.com 2019 - 2024. All rights reserved.