次の方法で共有


チュートリアル: Azure PowerShell を使用して Azure リソースへのアクセス権をユーザーに付与する

Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure リソースへのアクセスを管理する方法です。 このチュートリアルでは、Azure PowerShell を使用して、サブスクリプション内のすべてを表示し、リソース グループ内のすべてを管理するためのアクセス権をユーザーに付与します。

このチュートリアルでは、以下の内容を学習します。

  • 異なるスコープのユーザーにアクセス権を付与する
  • アクセスを一覧表示する
  • アクセス権の削除

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。

[前提条件]

このチュートリアルを完了するには、次のものが必要です。

ロールの割り当て

Azure RBAC でアクセス権を付与するには、ロールの割り当てを作成します。 ロールの割り当ては、セキュリティ プリンシパル、ロールの定義、スコープの 3 つの要素で構成されています。 このチュートリアルで実行する 2 つのロールの割り当てを次に示します。

セキュリティ プリンシパル ロール定義 Scope
User
(RBAC チュートリアル ユーザー)
Reader Subscription
User
(RBAC チュートリアル ユーザー)
投稿者 リソースグループ
(rbac-tutorial-resource-group)

ユーザーのロールの割り当て

ユーザーの作成

ロールを割り当てるには、ユーザー、グループ、またはサービス プリンシパルが必要です。 ユーザーがまだない場合は、ユーザーを作成できます。

  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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb      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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
    

アクセス権を付与する

ユーザーにアクセス権を付与するには、 New-AzRoleAssignment コマンドを使用してロールを割り当てます。 セキュリティ プリンシパル、ロール定義、およびスコープを指定する必要があります。

  1. Get-AzSubscription コマンドを使用して、サブスクリプションの ID を取得します。

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee
    State    : Enabled
    
  2. サブスクリプション スコープを変数に保存します。

    $subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
    
  3. サブスクリプション スコープで 閲覧者 ロールをユーザーに割り当てます。

    New-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    
  4. リソース グループ スコープで 共同作成者 ロールをユーザーに割り当てます。

    New-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    

アクセスを一覧表示する

  1. サブスクリプションのアクセス権を確認するには、 Get-AzRoleAssignment コマンドを使用してロールの割り当てを一覧表示します。

    Get-AzRoleAssignment -SignInName rbacuser@example.com -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    

    出力では、閲覧者ロールがサブスクリプション スコープで RBAC チュートリアル ユーザーに割り当てられていることがわかります。

  2. リソース グループのアクセスを確認するには、 Get-AzRoleAssignment コマンドを使用してロールの割り当てを一覧表示します。

    Get-AzRoleAssignment -SignInName rbacuser@example.com -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    

    出力では、共同作成者ロールと閲覧者ロールの両方が RBAC チュートリアル ユーザーに割り当てられていることがわかります。 共同作成者ロールは rbac-tutorial-resource-group スコープにあり、閲覧者ロールはサブスクリプション スコープで継承されます。

(省略可能)Azure Portal を使用してアクセスを一覧表示する

  1. Azure portal でロールの割り当てがどのように表示されるかを確認するには、サブスクリプションの アクセス制御 (IAM) ブレードを表示します。

    サブスクリプション スコープでのユーザーのロールの割り当て

  2. リソース グループの [アクセス制御 (IAM)] ブレードを表示します。

    リソース グループ スコープでのユーザーのロールの割り当て

アクセス権の削除

ユーザー、グループ、アプリケーションのアクセス権を削除するには、 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
    

次のステップ