マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • アクセス権は、
  • Azure ポータル、
  • Azure コマンドライン ツール、
  • および Azure 管理 API

を使用して割り当てる。

  • Azure ポータルで RBAC を設定する場合、
    Access Control(IAM : Identity and Access Management)から行う。
  • スコープに対する特定アクションにアクセスできるユーザを
    ロールベースのアクセス制御 (RBAC : Role Based Access Control)で制御できる。

ロール

ロールの定義

アクセス権は、

のアクセス許可セット的なもの。

操作(主)

  • Actions、NotActions?を定義して、AssignableScopes?スコープに関連付けるる。
  • 操作のアクセス権は、Actionsの操作からNotActions?の操作を差し引くことで算出される。

データ操作(副)

  • DataActions?NotDataActions?を定義して、AssignableScopes?スコープに関連付ける。
  • データ操作のアクセス権は、DataActions?の操作からNotDataActions?の操作を差し引くことで算出される。

※ ただし、対応リソースが少ない(通常データ・ストアに依存した機能を使用する)ため、あまり使用しない。

定義の例

{
  "Name":  "Storage Blob Data Reader (Preview)",
  "Id":  "2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
  "IsCustom":  false,
  "Description":  "Allows for read access to Azure Storage blob containers and data",
  "Actions":  [
    "Microsoft.Storage/storageAccounts/blobServices/containers/read"
  ],
  "NotActions":  [],
  "DataActions":  [ 
    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
  ],
  "NotDataActions":  [],
  "AssignableScopes":  [
    "/"
  ]
}

ロールの種類

ロールの種類には、

がある。

組み込みロール

ユーザ、グループ、サービス割り当てられる組み込みのロールが用意されている。
ただし、説明文は的確ではない表現も多いため、必ず中身をしっかり確認すること。

  • 4つのプラットフォーム ロール
    • 所有者(Owner)
      「アクセス権の割当」を含め、全てを管理できる。
    • 共同作業者(Contributor)
      「アクセス権の割当」以外の、全てを管理できる。
    • 閲覧者(Reader)
      すべてを閲覧できるが、変更はできない。
    • ユーザ・アクセス管理者(User Access Administrator)
      Azure リソースへのユーザ アクセスを管理できる。
  • リソース固有ロール
  • ネットワークの共同作業者
    他の「リソース固有ロール」に含まれない
    ネットワーク系の設定変更が可能となっている。
    • すべてのネットワーク リソースを管理できるが、
    • ネットワーク リソースのアクセス許可は設定できない。
  • SQL Server の共同作業者
    (SQL Server Contributor)
    • SQL サーバーおよびデータベースを管理できるが、
    • そのセキュリティ関連ポリシーは設定できない。
  • Web サイトの共同作業者
    (Web Site Contributor)
    • Web サイトを管理できるが、
    • 接続されている Web プランは設定できない。
  • , etc. (全部で70種類程ある)

カスタム・ロール

組み込みのロールの中にアクセス権に関する特定の要件を満たすものがない場合、
Azure のロールベースのアクセス制御 (RBAC) でカスタム・ロールを作成する。

  • ただし、極力、カスタム・ロールは作らないようにする。
  • スコープをリソース・グループやリソース単位に絞って、
    共同作業者(Contributor)ロールを設定することで対応可能。

参考

スコープ

ロール関連付けるスコープ

指定できるスコープ

  • サブスクリプション
  • リソース・グループ
  • または単独のリソース

アクセス権の継承

スコープは、以下のようにRBACを継承する。

サブスクリプション <--- リソース・グループ <--- リソース

  • 親スコープでロール関連付けられると、
    その親に含まれる子へのアクセス権も付与される。
  • 例えば、リソース・グループへのアクセス権を持つユーザは、
    Web サイト、仮想マシン、サブネットなど、
    リソース・グループに含まれるすべてのリソースを管理できる。

アクセス権の割当

サブスクリプションの所有者は

ると、当該リソースを管理できるようになる。

割り当て

管理機能を使用して、以下のように

ロール <--->(ユーザ <---> グループ)

ユーザ・グループに詳細なロールを割り当てる。

関連付け

管理機能を使用して、以下のように

ロール <--->(ユーザ <---> グループ)<---> スコープ

上記スコープに関連付ける。

設定例

組み込みロール

管理者用の組み込みロール

組み込みロールを使用する。

  • プラットフォーム ロール
  • リソース固有ロール

作業者用の組み込みロール

組み込みロールを使用する。

  • プラットフォーム ロール
  • リソース固有ロール

カスタム・ロール

管理者用カスタム・ロールの例

作業者用カスタム・ロールの例

  • DevTest? Labs User」組込ロールを更に絞った、
    「仮想マシンの起動と停止」カスタム・ロールを作成。
  • Azure Cloud Shellなどを使用して以下を実行。
    • SubsctionId? を確認
      Get-AzureRmSubscription
    • カスタム・ロールを作成
      $role = Get-AzureRmRoleDefinition "Virtual Machine Contributor"
      
      $role.Id = $Null
      $role.Name = "仮想マシンの起動と停止"
      $role.Description = "仮想マシンの起動と停止、再起動ができます"
      
      $role.Actions.Clear()
      $role.Actions.Add("Microsoft.Compute/VirtualMachines/start/action")
      $role.Actions.Add("Microsoft.Compute/VirtualMachines/restart/action")
      $role.Actions.Add("Microsoft.Compute/VirtualMachines/read")
      $role.Actions.Add("Microsoft.Compute/virtualMachines//read")
      $role.Actions.Add("Microsoft.Compute/VirtualMachines/deallocate/action")
      
      $role.AssignableScopes.Clear()
      $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") <--- Get-AzureRmSubscription で取得した SubsctionId を指定。
      
      New-AzureRmRoleDefinition -Role $role

サービス

Azure サービス プリンシパル

Azure Managed ID

参考

Microsoft Docs

概要

ロールの定義

ロールの種類

ロールの割当

その他


Tags: :セキュリティ, :アカウント, :クラウド, :認証基盤, :Azure, :Active Directory


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-07-01 (木) 09:36:35 (32d)