Öğretici: Azure PowerShell kullanarak kullanıcıya Azure kaynaklarına erişim izni verme
Azure rol tabanlı erişim denetimi (Azure RBAC) Azure kaynaklarına erişimi yönetmek için kullanılan sistemdir. Bu öğreticide bir kullanıcıya bir abonelik içindeki her şeyi görüntüleme ve bir kaynak grubundaki her şeyi yönetme izni vermek için Azure PowerShell'i kullanacaksınız.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Bir kullanıcıya farklı kapsamlarda erişim izni verme
- Erişimi listeleme
- Erişimi kaldırma
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Not
Azure ile etkileşim kurmak 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
Bu öğreticiyi tamamlamak için aşağıdakiler gerekir:
- Microsoft Entra Id'de kullanıcı oluşturma (veya mevcut bir kullanıcıya sahip) izinler
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK'sı
Rol atamaları
Azure RBAC'de erişim vermek için bir rol ataması oluşturursunuz. Rol ataması üç öğeden oluşur: güvenlik sorumlusu, rol tanımı ve kapsam. Bu öğreticide gerçekleştireceğiniz iki rol ataması aşağıda verilmiştir:
Güvenlik sorumlusu | Rol tanımı | Kapsam |
---|---|---|
User (RBAC Tutorial User) |
Okuyucu | Abonelik |
User (RBAC Tutorial User) |
Katkıda Bulunan | Kaynak grubu (rbac-tutorial-resource-group) |
Kullanıcı oluşturma
Rol atamak için kullanıcı, grup veya hizmet sorumlu gerekir. Kullanıcınız yoksa bir tane oluşturabilirsiniz.
Azure Cloud Shell'de parola karmaşıklık gereksinimlerinize uygun bir parola oluşturun.
$PasswordProfile = @{ Password = "<Password>" }
New-MgUser komutunu kullanarak etki alanınız için yeni bir kullanıcı oluşturun.
New-MgUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile ` -UserPrincipalName "rbacuser@example.com" -AccountEnabled:$true -MailNickName "rbacuser"
DisplayName Id Mail UserPrincipalName ----------- -- ---- ----------------- RBAC Tutorial User 11111111-1111-1111-1111-111111111111 rbacuser@example.com
Kaynak grubu oluşturma
Kaynak grubu kapsamında rol atamasını göstermek için bir kaynak grubu kullanmanız gerekir.
Get-AzLocation komutunu kullanarak bölge konumlarının listesini alın.
Get-AzLocation | select Location
Size yakın bir konum seçip bir değişkene atayın.
$location = "westus"
New-AzResourceGroup komutunu kullanarak yeni bir kaynak grubu oluşturun.
New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
ResourceGroupName : rbac-tutorial-resource-group Location : westus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
Erişim verme
Kullanıcıya erişim vermek için New-AzRoleAssignment komutunu kullanarak bir rol atarsınız. Güvenlik sorumlusunu, rol tanımını ve kapsamı belirtmeniz gerekir.
Get-AzSubscription komutunu kullanarak aboneliğinizin kimliğini alın.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : 22222222-2222-2222-2222-222222222222 State : Enabled
Abonelik kapsamını bir değişkene kaydedin.
$subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
Okuyucu rolünü abonelik kapsamında kullanıcıya atayın.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/44444444-4444-4444-4444-444444444444 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
Katılımcı rolünü kaynak grubu kapsamında kullanıcıya atayın.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333 Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
Erişimi listeleme
Aboneliğin erişimini doğrulamak için Rol atamalarını listelemek için Get-AzRoleAssignment komutunu kullanın.
Get-AzRoleAssignment -SignInName rbacuser@example.com -Scope $subScope
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
Çıktıda Okuyucu rolünün abonelik kapsamında RBAC Tutorial User kullanıcısına atanmış olduğunu görebilirsiniz.
Kaynak grubuna erişimi doğrulamak için Get-AzRoleAssignment komutunu kullanarak rol atamalarını listeleyin.
Get-AzRoleAssignment -SignInName rbacuser@example.com -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333 Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
Çıktıda hem Katılımcı hem de Okuyucu rollerinin RBAC Tutorial User kullanıcısına atanmış olduğunu görebilirsiniz. Katılımcı rolü rbac-tutorial-resource-group kapsamındadır, Okuyucu rolü ise abonelik kapsamından devralınır.
(İsteğe bağlı) Azure Portal'ı kullanarak erişimi listeleme
Rol atamalarının Azure portalında nasıl göründüğünü görmek için aboneliğin Erişim denetimi (IAM) dikey penceresini görüntüleyin.
Kaynak grubunun Erişim denetimi (IAM) dikey penceresini görüntüleyin.
Erişimi kaldırma
Kullanıcıların, grupların ve uygulamaların erişimini kaldırmak için Remove-AzRoleAssignment komutunu kullanarak rol atamasını kaldırın.
Kullanıcının kaynak grubu kapsamındaki Katılımcı rol atamasını kaldırmak için aşağıdaki komutu kullanın.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
Kullanıcının abonelik kapsamındaki Okuyucu rol atamasını kaldırmak için aşağıdaki komutu kullanın.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
Kaynakları temizleme
Bu öğretici ile oluşturulan kaynakları temizlemek için kaynak grubunu ve kullanıcıyı silebilirsiniz.
Remove-AzResourceGroup komutunu kullanarak kaynak grubunu silin.
Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"
Confirm Are you sure you want to remove resource group 'rbac-tutorial-resource-group' [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Onaylaması istendiğinde Y yazın. Silinmesi birkaç saniye sürer.
Remove-MgUser komutunu kullanarak kullanıcıyı silin.
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id