Tworzenie lub aktualizowanie ról niestandardowych platformy Azure przy użyciu Bicep
Jeśli wbudowane role platformy Azure nie spełniają konkretnych potrzeb organizacji, możesz utworzyć własne role niestandardowe. W tym artykule opisano sposób tworzenia lub aktualizowania roli niestandardowej przy użyciu Bicep.
Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów platformy Azure. Zapewnia zwięzłą składnię, niezawodne bezpieczeństwo typów i obsługę ponownego użycia kodu. Bicep oferuje najlepsze środowisko tworzenia rozwiązań infrastruktury jako kodu na platformie Azure.
Aby utworzyć rolę niestandardową, należy określić nazwę roli, uprawnienia roli i miejsce, w którym można użyć roli. W tym artykule utworzysz rolę o nazwie Rola niestandardowa — czytelnik grupy zasobów z uprawnieniami do zasobów, które można przypisać w zakresie subskrypcji lub niższym.
Wymagania wstępne
Aby utworzyć rolę niestandardową, musisz mieć uprawnienia do tworzenia ról niestandardowych, takich jak administrator dostępu użytkowników.
Musisz również mieć aktywną subskrypcję platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto przed rozpoczęciem.
Przejrzyj plik Bicep
Plik Bicep używany w tym artykule pochodzi z szablonów szybkiego startu platformy Azure. Plik Bicep ma cztery parametry i sekcję zasobów. Cztery parametry to:
- Tablica akcji z wartością
["Microsoft.Resources/subscriptions/resourceGroups/read"]
domyślną . - Tablica z
notActions
pustą wartością domyślną. - Nazwa roli z wartością
Custom Role - RG Reader
domyślną . - Opis roli z wartością
Subscription Level Deployment of a Role Definition
domyślną .
Zakres, w którym można przypisać tę rolę niestandardową, jest ustawiony na bieżącą subskrypcję.
Rola niestandardowa wymaga unikatowego identyfikatora. Identyfikator można wygenerować za pomocą funkcji guid(). Ponieważ rola niestandardowa wymaga również unikatowej nazwy wyświetlanej dla dzierżawy, możesz użyć nazwy roli jako parametru guid()
dla funkcji, aby utworzyć deterministyczny identyfikator GUID. Deterministyczny identyfikator GUID jest przydatny, jeśli później trzeba zaktualizować rolę niestandardową przy użyciu tego samego pliku Bicep.
targetScope = 'subscription'
@description('Array of actions for the roleDefinition')
param actions array = [
'Microsoft.Resources/subscriptions/resourceGroups/read'
]
@description('Array of notActions for the roleDefinition')
param notActions array = []
@description('Friendly name of the role definition')
param roleName string = 'Custom Role - RG Reader'
@description('Detailed description of the role definition')
param roleDescription string = 'Subscription Level Deployment of a Role Definition'
var roleDefName = guid(roleName)
resource roleDef 'Microsoft.Authorization/roleDefinitions@2022-04-01' = {
name: roleDefName
properties: {
roleName: roleName
description: roleDescription
type: 'customRole'
permissions: [
{
actions: actions
notActions: notActions
}
]
assignableScopes: [
subscription().id
]
}
}
Zasób zdefiniowany w pliku Bicep to:
Wdrażanie pliku Bicep
Zapisz plik Bicep jako main.bicep na komputerze lokalnym.
Utwórz zmienną o nazwie myActions z akcjami roliDefinition.
$myActions='["Microsoft.Resources/subscriptions/resourceGroups/read"]'
Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az deployment sub create --location eastus --name customRole --template-file ./main.bicep --parameters actions=$myActions
Po zakończeniu wdrażania powinien zostać wyświetlony komunikat informujący o pomyślnym wdrożeniu.
Przeglądanie wdrożonych zasobów
Użyj witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby sprawdzić, czy rola niestandardowa została utworzona.
az role definition list --name "Custom Role - RG Reader"
Aktualizacja roli niestandardowej
Podobnie jak w przypadku tworzenia roli niestandardowej, możesz zaktualizować istniejącą rolę niestandardową przy użyciu Bicep. Aby zaktualizować rolę niestandardową, musisz określić rolę, którą chcesz zaktualizować. Jeśli wcześniej utworzono rolę niestandardową w aplikacji Bicep z unikatowym identyfikatorem roli deterministycznym, możesz użyć tego samego pliku Bicep i określić rolę niestandardową tylko przy użyciu nazwy wyświetlanej.
Określ zaktualizowane akcje.
$myActions='["Microsoft.Resources/resources/read","Microsoft.Resources/subscriptions/resourceGroups/read"]'
Aktualizowanie roli niestandardowej za pomocą interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az deployment sub create --location eastus --name customrole --template-file ./main.bicep --parameters actions=$myActions roleName="Custom Role - RG Reader"
Uwaga
Propagacja zaktualizowanej roli niestandardowej może potrwać kilka minut.
Czyszczenie zasobów
Gdy rola niestandardowa nie jest już potrzebna, użyj witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az role definition delete --name "Custom Role - RG Reader"