通过 SPN 连接到 Azure KeyVault
Connecting to Azure KeyVault via SPN
我需要有关通过服务主体访问 Azure KeyVault 的帮助。我目前有两个订阅需要通信和访问另一个订阅的 Key Vault,但为了这样做,我需要通过 SPN 进行连接。我查看了 Get-AzureRmKeyVault
的文档,它没有提供通过我能找到的 SPN 进行身份验证的方法。
如果有人有解决方案,我将不胜感激!
不确定你的意思 access keyvault
,在 azure keyvault 中,有 Management plane
和 Data plane
,它们使用不同的访问控制机制。
如果您希望您的服务主体执行 Management plane
操作(例如,设置您的密钥保管库的标签),您需要在门户中的密钥保管库的 Access control (IAM)
中赋予它一个角色。如果您想进行 Data plane
操作(例如,对密钥库中的密钥、机密、证书进行操作),您需要将具有正确权限的服务主体添加到密钥库的 Access policies
。
关于keyvault访问控制的更多细节,你可以查看- Secure access to a key vault.
因此请确保您的服务主体已经拥有正确的权限,然后使用下面的命令。
$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
, or the Data plane
operations like Get-AzKeyVaultSecret
.
那样做Management plane
操作
要访问不同订阅中的密钥库,只需使用下面的命令select订阅。
Set-AzContext -Subscription <subscription-id>
而且我注意到你似乎在使用旧的 AzureRm
模块,它已被弃用并且不会再更新,我建议你使用新的 Az
模块,按照 Migrate Azure PowerShell from AzureRM to Az.
我需要有关通过服务主体访问 Azure KeyVault 的帮助。我目前有两个订阅需要通信和访问另一个订阅的 Key Vault,但为了这样做,我需要通过 SPN 进行连接。我查看了 Get-AzureRmKeyVault
的文档,它没有提供通过我能找到的 SPN 进行身份验证的方法。
如果有人有解决方案,我将不胜感激!
不确定你的意思 access keyvault
,在 azure keyvault 中,有 Management plane
和 Data plane
,它们使用不同的访问控制机制。
如果您希望您的服务主体执行 Management plane
操作(例如,设置您的密钥保管库的标签),您需要在门户中的密钥保管库的 Access control (IAM)
中赋予它一个角色。如果您想进行 Data plane
操作(例如,对密钥库中的密钥、机密、证书进行操作),您需要将具有正确权限的服务主体添加到密钥库的 Access policies
。
关于keyvault访问控制的更多细节,你可以查看- Secure access to a key vault.
因此请确保您的服务主体已经拥有正确的权限,然后使用下面的命令。
$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
, or the Data plane
operations like Get-AzKeyVaultSecret
.
Management plane
操作
要访问不同订阅中的密钥库,只需使用下面的命令select订阅。
Set-AzContext -Subscription <subscription-id>
而且我注意到你似乎在使用旧的 AzureRm
模块,它已被弃用并且不会再更新,我建议你使用新的 Az
模块,按照 Migrate Azure PowerShell from AzureRM to Az.