Azure RBAC -roolien nimet luettavammiksi Bicep-malleissa

Kirjoittaja: Jani Nevalainen

Azure RBAC -roolien nimien tekeminen luettavammiksi Bicep-malleissa.
Jos teet Azure-resursseja Bicepilla, olet varmaan törmännyt RBAC-rooleihin. Sisäänrakennetun roolin lisääminen vaatii usein roolin ID:n (GUID), mikä tekee Bicepistä nopeasti hankalalukuisen ja ylläpidosta tympeää.
Tämän saa siistimmäksi PowerShell-skriptillä, joka hakee roolit ja generoi niistä Bicep-tiedoston. Lopputuloksena saat roletypes.bicep-tiedoston, jossa on Roles-objekti. Jokaiselle roolille tulee avain, jonka nimi on “siivottu” muuttujakelpoiseksi:
# Run the Azure CLI command to list role definitions and store the output in a variable
$roleDefinitions = az role definition list | ConvertFrom-Json
# Initialize the output string with the opening of the Roles object
$output = "@export()`nvar Roles = {"
# Loop through each role definition to construct the body of the Roles object
foreach ($role in $roleDefinitions) {
# Remove characters not allowed in variable names and construct the line
$roleName = $role.roleName -replace '[()./-]', '' -replace ' ', ''
$output += "`n ${roleName}: '$($role.name)'"
}
# Close the Roles object
$output += "`n}"
# Output to a file
$output | Out-File -FilePath roletypes.bicep
Skripti hakee nykyiset roolit, poistaa nimistä erikoismerkit ja välilyönnit ja lisää ne Roles-muuttujaan.
Kun tiedosto on luotu, ota se käyttöön Bicep-mallissa näin:
@description('List of all Azure RBAC roles')
import {
Roles
} from 'roletypes.bicep'
Ja sitten voit viitata rooleihin selkeästi nimellä GUIDin sijaan:
roleDefinitionIds: [
Roles.Owner
]
Käytännön huomioita
- Tallenna
roletypes.bicepversionhallintaan. Silloin muutokset näkyvät review’ssa. - Jos käytät myös omia (custom) rooleja, varmista että erotat ne selkeästi sisäänrakennetuista rooleista.
- Aja skripti uudelleen silloin tällöin, jotta uudet Azuren sisäänrakennetut roolit tulevat mukaan.
Aiheeseen liittyviä artikkeleita

Mukautetut mittarit Application Insightsiin REST API:lla
Miten hyödyntää mukautettuja mittareita Application Insightsissa paremman havainnoitavuuden saavuttamiseksi.


Bicep Local Extensions - mistä on kyse?
Katsaus Azure Bicepin Local Extensions -toimintoon, kun teet infraa koodina.


Azure Change Analysis – etsi syy, joka rikkoi sovelluksesi
Azure Change Analysisin käyttäminen infrastruktuurimuutosten seurantaan.
