Azure-szerepkörök hozzárendelése az Azure CLI használatával

Az Azure-beli szerepköralapú hozzáférés-vezérlés (Azure RBAC) az Azure-erőforrásokhoz való hozzáférés kezeléséhez használt engedélyezési rendszer. To grant access, you assign roles to users, groups, service principals, or managed identities at a particular scope. Ez a cikk azt ismerteti, hogyan rendelhet hozzá szerepköröket az Azure CLI használatával.

Előfeltételek

Szerepkörök hozzárendeléséhez a következőket kell tennie:

Azure-szerepkör hozzárendelésének lépései

A szerepkör hozzárendelése három elemből áll: a biztonsági tagból, a szerepkördefinícióból és a hatókörből.

1. lépés: Annak meghatározása, hogy kinek van szüksége hozzáférésre

Szerepkört rendelhet egy felhasználóhoz, csoporthoz, szolgáltatásnévhez vagy felügyelt identitáshoz. Szerepkör hozzárendeléséhez szükség lehet az objektum egyedi azonosítójának megadására. Az azonosító formátuma: 11111111-1111-1111-1111-111111111111. Az azonosítót az Azure Portalon vagy az Azure CLI-vel szerezheti be.

Felhasználó

Microsoft Entra-felhasználó esetén kérje le az egyszerű felhasználónevet, például patlong@contoso.com a felhasználói objektum azonosítóját. Az objektumazonosító lekéréséhez használhatja az azd user show-t.

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

Csoport

Microsoft Entra-csoport esetén a csoportobjektum-azonosítóra van szükség. Az objektumazonosító lekéréséhez használhatja az az hirdetéscsoport-megjelenítést vagy az az ad group listát.

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

Egyszerű szolgáltatás

A Microsoft Entra szolgáltatásnévhez (egy alkalmazás által használt identitáshoz) a szolgáltatásnév objektumazonosítója szükséges. Az objektumazonosító lekéréséhez használhatja az az ad sp listát. Szolgáltatásnév esetén használja az objektumazonosítót, és ne az alkalmazásazonosítót.

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

Managed identity

Rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitáshoz szükség van az objektumazonosítóra. Az objektumazonosító lekéréséhez használhatja az az ad sp listát.

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

A felhasználó által hozzárendelt felügyelt identitások listázásához használhatja az identitáslistát.

az identity list

2. lépés: Válassza ki a megfelelő szerepkört

Az engedélyek szerepkörökbe vannak csoportosítva. Számos beépített Azure-szerepkör listájából választhat, vagy használhatja saját egyéni szerepköreit. Ajánlott eljárás a szükséges legkevesebb jogosultsággal rendelkező hozzáférés biztosítása, ezért ne rendeljen hozzá szélesebb szerepkört.

A szerepkörök listázásához és az egyedi szerepkör-azonosító lekéréséhez használhatja az az szerepkördefiníciós listát.

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

Az alábbiakban egy adott szerepkör részleteit sorolhatja fel.

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

További információ: Azure-szerepkördefiníciók listázása.

3. lépés: A szükséges hatókör azonosítása

Az Azure négy hatókörszintet biztosít: erőforrás, erőforráscsoport, előfizetés és felügyeleti csoport. Ajánlott eljárás a szükséges legkisebb jogosultsággal rendelkező hozzáférés biztosítása, ezért ne rendeljen hozzá szerepkört szélesebb körben. A hatókörről további információt a hatókör ismertetése című témakörben talál.

Erőforrás hatóköre

Az erőforrás-hatókörhöz az erőforrás erőforrás-azonosítóját kell megadnia. Az erőforrás-azonosítót az erőforrás tulajdonságainak az Azure Portalon való megtekintésével találja meg. Az erőforrás-azonosító formátuma a következő.

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

Erőforráscsoport hatóköre

Az erőforráscsoport hatóköréhez szüksége van az erőforráscsoport nevére. A nevet az Erőforráscsoportok lapon találja az Azure Portalon, vagy használhatja az az csoportlistát.

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

Előfizetés hatóköre

Az előfizetés hatóköréhez szüksége van az előfizetés azonosítóra. Az azonosítót az Azure Portal Előfizetések lapján találja, vagy használhatja az az-fióklistát.

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

Felügyeleti csoport hatóköre

A felügyeleti csoport hatóköréhez szüksége van a felügyeleti csoport nevére. A nevet az Azure Portal Felügyeleti csoportok lapján találja, vagy használhatja az az account management-group listát.

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

4. lépés: Szerepkör hozzárendelése

Szerepkör hozzárendeléséhez használja az az role assignment create parancsot. A hatókörtől függően a parancs általában az alábbi formátumok egyikével rendelkezik.

Erőforrás hatóköre

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

Erőforráscsoport hatóköre

az role assignment create --assignee "{assignee}" \
--role "{roleNameOrId}" \
--scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"

Előfizetés hatóköre

az role assignment create --assignee "{assignee}" \
--role "{roleNameOrId}" \
--scope "/subscriptions/{subscriptionId}"

Felügyeleti csoport hatóköre

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

Az alábbiakban egy példa látható a kimenetre, amikor hozzárendeli a virtuálisgép-közreműködői szerepkört egy felhasználóhoz egy erőforráscsoport hatókörében.

