Menetapkan peran Azure menggunakan Azure PowerShell
Kontrol akses berbasis peran Azure (Azure RBAC) adalah sistem otorisasi yang Anda gunakan untuk mengelola akses ke sumber daya Azure. Untuk memberikan akses, Anda menetapkan peran kepada pengguna, grup, perwakilan layanan, atau identitas terkelola pada cakupan tertentu. Artikel ini menjelaskan cara menetapkan peran menggunakan Azure PowerShell.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Prasyarat
Untuk menetapkan peran, Anda harus memiliki:
Microsoft.Authorization/roleAssignments/write
izin, seperti Administrator Kontrol Akses Berbasis Peran- PowerShell di Azure Cloud Shell atau Azure PowerShell
- Akun yang Anda gunakan untuk menjalankan perintah PowerShell harus memiliki izin
Directory.Read.All
Microsoft Graph.
Langkah-langkah untuk menetapkan peran Microsoft Azure
Untuk menetapan peran yang terdiri atas tiga elemen: prinsip keamanan, penentuan peran, dan cakupan.
Langkah 1: Menentukan siapa yang membutuhkan akses
Anda dapat menetapkan peran ke pengguna, grup, perwakilan layanan, atau identitas terkelola. Untuk menetapkan peran, Anda mungkin perlu menentukan ID unik objek. ID memiliki format: 11111111-1111-1111-1111-111111111111
. Anda bisa mendapatkan ID menggunakan portal Azure, Azure PowerShell.
Pengguna
Untuk pengguna Microsoft Entra, dapatkan nama utama pengguna, seperti patlong@contoso.com atau ID objek pengguna. Untuk mendapatkan ID objek, Anda dapat menggunakan Get-AzADUser.
Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id
Grup
Untuk grup Microsoft Entra, Anda memerlukan ID objek grup. Untuk mendapatkan ID objek, Anda dapat menggunakan Get-AzADGroup.
Get-AzADGroup -SearchString <groupName>
(Get-AzADGroup -DisplayName <groupName>).id
Prinsipal layanan
Untuk perwakilan layanan Microsoft Entra (identitas yang digunakan oleh aplikasi), Anda memerlukan ID objek perwakilan layanan. Untuk mendapatkan ID objek, Anda dapat menggunakan Get-AzADServicePrincipal. Untuk perwakilan layanan, gunakan ID objek dan bukan ID aplikasi.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Identitas terkelola
Untuk identitas terkelola yang ditetapkan sistem atau yang ditetapkan pengguna, Anda memerlukan ID objek. Untuk mendapatkan ID objek, Anda dapat menggunakan Get-AzADServicePrincipal.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Langkah 2: Pilih peran yang sesuai
Izin dikelompokkan bersama menjadi peran. Anda dapat memilih dari daftar beberapa peran bawaan Azure atau menggunakan peran kustom Anda sendiri. Ini adalah praktik terbaik untuk memberikan akses dengan hak istimewa paling sedikit yang diperlukan, jadi hindari menetapkan peran yang lebih luas.
Untuk mencantumkan peran dan mendapatkan ID peran unik, Anda dapat menggunakan Get-AzRoleDefinition.
Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id
Berikut ini adalah cara mencantumkan detail peran tertentu.
Get-AzRoleDefinition -Name <roleName>
Untuk informasi selengkapnya, lihat Membuat daftar definisi peran Azure.
Langkah 3: Mengidentifikasi cakupan yang diperlukan
Azure menyediakan empat tingkat cakupan: sumber daya, grup sumber daya, langganan, dan grup manajemen. Ini adalah praktik terbaik untuk memberikan akses dengan hak istimewa paling sedikit yang diperlukan untuk menghindari penetapan peran yang lebih luas. Untuk informasi selengkapnya tentang cakupan, lihat Memahami cakupan.
Cakupan sumber daya
Untuk cakupan sumber daya, Anda memerlukan ID sumber daya untuk sumber daya tersebut. Anda dapat menemukan ID sumber daya dengan melihat properti sumber daya di portal Microsoft Azure. ID sumber daya memiliki format berikut.
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
Cakupan grup sumber daya
Untuk cakupan grup sumber daya, Anda memerlukan nama grup sumber daya. Anda dapat menemukan nama di halaman Grup sumber daya di portal Azure atau menggunakan Get-AzResourceGroup.
Get-AzResourceGroup
Cakupan langganan
Untuk cakupan langganan, Anda memerlukan ID langganan. Anda dapat menemukan ID pada halaman Langganan portal Azure atau menggunakan Get-AzSubscription.
Get-AzSubscription
Cakupan grup manajemen
Untuk cakupan grup manajemen, Anda memerlukan nama grup manajemen. Anda dapat menemukan nama di halaman Grup manajemen di portal Azure atau menggunakan Get-AzManagementGroup.
Get-AzManagementGroup
Langkah 4: Tetapkan peran
Untuk menetapkan peran, gunakan perintah New-AzRoleAssignment. Bergantung pada cakupannya, perintah biasanya memiliki salah satu format berikut.
Cakupan sumber daya
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>
Cakupan grup sumber daya
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
Cakupan langganan
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
Cakupan grup manajemen
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
Menetapkan contoh peran
Menetapkan peran untuk semua kontainer blob dalam cakupan sumber daya akun penyimpanan
Menetapkan peran Kontributor Data Blob Penyimpanan ke perwakilan layanan dengan ID objek 555555555-5555-5555-5555-55555555555555 ID Aplikasi 66666666-6666-6666-6666-6666666666666 pada cakupan sumber daya untuk akun penyimpanan bernama storage12345.
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
Menetapkan peran untuk cakupan sumber daya kontainer blob tertentu
Menetapkan peran Kontributor Data Blob Penyimpanan ke perwakilan layanan dengan ID objek 55555555-5555-5555-5555-5555555555555 dan ID Aplikasi 66666666-6666-6666-6666-66666666666 pada cakupan sumber daya untuk kontainer blob bernama blob-container-01.
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
Menetapkan peran untuk grup dalam cakupan sumber daya jaringan virtual tertentu
Menetapkan peran Kontributor Mesin Virtual ke grup Admin Penjualan Farmasi dengan ID aaaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaa pada cakupan sumber daya untuk jaringan virtual bernama pharma-sales-project-network.
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
Memberikan akses untuk pengguna di cakupan grup sumber daya
Menetapkan peran Kontributor Komputer Virtual untuk patlong@contoso.com pengguna di cakupan grup sumber daya penjualan farmasi.
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
Secara bergantian, Anda dapat menentukan grup sumber daya yang sepenuhnya memenuhi syarat dengan parameter -Scope
:
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
Menetapkan peran untuk pengguna menggunakan ID peran unik di cakupan grup sumber daya
Nama peran dapat berubah beberapa kali, misalnya:
- Anda menggunakan peran kustom Anda sendiri dan Anda memutuskan untuk mengubah namanya.
- Anda menggunakan peran pratinjau yang memiliki (Pratinjau) dalam namanya. Ketika peran dirilis, nama peran diganti.
Meskipun peran diganti namanya, ID peran tidak berubah. Jika Anda menggunakan skrip atau otomasi untuk membuat tugas peran, ini adalah praktik terbaik untuk menggunakan ID peran unik, alih-alih nama peran. Oleh karena itu, jika peran diganti namanya, skrip Anda kemungkinan akan berfungsi.
Contoh berikut menetapkan peran Kontributor Komputer Virtual kepada patlong@contoso.com pengguna di cakupan grup sumber daya penjualan farmasi.
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
Menetapkan peran untuk aplikasi di cakupan grup sumber daya
Menetapkan peran Kontributor Mesin Virtual ke aplikasi dengan ID objek perwakilan layanan 77777777-7777-7777-7777-777777777777 di cakupan grup sumber daya pharma-sales.
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
Menetapkan peran untuk pengguna di cakupan langganan
Menetapkan peran Pembaca kepada annm@example.com pengguna di cakupan langganan.
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
Menetapkan peran untuk pengguna di cakupan grup manajemen
Menetapkan peran Pembaca Penagihan kepada alain@example.com pengguna di cakupan grup manajemen.
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
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk