Přiřazení rolí Azure pomocí Azure CLI

Řízení přístupu na základě role v Azure (Azure RBAC) je autorizační systém, který používáte ke správě přístupu k prostředkům Azure. Chcete-li udělit přístup, přiřaďte role uživatelům, skupinám, instančním objektům nebo spravovaným identitám v konkrétním rozsahu. Tento článek popisuje, jak přiřadit role pomocí Azure CLI.

Požadavky

Abyste mohli přiřadit role, musíte mít:

Postup přiřazení role Azure

Přiřazení role se skládá ze tří prvků: objekt zabezpečení, definice role a obor.

Krok 1: Určení, kdo potřebuje přístup

Roli můžete přiřadit uživateli, skupině, instančnímu objektu nebo spravované identitě. Pokud chcete přiřadit roli, možná budete muset zadat jedinečné ID objektu. ID má formát: 11111111-1111-1111-1111-111111111111. ID můžete získat pomocí webu Azure Portal nebo Azure CLI.

Uživatel

Pro uživatele Azure AD získejte hlavní název uživatele, například patlong@contoso.com ID objektu uživatele. K získání ID objektu můžete použít az ad user show.

az ad user show --id "{principalName}" --query "id" --output tsv

Skupina

Pro skupinu Azure AD potřebujete ID objektu skupiny. K získání ID objektu můžete použít příkaz az ad group show nebo az ad group list.

az ad group show --group "{groupName}" --query "id" --output tsv

Instanční objekt

Pro instanční objekt Azure AD (identita používaná aplikací) potřebujete ID instančního objektu. K získání ID objektu můžete použít příkaz az ad sp list. Pro instanční objekt použijte ID objektu, nikoli ID aplikace.

az ad sp list --all --query "[].{displayName:displayName, id:id}" --output tsv
az ad sp list --display-name "{displayName}"

Spravovaná identita

Pro spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem potřebujete ID objektu. K získání ID objektu můžete použít příkaz az ad sp list.

az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'"

Pokud chcete jenom zobrazit seznam spravovaných identit přiřazených uživatelem, můžete použít příkaz az identity list.

az identity list

Krok 2: Výběr příslušné role

Oprávnění se seskupují do rolí. Můžete si vybrat ze seznamu několika předdefinovaných rolí Azure nebo můžete použít vlastní role. Osvědčeným postupem je udělit přístup s nejnižšími potřebnými oprávněními, takže se vyhněte přiřazení širší role.

K výpisu rolí a získání jedinečného ID role můžete použít příkaz az role definition list.

az role definition list --query "[].{name:name, roleType:roleType, roleName:roleName}" --output tsv

Tady je postup, jak zobrazit podrobnosti o konkrétní roli.

az role definition list --name "{roleName}"

Další informace najdete v tématu Výpis definic rolí Azure.

Krok 3: Identifikace požadovaného oboru

Azure poskytuje čtyři úrovně rozsahu: prostředek, skupinu prostředků, předplatné a skupinu pro správu. Osvědčeným postupem je udělit přístup s nejnižšími potřebnými oprávněními, abyste se vyhnuli přiřazení role v širším rozsahu. Další informace o oboru najdete v tématu Vysvětlení oboru.

Obor prostředku

Pro rozsah prostředků potřebujete ID prostředku. ID prostředku najdete tak, že se podíváte na vlastnosti prostředku na webu Azure Portal. ID prostředku má následující formát.

/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{resourceName}

Rozsah skupiny prostředků

Pro obor skupiny prostředků potřebujete název skupiny prostředků. Název najdete na stránce Skupiny prostředků na webu Azure Portal nebo můžete použít příkaz az group list.

az group list --query "[].{name:name}" --output tsv

Rozsah předplatného

Pro rozsah předplatného potřebujete ID předplatného. ID najdete na stránce Předplatná na webu Azure Portal nebo můžete použít příkaz az account list.

az account list --query "[].{name:name, id:id}" --output tsv

Obor skupiny pro správu

