البرنامج التعليمي: منح وصول جماعي إلى موارد Azure باستخدام Azure PowerShell

يساعدك التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) على إدارة من لديه حق الوصول إلى موارد Azure. في هذا البرنامج التعليمي، أنت تمنح حق الوصول الجماعي لعرض كل شيء في الاشتراك وإدارة كل شيء في مجموعة موارد باستخدام Azure PowerShell.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • منح الوصول لمجموعة في نطاقات مختلفة
  • الوصول إلى القائمة
  • إزالة الوصول

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

المتطلبات الأساسية

لإكمال هذا البرنامج التعليمي، ستحتاج إلى:

تعيينات الأدوار

في Azure RBAC، لمنح الوصول، يمكنك إنشاء تعيين دور. يتكون تعيين الدور من ثلاثة عناصر، هي: أساس الأمان، وتعريف الدور، والنطاق. فيما يلي تكليفات الأدوار التي ستؤديها في هذا البرنامج التعليمي:

أساس الأمان تعريف قاعدة النطاق
المستخدم
(مجموعة دروس RBAC)
القارئ الوصف
المستخدم
(مجموعة دروس RBAC)
المساهم مجموعة الموارد
( rbac -مجموعة-الموارد التعليمية)

Role assignments for a user

أنشئ مجموعة

لتعيين دور، تحتاج إلى مستخدم أو مجموعة أو مدير خدمة. إذا لم تكن لديك مجموعة بالفعل، يمكنك إنشاء واحدة.

  1. في Azure Cloud Shell، أنشئ كلمة مرور تتوافق مع متطلبات تعقيد كلمة المرور الخاصة بك.

    $PasswordProfile = @{ Password = "<Password>" }
    
  2. إنشاء مستخدم جديد لمجالك باستخدام الأمر New-MgUser .

    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
    

إنشاء مجموعة موارد

يمكنك استخدام مجموعة موارد لإظهار كيفية تعيين دور في نطاق مجموعة موارد.

  1. احصل على قائمة بمواقع المنطقة باستخدام الأمر Get- AzLocation.

    Get-AzLocation | select Location
    
  2. حدد موقعاً بالقرب منك وقم بتعيينه لمتغير.

    $location = "westus"
    
  3. قم بإنشاء مجموعة موارد جديدة باستخدام الأمر New- AzResourceGroup.

    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
    

منح حق الوصول

لمنح الوصول للمجموعة، يمكنك استخدام الأمر New- AzRoleAssignment لتعيين دور. يجب عليك تحديد أساس الأمان وتعريف الدور والنطاق.

  1. الحصول على مُعَرِّف اشتراكك، باستخدام الأمر Get-AzSubscription.

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : 22222222-2222-2222-2222-222222222222
    State    : Enabled
    
  2. احفظ نطاق الاشتراك في متغير.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  3. عيّن دور القارئ للمجموعة في نطاق الاشتراك.

    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. عيّن دور المساهم للمجموعة في نطاق مجموعة الموارد.

    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
    

الوصول إلى القائمة

  1. للتحقق من الوصول للاشتراك، استخدم الأمر Get- AzRoleAssignment لسرد تعيينات الدور.

    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
    

    في الإخراج، يمكنك أن ترى أنه تم تعيين دور القارئ إلى مجموعة برامج RBAC التعليمية في نطاق الاشتراك.

  2. للتحقق من الوصول لمجموعة الموارد، استخدم الأمر Get- AzRoleAssignment لسرد تعيينات الدور.

    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
    

    في الإخراج، يمكنك أن ترى أنه تم تعيين دور كل من المساهم والقارئ لمستخدم البرنامج التعليمي لـ RBAC . يقع دور المساهم في نطاق rbac -tutorial-Resource-group ويتم توريث دور القارئ في نطاق الاشتراك.

(اختياري) سرد الوصول باستخدام مدخل Microsoft Azure

  1. لمشاهدة كيف تبدو تعيينات الأدوار في مدخل Microsoft Azure، اعرض شفرة التحكم في الوصول (IAM) للاشتراك.

    Role assignments for a user at subscription scope

  2. اعرض شفرة التحكم في الوصول (IAM) لمجموعة الموارد.

    Role assignments for a user at resource group scope

إزالة الوصول

لإزالة وصول المستخدمين والمجموعات والتطبيقات، استخدم Remove- AzRoleAssignment لإزالة تعيين دور.

  1. استخدم الأمر التالي لإزالة تعيين دور المساهم للمجموعة في نطاق مجموعة الموارد.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. استخدم الأمر التالي لإزالة تعيين دور القارئ للمجموعة في نطاق الاشتراك.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    

تنظيف الموارد

لتنظيف الموارد التي تم إنشاؤها بواسطة هذا البرنامج التعليمي، احذف مجموعة الموارد والمستخدم.

  1. احذف مجموعة الموارد باستخدام الأمر Remove- AzResourceGroup.

    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. عندما يُطلب منك التأكيد، اكتب Y. سيستغرق الحذف بضع ثوان.

  3. احذف المستخدم باستخدام الأمر Remove-MgUser .

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

الخطوات التالية