Полагаю, вы хотите добавить MSI фабрики данных к Access policies
вашего ключевого вальта.
Вы получили ошибку, потому что вы использовали -ServicePrincipalName $df.DataFactoryId
в этой команде Set-AzKeyVaultAccessPolicy
, $df.DataFactoryId
- это resource id
фабрики данных, вам нужен Application ID(Client ID)
MSI.
Поэтому, если вы хотите использовать параметр -ServicePrincipalName
, ваша команда должна быть:
$appId = (Get-AzADServicePrincipal -ObjectId $df.Identity.PrincipalId).ApplicationId
Set-AzKeyVaultAccessPolicy -VaultName joykeyvault -ServicePrincipalName $appId -PermissionsToSecrets get
Приведенной выше команде требуется разрешение на получение участника службы в вашей Azure AD, если у вас нет этого разрешения, вы можете использовать команду (я рекомендую вам используйте этот):
Set-AzKeyVaultAccessPolicy -VaultName joykeyvault -ObjectId $df.Identity.PrincipalId -PermissionsToSecrets get -BypassObjectIdValidation
Если ваша фабрика данных уже создана, вы можете использовать Get-AzDataFactoryV2
, чтобы получить ее, а затем добавить ее в политики доступа.
$datafactory = Get-AzDataFactoryV2 -ResourceGroupName <group name> -Name <factory name>
Set-AzKeyVaultAccessPolicy -VaultName joykeyvault -ObjectId $datafactory.Identity.PrincipalId -PermissionsToSecrets get -BypassObjectIdValidation