Pro obor skupiny pro správu potřebujete název skupiny pro správu. Název najdete na stránce Skupiny pro správu na webu Azure Portal nebo můžete použít příkaz az account management-group list.

az account management-group list --query "[].{name:name, id:id}" --output tsv

Krok 4: Přiřazení role

K přiřazení role použijte příkaz az role assignment create . V závislosti na oboru má příkaz obvykle jeden z následujících formátů.

Obor prostředku

az role assignment create --assignee "{assignee}" \
--role "{roleNameOrId}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{resourceName}"

Rozsah skupiny prostředků

az role assignment create --assignee "{assignee}" \
--role "{roleNameOrId}" \
--resource-group "{resourceGroupName}"

Rozsah předplatného

az role assignment create --assignee "{assignee}" \
--role "{roleNameOrId}" \
--subscription "{subscriptionNameOrId}"

Obor skupiny pro správu

az role assignment create --assignee "{assignee}" \
--role "{roleNameOrId}" \
--scope "/providers/Microsoft.Management/managementGroups/{managementGroupName}"

Následující příklad ukazuje příklad výstupu při přiřazení role Přispěvatel virtuálních počítačů uživateli v oboru skupiny prostředků.

{
  "canDelegate": null,
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
  "name": "{roleAssignmentId}",
  "principalId": "{principalId}",
  "principalType": "User",
  "resourceGroup": "{resourceGroupName}",
  "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c",
  "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "type": "Microsoft.Authorization/roleAssignments"
}

Přiřazení příkladů rolí

Přiřazení role pro všechny kontejnery objektů blob v oboru prostředků účtu úložiště

Přiřadí roli Přispěvatel dat objektů blob úložiště instančnímu objektu s ID objektu 55555555-5555-5555-5555-5555555555555 v oboru prostředku pro účet úložiště s názvem storage12345.

az role assignment create --assignee "55555555-5555-5555-5555-555555555555" \
--role "Storage Blob Data Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345"

Přiřazení role pro konkrétní obor prostředků kontejneru objektů blob

Přiřadí roli Přispěvatel dat objektů blob úložiště instančnímu objektu s ID objektu 55555555-5555-5555-5555-5555555555555 v oboru prostředku kontejneru objektů blob s názvem blob-container-01.

az role assignment create --assignee "55555555-5555-5555-5555-555555555555" \
--role "Storage Blob Data Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01"

Přiřazení role pro skupinu v určitém oboru prostředků virtuální sítě

Přiřadí roli Přispěvatel virtuálních počítačů skupině týmu Ann Mack s ID 22222222-2222-2222-2222-22222222222 v oboru zdrojů pro virtuální síť s názvem farma-sales-project-network.

az role assignment create --assignee "22222222-2222-2222-2222-222222222222" \
--role "Virtual Machine Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network"

Přiřazení role pro uživatele v oboru skupiny prostředků

Přiřadí roli patlong@contoso.comPřispěvatel virtuálních počítačů uživateli v oboru skupiny prostředků pro prodej farmaceutu.

az role assignment create --assignee "patlong@contoso.com" \
--role "Virtual Machine Contributor" \
--resource-group "pharma-sales"

Přiřazení role pro uživatele pomocí jedinečného ID role v oboru skupiny prostředků

Existuje několik časů, kdy se může změnit název role, například:

  • Používáte vlastní roli a rozhodnete se změnit název.
  • Používáte roli preview, která má v názvu (Preview). Po uvolnění role se role přejmenuje.

I když je role přejmenována, ID role se nezmění. Pokud k vytváření přiřazení rolí používáte skripty nebo automatizaci, doporučujeme místo názvu role použít jedinečné ID role. Proto pokud je role přejmenována, vaše skripty budou pravděpodobně fungovat.

Následující příklad přiřadí uživateli roli patlong@contoso.comPřispěvatel virtuálních počítačů v oboru skupiny prostředků prodeje farmaceutu.

az role assignment create --assignee "patlong@contoso.com" \
--role "9980e02c-c2be-4d73-94e8-173b1dc7cf3c" \
--resource-group "pharma-sales"

