Подключение к Azure KeyVault через SPN - PullRequest
0 голосов
/ 06 мая 2020

Мне нужна помощь в доступе к Azure KeyVault через участника-службы. В настоящее время у меня есть две подписки, которым необходимо связываться и получать доступ к Key Vault другой подписки, но для этого мне потребуется подключение через SPN. Я просмотрел документацию для Get-AzureRmKeyVault, и она не дает возможности аутентифицироваться через SPN из того, что я могу найти.

Если у кого-то есть решение, я был бы очень признателен!

1 Ответ

0 голосов
/ 06 мая 2020

Не уверен, что вы на самом деле имеете в виду access keyvault, в azure keyvault есть Management plane и Data 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 

Затем вы можете выполнять операции Management plane, например Update-AzKeyVault, или операции Data plane, например Get-AzKeyVaultSecret.

Чтобы получить доступ к хранилищу ключей в другой подписке, просто используйте команду ниже, чтобы выбрать подписку.

Set-AzContext -Subscription <subscription-id>

И я заметил, что вы используете старый модуль AzureRm, он устарел и будет больше не обновляться, я рекомендую вам использовать новый модуль Az, следуйте инструкциям Migrate Azure PowerShell из AzureRM в Az .

...