Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure rol tabanlı erişim denetimi (Azure RBAC), Azure kaynaklarına erişimi yönetmek için kullandığınız yetkilendirme sistemidir. Erişim vermek için kullanıcılara, gruplara, hizmet sorumlularına veya yönetilen kimliklere belirli kapsamda roller atamanız gerekir. Bu makalede Azure PowerShell kullanarak rollerin nasıl atandığı açıklanmaktadır.
Uyarı
Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Önkoşullar
Rolleri atamak için sahip olmanız gerekenler:
-
Microsoft.Authorization/roleAssignments/writeRol Tabanlı Erişim Denetimi Yöneticisi gibi izinler - Azure Cloud Shell'de PowerShell veya Azure PowerShell
- PowerShell komutunu çalıştırmak için kullandığınız hesabın Microsoft Graph
Directory.Read.Allizni olmalıdır.
Azure rolü atama adımları
Rol atamak için üç öğeden oluşur: güvenlik sorumlusu, rol tanımı ve kapsam.
1. Adım: Kimlerin erişmesi gerektiğini belirleme
Kullanıcıya, gruba, hizmet sorumlusuna veya yönetilen kimliğe rol atayabilirsiniz. Rol atamak için nesnenin benzersiz kimliğini belirtmeniz gerekebilir. Kimlik şu biçimdedir: 11111111-1111-1111-1111-111111111111. Kimliği Azure portalını veya Azure PowerShell'i kullanarak alabilirsiniz.
kullanıcı
Microsoft Entra kullanıcısı için, patlong@contoso.com gibi kullanıcı asıl adını veya kullanıcı nesne kimliğini edinin. Nesne kimliğini almak için Get-AzADUser kullanabilirsiniz.
Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id
Grup
Microsoft Entra grubu için grup nesnesi kimliğine ihtiyacınız vardır. Nesne kimliğini almak için Get-AzADGroup kullanabilirsiniz.
Get-AzADGroup -SearchString <groupName>
(Get-AzADGroup -DisplayName <groupName>).id
Hizmet Prensibi
Bir Microsoft Entra hizmet sorumlusu (uygulama tarafından kullanılan kimlik) için hizmet sorumlusu nesne kimliğine ihtiyacınız vardır. Nesne kimliğini almak için Get-AzADServicePrincipal kullanabilirsiniz. Hizmet sorumlusu için nesne kimliğini kullanın ve uygulama kimliğini değil.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Yönetilen kimlik
Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik için nesne kimliğine ihtiyacınız vardır. Nesne kimliğini almak için Get-AzADServicePrincipal kullanabilirsiniz.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
2. Adım: Uygun rolü seçin
İzinler roller halinde gruplandırılır. Birkaç Azure yerleşik rolü listesinden seçim yapabilir veya kendi özel rollerinizi kullanabilirsiniz. Gerekli olan en az ayrıcalıkla erişim vermek en iyi yöntemdir, bu nedenle daha geniş bir rol atamaktan kaçının.
Rolleri listelemek ve benzersiz rol kimliğini almak için Get-AzRoleDefinition kullanabilirsiniz.
Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id
Belirli bir rolün ayrıntılarını şöyle listeleyin.
Get-AzRoleDefinition -Name <roleName>
Daha fazla bilgi için bkz . Azure rol tanımlarını listeleme.
3. Adım: Gerekli kapsamı belirleme
Azure dört kapsam düzeyi sağlar: kaynak, kaynak grubu, abonelik ve yönetim grubu. Gereken en düşük ayrıcalıkla erişim vermek en iyi yöntemdir, bu nedenle daha geniş bir kapsamda rol atamaktan kaçının. Kapsam hakkında daha fazla bilgi için Kapsamı anlama bölümüne bakın.
Kaynak kapsamı
Kaynak kapsamı için kaynağın kaynak kimliğine ihtiyacınız vardır. Azure portalında kaynağın özelliklerine bakarak kaynak kimliğini bulabilirsiniz. Kaynak kimliği aşağıdaki biçime sahiptir.
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
Kaynak grubu kapsamı
Kaynak grubu kapsamı için kaynak grubunun adına ihtiyacınız vardır. Adı Azure portalındaki Kaynak grupları sayfasında bulabilir veya Get-AzResourceGroup kullanabilirsiniz.
Get-AzResourceGroup
Abonelik kapsamı
Abonelik kapsamı için abonelik kimliğine ihtiyacınız vardır. Kimliği Azure portalındaki Abonelikler sayfasında bulabilir veya Get-AzSubscription kullanabilirsiniz.
Get-AzSubscription
Yönetim grubu kapsamı
Yönetim grubu kapsamı için yönetim grubu adına ihtiyacınız vardır. Adı Azure portalındaki Yönetim grupları sayfasında bulabilir veya Get-AzManagementGroup kullanabilirsiniz.
Get-AzManagementGroup
4. Adım: Rol atama
Rol atamak için New-AzRoleAssignment komutunu kullanın. Kapsama bağlı olarak, komut genellikle aşağıdaki biçimlerden birine sahiptir.
Kaynak kapsamı
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>
Kaynak grubu kapsamı
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
Abonelik kapsamı
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
Yönetim grubu kapsamı
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
Rol örneklerini ata
Depolama hesabı kaynak kapsamındaki tüm blob kapsayıcılarına bir rol atayın
Bir hizmet sorumlusuna, nesne kimliği 55555555-5555-5555-5555-555555555555 ve uygulama kimliği 66666666-6666-6666-6666-666666666666 olan, storage12345 adlı depolama hesabının kaynak kapsamındaki Depolama Blobu Veri Katkıda Bulunanı rolü atanır.
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
Belirli bir blob kapsayıcısı kaynağı kapsamı için rol atayın
Depolama Blobu Veri Katkıda Bulunanı rolü, 55555555-5555-5555-5555-555555555555 nesne kimliğine ve 66666666-6666-6666-6666-666666666666 Uygulama Kimliğine sahip bir hizmet sorumlusuna, blob-container-01 adlı blob kapsayıcısının kaynak kapsamına atanır.
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
Belirli bir sanal ağ kaynak kapsamındaki bir grup için rol atama
Pharma-sales-project-network adlı sanal ağın kaynak kapsamındaki, kimliği aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa olan Pharma Sales Admins grubuna Sanal Makine Katkıda Bulunan Rolü atar.
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
Kaynak grubu kapsamında kullanıcıya rol atama
Pharma-sales kaynak grubu kapsamında patlong@contoso.com kullanıcıya Sanal Makine Katılımcısı rolünü atar.
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
Alternatif olarak, -Scope parametresiyle eksiksiz nitelikli kaynak grubunu belirtebilirsiniz.
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
Kaynak grubu kapsamında benzersiz rol kimliğini kullanarak kullanıcıya rol atamak
Rol adının değişebileceği birkaç durum vardır, örneğin:
- Kendi özel rolünüzü kullanıyorsunuz ve adı değiştirmeye karar verirsiniz.
- Adında (Önizleme) olan bir önizleme rolü kullanıyorsunuz. Rol serbest bırakıldığında, rol yeniden adlandırılır.
Bir rol yeniden adlandırılsa bile rol kimliği değişmez. Rol atamalarınızı oluşturmak için betikler veya otomasyon kullanıyorsanız, rol adı yerine benzersiz rol kimliğini kullanmak en iyi yöntemdir. Bu nedenle, bir rol yeniden adlandırılırsa betiklerinizin çalışma olasılığı daha yüksek olur.
Aşağıdaki örnek, pharma-sales kaynak grubu kapsamında patlong@contoso.com kullanıcıya Sanal Makine Katkıda Bulunanı rolünü atar.
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
Kaynak grubu kapsamındaki bir uygulama için rol atama
Sanal Makine Katkıda Bulunanı rolünü, pharma-sales kaynak grubu kapsamında, hizmet sorumlusu nesne kimliği 77777777-7777-7777-7777-777777777777 olan bir uygulamaya atar.
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
Kullanıcıya abonelik kapsamında bir rol ata
Okuyucu rolünü annm@example.com kullanıcıya abonelik kapsamında atar.
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
Yönetim grubu kapsamında kullanıcıya rol atama
Faturalama Okuyucusu rolünü alain@example.com kullanıcıya bir yönetim grubu kapsamında atar.
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