Azure-szerepkörök hozzárendelése az Azure PowerShell 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. A hozzáférés biztosításához adott hatókör mellett szerepköröket rendelhet a felhasználókhoz, csoportokhoz, szolgáltatásnevekhez vagy felügyelt identitásokhoz. Ez a cikk bemutatja, hogyan rendelhet hozzá szerepköröket az Azure PowerShell használatával.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
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- PowerShell az Azure Cloud Shellben vagy az Azure PowerShellben
- A PowerShell-parancs futtatásához használt fióknak Microsoft Graph-engedéllyel
Directory.Read.All
kell rendelkeznie.
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 PowerShellben 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 a Get-AzADUsert.
Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id
Csoport
Microsoft Entra-csoport esetén a csoportobjektum-azonosítóra van szükség. Az objektumazonosító lekéréséhez használhatja a Get-AzADGroupot.
Get-AzADGroup -SearchString <groupName>
(Get-AzADGroup -DisplayName <groupName>).id
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 a Get-AzADServicePrincipal parancsot. Szolgáltatásnév esetén használja az objektumazonosítót, és ne az alkalmazásazonosítót.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Kezelt identitás
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 a Get-AzADServicePrincipal parancsot.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
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 a Get-AzRoleDefinition parancsot.
Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id
Az alábbiakban egy adott szerepkör részleteit sorolhatja fel.
Get-AzRoleDefinition -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 a Get-AzResourceGroupot.
Get-AzResourceGroup
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 a Get-AzSubscription parancsot.
Get-AzSubscription
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 a Get-AzManagementGroup szolgáltatást.
Get-AzManagementGroup
4. lépés: Szerepkör hozzárendelése
Szerepkör hozzárendeléséhez használja a New-AzRoleAssignment 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
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionId <roleId> `
-ResourceName <resourceName> `
-ResourceType <resourceType> `
-ResourceGroupName <resourceGroupName>
Erőforráscsoport hatóköre
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
Előfizetés hatóköre
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
Felügyeleti csoport hatóköre
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
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
A Storage Blob Data Contributor szerepkör hozzárendelése egy 5555555555-5555-5555-5555-5555-555555555-ös objektumazonosítójú szolgáltatásnévhez és alkalmazáshoz Id 66666666-6666-6666-6666-6666666666 egy storage12345 nevű tárfiók erőforrás-hatókörében.
PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/providers/Microsoft.Authorization/roleAssignments/cccccccc-cccc-cccc-cccc-cccccccccccc
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345
DisplayName : example-identity
SignInName :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId : 55555555-5555-5555-5555-555555555555
ObjectType : ServicePrincipal
CanDelegate : False
Szerepkör hozzárendelése adott blobtároló erőforrás-hatóköréhez
A Storage Blob-adatszolgáltató szerepkör hozzárendelése egy szolgáltatásnévhez 555555555-5555-5555-5555-55555555 és 55555555 objektumazonosítóval 66666666-6666-6666-6666-666666666666 egy blob-container-01 nevű blobtároló erőforrás-hatókörében.
PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "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"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignm
ents/dddddddd-dddd-dddd-dddd-dddddddddddd
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01
DisplayName : example-identity
SignInName :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId : 55555555-5555-5555-5555-555555555555
ObjectType : ServicePrincipal
CanDelegate : False
Szerepkör hozzárendelése csoporthoz egy adott virtuális hálózati erőforrás hatókörében
Hozzárendeli a virtuálisgép-közreműködői szerepkört az aaa-aa-a-a-a-aaa-aaa azonosítójú Pharma Sales Rendszergazda s csoporthoz egy pharma-sales-project-network nevű virtuális hálózat erőforrás-hatókörében.
PS C:\> New-AzRoleAssignment -ObjectId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceName pharma-sales-project-network `
-ResourceType Microsoft.Network/virtualNetworks `
-ResourceGroupName MyVirtualNetworkResourceGroup
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network/providers/Microsoft.Authorizat
ion/roleAssignments/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network
DisplayName : Pharma Sales Admins
SignInName :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ObjectType : Group
CanDelegate : False
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.
PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/pr
oviders/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
Másik lehetőségként megadhatja a teljes erőforráscsoportot a -Scope
következő paraméterrel:
PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
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.
PS C:\> New-AzRoleAssignment -ObjectId 44444444-4444-4444-4444-444444444444 `
-RoleDefinitionId 9980e02c-c2be-4d73-94e8-173b1dc7cf3c `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
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ör hozzárendelése egy 7777777777-7777-7777-7777-7777777777 azonosítójú szolgáltatásnév-objektummal rendelkező alkalmazáshoz a gyógyszer-értékesítési erőforráscsoport hatókörében.
PS C:\> New-AzRoleAssignment -ObjectId 77777777-7777-7777-7777-777777777777 `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : MyApp1
SignInName :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 77777777-7777-7777-7777-777777777777
ObjectType : ServicePrincipal
CanDelegate : False
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.
PS C:\> New-AzRoleAssignment -SignInName annm@example.com `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName : Ann M
SignInName : annm@example.com
RoleDefinitionName : Reader
RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7
ObjectId : 77777777-7777-7777-7777-777777777777
ObjectType : ServicePrincipal
CanDelegate : False
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.
PS C:\> New-AzRoleAssignment -SignInName alain@example.com `
-RoleDefinitionName "Billing Reader" `
-Scope "/providers/Microsoft.Management/managementGroups/marketing-group"
RoleAssignmentId : /providers/Microsoft.Management/managementGroups/marketing-group/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
Scope : /providers/Microsoft.Management/managementGroups/marketing-group
DisplayName : Alain Charon
SignInName : alain@example.com
RoleDefinitionName : Billing Reader
RoleDefinitionId : fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False