Aangepaste Azure-rollen maken of bijwerken met Bicep
Als de ingebouwde Azure-rollen niet voldoen aan de specifieke behoeften van uw organisatie, kunt u uw eigen aangepaste rollen maken. In dit artikel wordt beschreven hoe u een aangepaste rol maakt of bijwerkt met Bicep.
Bicep is een domeinspecifieke taal (DSL) die declaratieve syntaxis gebruikt om Azure-resources te implementeren. Deze taal voorziet in een beknopte syntaxis, betrouwbare typeveiligheid en ondersteuning voor hergebruik van code. Bicep biedt de beste ontwerpervaring voor uw infrastructuur als code-oplossingen in Azure.
Als u een aangepaste rol wilt maken, geeft u een rolnaam, rolmachtigingen en waar de rol kan worden gebruikt. In dit artikel maakt u een rol met de naam Aangepaste rol - RG Reader met resourcemachtigingen die kunnen worden toegewezen aan een abonnementsbereik of lager.
Vereisten
Als u een aangepaste rol wilt maken, moet u machtigingen hebben om aangepaste rollen te maken, zoals Administrator voor gebruikerstoegang.
U moet ook een actief Azure-abonnement hebben. Als u nog geen account hebt, kunt u een gratis account maken voordat u begint.
Het Bicep-bestand controleren
Het Bicep-bestand dat in dit artikel wordt gebruikt, is afkomstig van Azure-quickstartsjablonen. Het Bicep-bestand heeft vier parameters en een resourcesectie. De vier parameters zijn:
- Matrix van acties met een standaardwaarde van
["Microsoft.Resources/subscriptions/resourceGroups/read"]
. - Matrix van
notActions
met een lege standaardwaarde. - Rolnaam met een standaardwaarde van
Custom Role - RG Reader
. - Rolbeschrijving met een standaardwaarde van
Subscription Level Deployment of a Role Definition
.
Het bereik waaraan deze aangepaste rol kan worden toegewezen, is ingesteld op het huidige abonnement.
Voor een aangepaste rol is een unieke id vereist. De id kan worden gegenereerd met de guid() -functie. Omdat een aangepaste rol ook een unieke weergavenaam voor de tenant vereist, kunt u de rolnaam als parameter voor de guid()
functie gebruiken om een deterministische GUID te maken. Een deterministische GUID is handig als u de aangepaste rol later moet bijwerken met hetzelfde Bicep-bestand.
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
]
}
}
De resource die is gedefinieerd in het Bicep-bestand is:
Het Bicep-bestand implementeren
Sla het Bicep-bestand op als main.bicep op uw lokale computer.
Maak een variabele met de naam myActions met de acties voor de roleDefinition.
$myActions='["Microsoft.Resources/subscriptions/resourceGroups/read"]'
Implementeer het Bicep-bestand met behulp van Azure CLI of Azure PowerShell.
az deployment sub create --location eastus --name customRole --template-file ./main.bicep --parameters actions=$myActions
Wanneer de implementatie is voltooid, ziet u een bericht waarin wordt aangegeven dat de implementatie is voltooid.
Geïmplementeerde resources bekijken
Gebruik Azure Portal, Azure CLI of Azure PowerShell om te controleren of de aangepaste rol is gemaakt.
az role definition list --name "Custom Role - RG Reader"
Een aangepaste rol bijwerken
Net als bij het maken van een aangepaste rol kunt u een bestaande aangepaste rol bijwerken met Bicep. Als u een aangepaste rol wilt bijwerken, moet u de rol opgeven die u wilt bijwerken. Als u eerder de aangepaste rol in Bicep hebt gemaakt met een unieke rol-id die deterministisch is, kunt u hetzelfde Bicep-bestand gebruiken en de aangepaste rol opgeven door alleen de weergavenaam te gebruiken.
Geef de bijgewerkte acties op.
$myActions='["Microsoft.Resources/resources/read","Microsoft.Resources/subscriptions/resourceGroups/read"]'
Gebruik Azure CLI of Azure PowerShell om de aangepaste rol bij te werken.
az deployment sub create --location eastus --name customrole --template-file ./main.bicep --parameters actions=$myActions roleName="Custom Role - RG Reader"
Notitie
Het kan enkele minuten duren voordat de bijgewerkte aangepaste rol is doorgegeven.
Resources opschonen
Wanneer u de aangepaste rol niet meer nodig hebt, gebruikt u Azure Portal, Azure CLI of Azure PowerShell.
az role definition delete --name "Custom Role - RG Reader"