Sdílet prostřednictvím


Vytvoření nebo aktualizace vlastních rolí Azure pomocí Bicep

Pokud předdefinované role Azure nevyhovují konkrétním potřebám vaší organizace, můžete vytvořit vlastní role. Tento článek popisuje, jak vytvořit nebo aktualizovat vlastní roli pomocí Bicep.

Bicep je jazyk specifický pro doménu (DSL), který k nasazování prostředků Azure používá deklarativní syntaxi. Poskytuje stručnou syntaxi, spolehlivou bezpečnost typů a podporu pro opakované použití kódu. Bicep nabízí nejlepší prostředí pro vytváření obsahu pro řešení infrastruktury jako kódu v Azure.

Pokud chcete vytvořit vlastní roli, zadáte název role, oprávnění role a místo, kde se dá role použít. V tomto článku vytvoříte roli s názvem Vlastní role – čtenář RG s oprávněními k prostředkům, která je možné přiřadit v oboru předplatného nebo nižším.

Požadavky

Pokud chcete vytvořit vlastní roli, musíte mít oprávnění k vytváření vlastních rolí, například správce uživatelských přístupů.

Musíte mít také aktivní předplatné Azure. Pokud ho nemáte, můžete si před zahájením vytvořit bezplatný účet .

Kontrola souboru Bicep

Soubor Bicep použitý v tomto článku pochází ze šablon Rychlého startu Azure. Soubor Bicep má čtyři parametry a oddíl prostředků. Čtyři parametry jsou:

  • Pole akcí s výchozí hodnotou ["Microsoft.Resources/subscriptions/resourceGroups/read"].
  • notActions Pole s prázdnou výchozí hodnotou
  • Název role s výchozí hodnotou Custom Role - RG Reader.
  • Popis role s výchozí hodnotou Subscription Level Deployment of a Role Definition.

Obor, ve kterém je možné přiřadit tuto vlastní roli, je nastaven na aktuální předplatné.

Vlastní role vyžaduje jedinečné ID. ID lze vygenerovat pomocí funkce guid(). Vzhledem k tomu, že vlastní role také vyžaduje jedinečný zobrazovaný název tenanta, můžete tento název role použít jako parametr funkce guid() k vytvoření deterministického identifikátoru GUID. Deterministický identifikátor GUID je užitečný, pokud později potřebujete aktualizovat vlastní roli pomocí stejného souboru 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
    ]
  }
}

Prostředek definovaný v souboru Bicep je:

Nasazení souboru Bicep

  1. Uložte soubor Bicep jako main.bicep do místního počítače.

  2. Vytvořte proměnnou s názvem myActions s akcemi pro roliDefinition.

    $myActions='["Microsoft.Resources/subscriptions/resourceGroups/read"]'
    
  3. Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.

    az deployment sub create --location eastus --name customRole --template-file ./main.bicep --parameters actions=$myActions
    

Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.

Kontrola nasazených prostředků

Pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu ověřte, že se vytvořila vlastní role.

az role definition list --name "Custom Role - RG Reader"

Aktualizace vlastní role

Podobně jako při vytváření vlastní role můžete aktualizovat existující vlastní roli pomocí Bicep. Pokud chcete aktualizovat vlastní roli, musíte zadat roli, kterou chcete aktualizovat. Pokud jste dříve vytvořili vlastní roli v Bicep s jedinečným ID role, které je deterministické, můžete použít stejný soubor Bicep a zadat vlastní roli pomocí zobrazovaného názvu.

  1. Zadejte aktualizované akce.

    $myActions='["Microsoft.Resources/resources/read","Microsoft.Resources/subscriptions/resourceGroups/read"]'
    
  2. K aktualizaci vlastní role použijte Azure CLI nebo Azure PowerShell.

    az deployment sub create --location eastus --name customrole --template-file ./main.bicep --parameters actions=$myActions roleName="Custom Role - RG Reader"
    

    Poznámka:

    Rozšíření aktualizované vlastní role může trvat několik minut.

Vyčištění prostředků

Pokud už ji nepotřebujete, odeberte vlastní roli pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.

az role definition delete --name "Custom Role - RG Reader"

Další kroky