Запретить разрешения на выполнение PowerShell Get-AzAutomationCertificate - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать пользовательскую роль читателя на Azure, которая не позволяет пользователю запускать команду PowerShell Get-AzAutomationCertificate. Я просмотрел параметры и удалил довольно много разрешений, связанных с чтением сертификатов от поставщика услуг автоматизации. Однако, похоже, этого все еще недостаточно.

Это параметры отказа, присутствующие в настраиваемой роли:

"notActions": [
 "Microsoft.Automation/automationAccounts/listKeys/action",
 "Microsoft.Automation/automationAccounts/certificates/read",
 "Microsoft.Automation/automationAccounts/certificates/getCount/action",
 "Microsoft.Automation/automationAccounts/jobs/read",
 "Microsoft.Automation/automationAccounts/jobs/runbookContent/action",
 "Microsoft.Automation/automationAccounts/credentials/read",
 "Microsoft.Automation/automationAccounts/runbooks/content/read",
 "Microsoft.Automation/automationAccounts/runbooks/read",
 "Microsoft.Automation/automationAccounts/python2Packages/read",
 "Microsoft.Automation/automationAccounts/python3Packages/read",
 "Microsoft.Automation/automationAccounts/privateEndpointConnectionProxies/read",
 "Microsoft.Automation/automationAccounts/connections/read",
 "Microsoft.Automation/automationAccounts/connectionTypes/read
]

Visual Description

Подробнее о команде: https://github.com/Azure/azure-powershell/blob/master/src/Automation/Automation/help/Get-AzAutomationCertificate.md

Есть идеи, как этого добиться?

Спасибо

1 Ответ

1 голос
/ 30 мая 2020

Во-первых, я хотел бы уточнить, что разрешение NotActions определяет операции управления, которые исключены из разрешенного Actions. См. Ссылку здесь .

Таким образом, если действие не включено в Actions, нет необходимости помещать его в NotActions, чтобы оно потеряло эффективность. В этом случае у пользователя не будет разрешения на выполнение действия.

Действие «Microsoft.Automation / automationAccounts / сертификаты / чтение» - это то, что вы хотите, чтобы команда PowerShell Get-AzAutomationCertificate стала эффективной. Обратите внимание, что он позволяет выполнить Get-AzAutomationCertificate, но не возвращает результатов.

Вот мой пример:

{
  "Name": "Custom Role 2",
  "Id": null,
  "IsCustom": true,
  "Description": "Don't allow for Get-AzAutomationCertificate",
  "Actions": [
  "Microsoft.Automation/automationAccounts/certificates/read",
  "Microsoft.Automation/automationAccounts/read"
  ],
  "NotActions": [
  "Microsoft.Automation/automationAccounts/certificates/read"
  ],
  "AssignableScopes": [
    "/subscriptions/{subscription id}"
  ]
}

Обратите внимание на примечание в ссылке выше:

Если пользователю назначена роль, исключающая операцию в NotActions, и назначена вторая роль, которая предоставляет доступ к той же операции, пользователю разрешается выполнять эту операцию. NotActions - это не правило запрета - это просто удобный способ создать набор разрешенных операций, когда необходимо исключить указанные c операции.

После обновления настраиваемой роли и ее назначения пользователю следует повторно открыть окно PowerShell и повторно войти в систему с пользователем. Тогда это сработает для вас.

...