通过 SPN 连接到 Azure 密钥保管库



我需要通过服务主体访问 Azure 密钥保管库的帮助。我目前有两个订阅需要通信和访问另一个订阅的密钥保管库,但为此,我需要通过 SPN 进行连接。我已经查看了Get-AzureRmKeyVault的文档,它无法通过我能找到的 SPN 进行身份验证。

如果有人有解决方案,我将不胜感激!

不确定你到底是什么意思access keyvault,在 Azure 密钥保管库中,有Management planeData plane,它们使用不同的访问控制机制。

如果希望服务主体执行Management plane操作(例如,设置密钥保管库的标记),则需要在门户中为其Access control (IAM)密钥保管库提供角色。如果要执行Data plane操作(例如,对密钥保管库中的密钥、机密、证书进行操作),则需要将具有正确权限的服务主体添加到密钥保管库的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 

然后你可以像Update-AzKeyVault一样执行Management plane操作,或者像Get-AzKeyVaultSecret这样的Data plane操作。

若要访问其他订阅中的密钥保管库,只需使用以下命令选择订阅。

Set-AzContext -Subscription <subscription-id>

我注意到您似乎正在使用旧的AzureRm模块,它已被弃用,不会再更新,我建议您使用新的Az模块,按照将Azure PowerShell从AzureRM迁移到Az。

相关内容

  • 没有找到相关文章

最新更新