Как узнать, какие операции / разрешения нужны моему основателю службы Azure

Я пытаюсь заблокировать своих участников службы Azure с минимальными разрешениями. Это может быть сделано путем создания пользовательских ролей. Но как определить пользовательские роли, как узнать, какие действия необходимы для выполнения определенной задачи? Например, если для учетной записи автоматизации необходимо выполнить несколько командлетов AzureRm в сценарии powershell (Get-AzureKeyVaultSecret, New-AzureRmContainerGroup, Get-AzureRmContextи т. д.), как узнать, какие "действия" выполняет каждая из этих команд?

Get-AzureRMProviderOperation * перечисляет все доступные действия (в настоящее время отображается список из 2969- немного подавляющее число для сортировки). Как мне определить, кто из них мне нужен?

1 ответ

Решение

Например, если вы хотите использовать учетную запись автоматизации Azure для запуска команды runbook
Get-AzureKeyVaultSecret, мы должны дать этому SP разрешения, такие как:

Microsoft Authorization: Microsoft Automation: Microsoft.Automation/automationAccounts/runbooks/read

Microsoft.KeyVault нужны эти разрешения:

Microsoft.KeyVault/vaults/read 
Microsoft.KeyVault/vaults/secrets/read
Microsoft.KeyVault/vaults/accessPolicies/write

Обычно мы можем установить роли для каждого провайдера. Например, Microsoft.KeyVaultМы хотим, чтобы SP мог обновить хранилище ключей или прочитать секреты, мы можем добавить Microsoft.KeyVault/vaults/write а также Microsoft.KeyVault/vaults/secrets/read а также Microsoft.KeyVault/vaults/read,

PS C:\Users\jason> Get-AzureRmProviderOperation * | ?{ $_.ProviderNamespace -eq 'Microsoft Key Vault' } | select Operation, OperationName

Operation                                               OperationName
---------                                               -------------
Microsoft.KeyVault/register/action                      Register Subscription
Microsoft.KeyVault/unregister/action                    Unregister Subscription
Microsoft.KeyVault/hsmPools/read                        View HSM pool
Microsoft.KeyVault/hsmPools/write                       Create or Update HSM pool
Microsoft.KeyVault/hsmPools/delete                      Delete HSM pool
Microsoft.KeyVault/hsmPools/joinVault/action            Join KeyVault to HSM pool
Microsoft.KeyVault/checkNameAvailability/read           Check Name Availability
Microsoft.KeyVault/vaults/read                          View Key Vault
Microsoft.KeyVault/vaults/write                         Update Key Vault
Microsoft.KeyVault/vaults/delete                        Delete Key Vault
Microsoft.KeyVault/vaults/deploy/action                 Use Vault for Azure Deployments
Microsoft.KeyVault/vaults/secrets/read                  View Secret Properties
Microsoft.KeyVault/vaults/secrets/write                 Update Secret
Microsoft.KeyVault/vaults/accessPolicies/write          Update Access Policy
Microsoft.KeyVault/operations/read                      Available Key Vault Operations
Microsoft.KeyVault/deletedVaults/read                   View Soft Deleted Vaults
Microsoft.KeyVault/locations/operationResults/read      Check Operation Result
Microsoft.KeyVault/locations/deletedVaults/read         View Soft Deleted Key Vault
Microsoft.KeyVault/locations/deletedVaults/purge/action Purge Soft Deleted Key Vault

После этого мы можем назначить эту роль вашему SP, которого вы хотите Get-AzureKeyVaultSecret, Мы можем назначить много ролей одному SP.

Примечание:

Каждый основной принцип обслуживания Microsoft Authorization разрешение, или этот SP не будет входить в Azure.

Обычно команда Azure PowerShell Get нужно разрешение на чтение, New, set а также Update нужно разрешение на запись.

Надеюсь это поможет:)

Другие вопросы по тегам