Öğ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:

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)

Role assignments for a user

Kullanıcı oluşturma

Rol atamak için kullanıcı, grup veya hizmet sorumlu gerekir. Kullanıcınız yoksa bir tane oluşturabilirsiniz.

  1. Azure Cloud Shell'de parola karmaşıklık gereksinimlerinize uygun bir parola oluşturun.

    $PasswordProfile = @{ Password = "<Password>" }
    
  2. 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.

  1. Get-AzLocation komutunu kullanarak bölge konumlarının listesini alın.

    Get-AzLocation | select Location
    
  2. Size yakın bir konum seçip bir değişkene atayın.

    $location = "westus"
    
  3. 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.

  1. 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
    
  2. Abonelik kapsamını bir değişkene kaydedin.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  3. 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
    
  4. 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

  1. 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.

  2. 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

  1. 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.

    Role assignments for a user at subscription scope

  2. Kaynak grubunun Erişim denetimi (IAM) dikey penceresini görüntüleyin.

    Role assignments for a user at resource group scope

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.

  1. 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"
    
  2. 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.

  1. 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"):
    
  2. Onaylaması istendiğinde Y yazın. Silinmesi birkaç saniye sürer.

  3. Remove-MgUser komutunu kullanarak kullanıcıyı silin.

    $User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'"
    Remove-MgUser -UserId $User.Id
    

Sonraki adımlar