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

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

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


person jschmitter    schedule 19.12.2017    source источник


Ответы (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. Мы можем назначить несколько ролей одному ИП.

Примечание.

Каждому субъекту службы необходимо Microsoft Authorization разрешение, иначе этот SP не войдет в Azure.

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

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

person Jason Ye    schedule 20.12.2017
comment
Разве нет необходимости назначать SP для политик доступа Key Vault? :) - person juunas; 20.12.2017
comment
@juunas, спасибо, вы правы, нам все еще нужно связать политику доступа к хранилищу ключей с SP. - person Jason Ye; 20.12.2017
comment
Да, роли в IAM предоставляют ему доступ к стороне ARM API KeyVault, но для доступа к KeyVault API, я думаю, требуется политика доступа. - person juunas; 20.12.2017
comment
Спасибо @ JasonYe-MSFT. У меня есть несколько дополнительных вопросов: 1) Могу ли я предоставить доступ к дочернему ресурсу (Microsoft.KeyVault / vaults / secrets / read) без предоставления доступа к родительскому ресурсу (Microsoft.KeyVault / vaults / read)? 2) В пространстве имен авторизации Microsoft я вижу 25 различных операций. Что из этого требуется субъекту службы просто для входа в систему и выполнения простой команды (при условии, что у него уже есть другие необходимые разрешения)? 3) кое-где вижу Microsoft.xxxxxx / xxxxxxx / action. Что такое / действие по сравнению с / *? - person jschmitter; 20.12.2017
comment
@jschmitter 1) мы не можем предоставить доступ к дочернему ресурсу без предоставления доступа к родительскому ресурсу. 2) мы можем предоставить SP все права на чтение для входа в Azure, Microsoft.Authorization/*/read. 3) Нет, /action как Microsoft.KeyVault/register/action или Microsoft.KeyVault/unregister/action, а не /*, всего лишь одна операция из этого. - person Jason Ye; 21.12.2017
comment
@jschmitter Просто проверяю, была ли предоставленная информация полезной. Пожалуйста, дайте мне знать, если вам нужна дополнительная помощь. - person Jason Ye; 22.12.2017