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:
Microsoft.Authorization/roleAssignments/write
engedélyek, például szerepköralapú hozzáférés-vezérlési Rendszergazda istrator- Bash in Azure Cloud Shell or Azure CLI
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"