{
  "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éldák hozzárendelése szerepkörökhöz

Szerepkör hozzárendelése az összes blobtárolóhoz egy tárfiók erőforrás-hatókörében

Egy 5555555555-5555-5555-5555-5555-555555555 azonosítójú szolgáltatásnévhez rendeli a Storage-blobadat-közreműködő szerepkört egy storage12345 nevű tárfiók erőforrás-hatókörében.

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"

Szerepkör hozzárendelése adott blobtároló erőforrás-hatóköréhez

Egy 5555555555-5555-5555-5555-5555-5555555555 azonosítójú blobtároló erőforrás-hatókörében rendeli hozzá a Storage Blob-Data Közreműködő szerepkört egy 555555555555 nevű blobtároló erőforrás-hatóköréhez.

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"

Szerepkör hozzárendelése csoporthoz egy adott virtuális hálózati erőforrás hatókörében

A virtuálisgép-közreműködői szerepkört a 222222222-2222-2222-2222-2222-2222222222222 azonosítójú Ann Mack-csapatcsoporthoz rendeli egy pharma-sales-project-network nevű virtuális hálózat erőforrás-hatókörében.

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"

Szerepkör hozzárendelése egy felhasználóhoz egy erőforráscsoport hatókörében

Hozzárendeli a virtuálisgép-közreműködői szerepkört a felhasználóhoz patlong@contoso.com a gyógyszer-értékesítési erőforráscsoport hatókörében.

az role assignment create --assignee "patlong@contoso.com" \
--role "Virtual Machine Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"

Szerepkör hozzárendelése egy felhasználóhoz az erőforráscsoport hatókörében található egyedi szerepkör-azonosító használatával

Előfordulhat, hogy egy szerepkör neve megváltozik, például:

  • Saját egyéni szerepkört használ, és úgy dönt, hogy megváltoztatja a nevet.
  • Olyan előzetes szerepkört használ, amelynek neve (előzetes verzió) szerepel. A szerepkör felszabadításakor a szerepkör átnevezve lesz.

Még ha átneveznek is egy szerepkört, a szerepkör azonosítója nem változik. Ha szkriptekkel vagy automatizálással hozza létre a szerepkör-hozzárendeléseket, ajánlott az egyedi szerepkör-azonosítót használni a szerepkör neve helyett. Ezért ha egy szerepkört átneveznek, a szkriptek nagyobb valószínűséggel fognak működni.

Az alábbi példa a virtuálisgép-közreműködői szerepkört rendeli hozzá a patlong@contoso.com felhasználóhoz a gyógyszer-értékesítési erőforráscsoport hatókörében.

az role assignment create --assignee "patlong@contoso.com" \
--role "9980e02c-c2be-4d73-94e8-173b1dc7cf3c" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"

Szerepkör hozzárendelése az erőforráscsoport hatókörében lévő összes blobtárolóhoz

A Storage Blob Data Contributor szerepkört egy 5555555555-5555-5555-5555-555555555 azonosítójú szolgáltatásnévhez rendeli a Example-Storage-rg erőforráscsoport hatókörében.

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"

Szerepkör hozzárendelése egy alkalmazáshoz egy erőforráscsoport hatókörében

A virtuálisgép-közreműködői szerepkört egy 4444444444-4444-4444-4444-4444-4444444444444 azonosítójú alkalmazáshoz rendeli a gyógyszer-értékesítési erőforráscsoport hatókörében.

az role assignment create --assignee "44444444-4444-4444-4444-444444444444" \
--role "Virtual Machine Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"

Szerepkör hozzárendelése új szolgáltatásnévhez egy erőforráscsoport hatókörében

Ha létrehoz egy új szolgáltatásnevet, és azonnal megpróbál szerepkört hozzárendelni az adott szolgáltatásnévhez, a szerepkör-hozzárendelés bizonyos esetekben meghiúsulhat. Ha például szkripttel hoz létre egy új felügyelt identitást, majd megpróbál szerepkört hozzárendelni az adott szolgáltatásnévhez, a szerepkör-hozzárendelés sikertelen lehet. Ennek a hibának az oka valószínűleg a replikáció késleltetése. A szolgáltatásnév egy régióban jön létre; Azonban előfordulhat, hogy a szerepkör-hozzárendelés egy másik régióban történik, amely még nem replikálta a szolgáltatásnevet. A forgatókönyv megoldásához meg kell adnia az egyszerű típust a szerepkör-hozzárendelés létrehozásakor.

Szerepkör hozzárendeléséhez használja az az role assignment create parancsot, adjon meg egy értéket --assignee-object-id, majd állítsa be --assignee-principal-type a következőt ServicePrincipal: .

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

Az alábbi példa a virtuálisgép-közreműködői szerepkört rendeli hozzá az msi-teszt által felügyelt identitáshoz a gyógyszer-értékesítési erőforráscsoport hatókörében:

az role assignment create --assignee-object-id "33333333-3333-3333-3333-333333333333" \
--assignee-principal-type "ServicePrincipal" \
--role "Virtual Machine Contributor" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"

Szerepkör hozzárendelése egy felhasználóhoz egy előfizetés hatókörében

Hozzárendeli az Olvasó szerepkört a annm@example.com felhasználóhoz egy előfizetési hatókörben.

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

Szerepkör hozzárendelése egy csoporthoz előfizetési hatókörben

Az Olvasó szerepkört a 2222222222-2222-2222-2222-2222-2222-22222222222 azonosítójú Ann Mack Team csoporthoz rendeli egy előfizetés hatókörében.

az role assignment create --assignee "22222222-2222-2222-2222-222222222222" \
--role "Reader" \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000"

Szerepkör hozzárendelése az előfizetés hatókörében lévő összes blobtárolóhoz

Hozzárendeli a Storage Blob-adatolvasó szerepkört a alain@example.com felhasználóhoz egy előfizetési hatókörben.

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

Szerepkör hozzárendelése egy felhasználóhoz egy felügyeleti csoport hatókörében

Hozzárendeli a Számlázási olvasó szerepkört a alain@example.com felhasználóhoz egy felügyeleti csoport hatókörében.

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

További lépések