Přiřazení role pro všechny kontejnery objektů blob v oboru skupiny prostředků

Přiřadí roli Přispěvatel dat objektů blob úložiště instančnímu objektu s ID objektu 55555555-5555-5555-5555-5555555555555 v oboru skupiny prostředků Example-Storage-rg .

az role assignment create --assignee "55555555-5555-5555-5555-555555555555" \
--role "Storage Blob Data Contributor" \
--resource-group "Example-Storage-rg"

Případně můžete zadat plně kvalifikovanou skupinu prostředků pomocí parametru --scope :

az role assignment create --assignee "55555555-5555-5555-5555-555555555555" \
--role "Storage Blob Data Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg"

Přiřazení role pro aplikaci v oboru skupiny prostředků

Přiřadí roli Přispěvatel virtuálního počítače k aplikaci s ID objektu instančního objektu 4444444-4444-4444-4444-44444444444 v oboru skupiny prostředků prodeje farmaceutu .

az role assignment create --assignee "44444444-4444-4444-4444-444444444444" \
--role "Virtual Machine Contributor" \
--resource-group "pharma-sales"

Přiřazení role pro nový instanční objekt v oboru skupiny prostředků

Pokud vytvoříte nový instanční objekt a okamžitě se pokusíte přiřadit roli k danému instančnímu objektu, přiřazení této role může v některých případech selhat. Pokud například pomocí skriptu vytvoříte novou spravovanou identitu a pak se pokusíte přiřadit roli k danému instančnímu objektu, přiřazení role může selhat. Důvodem tohoto selhání je pravděpodobně zpoždění replikace. Instanční objekt se vytvoří v jedné oblasti; Přiřazení role však může nastat v jiné oblasti, která ještě nereplikovala instanční objekt. Pokud chcete tento scénář vyřešit, měli byste při vytváření přiřazení role zadat typ objektu zabezpečení.

Chcete-li přiřadit roli, použijte příkaz az role assignment create, zadejte hodnotu pro --assignee-object-ida pak nastavte --assignee-principal-type hodnotu ServicePrincipal.

az role assignment create --assignee-object-id "{assigneeObjectId}" \
--assignee-principal-type "{assigneePrincipalType}" \
--role "{roleNameOrId}" \
--resource-group "{resourceGroupName}" \
--scope "/subscriptions/{subscriptionId}"

Následující příklad přiřadí roli Přispěvatel virtuálních počítačů spravované identitě msi-test v oboru skupiny prostředků farmaceutická prodej :

az role assignment create --assignee-object-id "33333333-3333-3333-3333-333333333333" \
--assignee-principal-type "ServicePrincipal" \
--role "Virtual Machine Contributor" \
--resource-group "pharma-sales"

Přiřazení role pro uživatele v oboru předplatného

Přiřadí uživateli roli annm@example.comČtenář v oboru předplatného.

az role assignment create --assignee "annm@example.com" \
--role "Reader" \
--subscription "00000000-0000-0000-0000-000000000000"

Přiřazení role pro skupinu v oboru předplatného

Přiřadí roli Čtenář skupině Týmu Ann Mack s ID 222222222-2222-2222-2222-22222-222222222222 v oboru předplatného.

az role assignment create --assignee "22222222-2222-2222-2222-222222222222" \
--role "Reader" \
--subscription "00000000-0000-0000-0000-000000000000"

Přiřazení role pro všechny kontejnery objektů blob v oboru předplatného

Přiřadí uživateli roli alain@example.comČtenář dat objektů blob služby Storage v oboru předplatného.

az role assignment create --assignee "alain@example.com" \
--role "Storage Blob Data Reader" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000"

Přiřazení role pro uživatele v oboru skupiny pro správu

Přiřadí uživateli roli alain@example.comČtenář fakturace v oboru skupiny pro správu.

az role assignment create --assignee "alain@example.com" \
--role "Billing Reader" \
--scope "/providers/Microsoft.Management/managementGroups/marketing-group"

Další kroky