ロール定義を作成する

完了

ロール定義は、JSON ファイルで定義されているアクセス許可のセットで構成されます。 各アクセス許可のセットには、アクセス許可を説明する ActionsNotActions などの名前があります。 アクセス許可セットの例を次に示します。

  • Actions アクセス許可では、許可されるアクションを識別します。

  • NotActions アクセス許可では、許可されないアクションを指定します。

  • DataActions アクセス許可では、データを変更または使用する方法を示します。

  • AssignableScopes アクセス許可には、ロール定義を割り当てることができるスコープが一覧表示されます。

次の図は、Azure RBAC の共同作成者ロールの詳細を示しています。

Diagram that shows built-in roles in Azure RBAC and custom roles. Permission sets are shown for the built-in Contributor role, including Actions, Not Actions, and Data Actions.

Actions アクセス許可には、Contributor ロールにすべてのアクション権限が含まれていると表示されます。 アスタリスク "*" のワイルドカードは "すべて" を意味します。NotActions アクセス許可は、Actions セットによって提供される特権を絞り込み、次の 3 つのアクションを拒否します。

  • Authorization/*/Delete: "すべて" の削除が許可されていません。
  • Authorization/*/Write: "すべて" の書き込みまたは変更が許可されていません。
  • Authorization/elevateAccess/Action: アクセス特権のレベルまたはスコープを増やすことが許可されていません。

共同作成者ロールには、データに与える影響を指定するための 2 つのアクセス許可もあります。

  • "NotDataActions": []: 特定のアクションが一覧表示されません。 したがって、すべてのアクションがデータに影響を与える可能性があります。
  • "AssignableScopes": ["/"]: ロールは、データに影響するすべてのスコープに割り当てることができます。

ロール定義について知っておく必要があること

ロール定義の次の特性を確認します。

  • Azure RBAC には、組み込みロールとアクセス許可セットが用意されています。 カスタム ロールとアクセス許可を作成することもできます。

  • Owner (所有者) 組み込みロールには、Azure で最高レベルのアクセス特権があります。

  • システムは、Actions アクセス許可から NotActions アクセス許可を引いて、ロールの "有効なアクセス許可" を決定します。

  • ロールの AssignableScopes アクセス許可には、管理グループ、サブスクリプション、リソース グループ、またはリソースを指定できます。

ロールのアクセス許可

ActionsNotActions のアクセス許可を一緒に使用して、各ロールに対して正確な特権を付与および拒否します。 Actions アクセス許可は、アクセスの幅を指定することができ、NotActions アクセス許可は、アクセスを絞り込むことができます。

次の表は、OwnerContributorReader (閲覧者) の 3 つの組み込みロールの定義で Actions または NotActions のアクセス許可がどのように使用されるかを示しています。 アクセス許可は、アクセスを制限するために Owner ロールから Contributor ロールと Reader ロールに絞り込まれます。

ロール名 説明 Actions のアクセス許可 NotActions のアクセス許可
[所有者] すべてのアクションを許可する * 該当なし
Contributor ロールの割り当ての書き込みまたは削除を除くすべてのアクションを許可する * - Microsoft.Authorization/*/Delete
- Microsoft.Authorization/*/Write
- Microsoft.Authorization/elevateAccess/Action
Reader すべての読み取りアクションを許可する /*/read 該当なし

ロール スコープ

ロールのアクセス許可を定義したら、AssignableScopes アクセス許可を使用して、ロールを割り当てる方法を指定します。 いくつか例を見てみましょう。

  • 2 つのサブスクリプションの割り当て用にロールのスコープを使用可能に指定します。

    "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624"

  • ネットワーク リソース グループでのみ割り当て用にロールのスコープを使用可能に指定します。

    "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network"

  • すべての要求元に対して割り当て用のロールのスコープを使用可能に指定します。

    "/"

ロールを作成するときに考慮する必要があること

Azure RBAC でのロール定義の作成については、次の点を考慮してください。

  • 組み込みのロールの使用を検討する。 Azure RBAC で組み込みのロール定義の一覧を確認します。 "所有者"、"バックアップ オペレーター"、"Web サイト共同作成者"、"SQL セキュリティ管理者" など、100 を超える定義済みのロール定義から選択できます。 組み込みロールは、一般、ネットワーク、ストレージ、データベースなど、いくつかのカテゴリのサービス、タスク、ユーザーに対して定義されます。

  • カスタム定義を作成することを検討する。 組織の特定のビジネス シナリオを満たすように、独自のカスタム ロールを定義します。 組織の特定の要件を満たすように、組み込みロールのアクセス許可を変更できます。 カスタム ロール定義を最初から作成することもできます。

  • アクセス スコープを制限することを検討する。 職務を遂行するために必要なスコープの最小レベルでロールを割り当てます。 管理者のような一部のユーザーは、インフラストラクチャを維持するために企業リソースへのフル アクセスを必要とします。 組織内の他のユーザーは、個人またはチーム リソースへの書き込みアクセスと、会社の共有リソースへの読み取り専用アクセスが必要になる場合があります。

  • データの変更を制御することを検討する。 特定のシナリオでのみ変更する必要があるデータまたはリソースを特定し、厳密なアクセス制御を適用します。 作業を完了するために必要な最小限のアクセス権にユーザーを制限します。 適切に計画されたアクセス管理戦略は、インフラストラクチャを維持し、セキュリティの問題を防ぐのに役立ちます。

  • 拒否の割り当てを適用することを検討する。 拒否の割り当て機能を実装する必要があるか判断します。 ロールの割り当てと同様に、"拒否割り当て" ではアクセスの拒否を目的として、特定のスコープでユーザー、グループ、またはサービス プリンシパルに一連の拒否アクションがアタッチされます。 拒否割り当てを使用すると、ロールの割り当てでアクセスを許可されている場合であっても、指定した Azure リソース アクションをユーザーが実行できなくなります。