> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/ja/zi-dong-hua/runbooks/runbook-permissions.md).

# Runbook の権限

{% embed url="<https://www.youtube.com/watch?v=bLi_k_Yzhyw>" %}

## 範囲

これは、Azure Tenant の特定の runbook へのアクセスを許可/拒否する方法について説明します。runbook として特定の操作を実行するために必要な MS Graph API の権限についてお探しであれば、ぜひ当社の [要件](/ja/zi-dong-hua/connecting-azure-automation/azure-ad-roles-and-permissions.md).

## 概要

"Runbook Permissions" は、特定のユーザーに対する runbook の表示可否を定義します。特定の runbook は、グローバルにブロック/非表示にもできます。

「 [Runbook Customizations](/ja/zi-dong-hua/runbooks/runbook-customization.md)」と同様に、これらの権限は RealmJoin 管理者として RealmJoin の Web ポータルで JSON 形式の構成を指定することで定義します。 <https://portal.realmjoin.com/settings/runbooks-permissions> .

### このガイドについて

まず構文を簡単に説明し、その後で完全な例を少しずつ組み立てます。完全なサンプルに直接進んで、そこから始めても構いません。 [そこから](#targetentitygroups).

## 構成の構文

### Runbook 名

runbook は、Azure Automation Account に表示される名前で参照します。たとえば、 `rjgit-group_general_remove-group`.

ワイルドカード ('\*') を使って複数の runbook に一致させることができます。1 つの文字列の中で複数のワイルドカードを使用することも可能です。たとえば、 `rjgit-*_security_*`。これは次のすべての例に該当します:

* `rjgit-org_security_list-inactive-users`
* `rjgit-device_security_enable-or-disable-device`

接頭辞 `rjgit-` は、公開 GitHub リポジトリからインポートされた runbook を示します。顧客固有の runbook には接頭辞はありません。たとえば、 `user_userinfo_custom-runbook`

### Entra ID Groups

Entra ID groups は、次のように Object ID で参照します。 `91688d11-9a34-42cd-8d1e-ce617d6c1234`。現在使用できるのはセキュリティ グループのみです。

## JSON 構造と例

完全な構成例を少しずつ組み立てていきます。

JSON 構成は複数のセクションで構成されますが、いずれのセクションも省略可能です。

「//」プレフィックスを使ってコメントを追加できます。

### EnabledRunbookPatterns

このセクションには、使用を許可する runbook の一覧が含まれます。このセクションを省略すると、すべての runbook が既定で有効/許可されます。

このセクションを定義すると、このセクションに記載された runbook のみが、いかなる role / support や admin からも使用可能になります。

#### 例

* フルネームを指定して、特定の個別 runbook のみを許可する

  `rjgit-group_general_remove-group`
* 共有リポジトリにあるデバイス関連の runbook をすべて許可する

  `rjgit-device_*`
* 共有の user runbook をすべて許可する

  `rjgit-user_*`
* 顧客固有（ローカル）の user 関連 runbook をすべて許可する

  `user_*`

これにより、group ベースおよびすべての org ベースの runbook の多くが暗黙的に除外されます。ご注意ください。

```
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ]
}
```

### DisabledRunbookPatterns

グローバルに無効化 / 禁止する runbook の一覧です。このセクションを省略するか空にすると、(次に示す) すべての有効な runbook が使用可能になります。 [EnabledRunbookPatterns](#enabledrunbookpatterns)) が使用可能です。

このセクションの項目は、次の項目よりも優先されます: [EnabledRunbookPatterns ](#enabledrunbookpatterns)— runbook は非表示になり、この Tenant の誰も使用できなくなります。

#### 例

前の `EnabledRunbookPatterns` セクションを再利用します。

* 共有の（`rjgit-`）runbook をすべて無効化する `security` カテゴリ。

```
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ]
}
```

### role

このセクションでは、runbook の一覧を Entra ID group に割り当てることができます。これにより、Tenant 内に複数の support/operator role を定義できます。

このセクションを省略すると、RealmJoin の support および administrators は、前のセクションで指定されたすべての runbook にアクセスできます。

{% hint style="warning" %}
有効にすると、いずれの role にも属さないユーザーには runbook が表示されません。
{% endhint %}

#### 例

ここまでを踏まえて、デバイスサポート role を作成しましょう `DeviceAdmin` そして user support role も作成します `UserAdmin`.

これらの role を複数の Entra ID groups に適用し、各 role ごとに許可された runbook の一覧を指定します。ご注意ください。これにより、user support role は少数の runbook のみに制限されます。

Entra ID group 名を示して読者の助けとなるよう、group の object id の横にコメント ("//") を追加しましょう。

```json
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ],
  "Roles": {
    "DeviceAdmin": {
      "Groups": [
        "9cbfc0af-c217-41e9-b790-3043788f1234", // 1つ目の Device Support AAD Group
        "5555c0af-c217-41e9-b790-3043788f1234"  // 2つ目の Device Support AAD Group - 別チーム
      ],
      "AllowedRunbookPatterns": [
        "rjgit-device_*"
      ]
    },
    "UserAdmin": {
      "Groups": [
        "1234c0af-c217-41e9-b790-3043788f1234" // User Support AAD Group
      ],
      "AllowedRunbookPatterns": [
        "rjgit-user_general_assign-or-unassign-license",
        "rjgit-user_mail_*",
        "user_*"
      ]
    }
  }
}
```

これで `UserAdmin` この role では次が可能になります:

* Tenant 内のすべてのユーザーにライセンスを割り当てる
* Tenant 内のすべてのユーザーのメールアドレスを変更する

その `DeviceAdmin` この role では

* Tenant 内の任意のデバイスを消去する

### TargetEntityGroups

重要な VIP ユーザーがいるかもしれません。だれでも対応できるサポート担当者が VIP のデバイスを消去したり、VIP のメールアドレスを変更したりできるべきではありません。"targeting" を使えば、重要なユーザーに対する role を専任チームに制限できます。

"Devices" は、Entra ID のデバイス オブジェクトではなく、主ユーザー/割り当てユーザーに基づいて target されます。これにより、純粋に user ベースの group model を維持できます。

重要な VIP ユーザーを含む Entra ID groups が存在すると仮定します。このセクションを使うことで、これらの特定の Entra ID groups (targets) に対して、より重要な role や runbook を慎重にスコープできます。

もちろん、このセクションを省略すると、Tenant 内のすべての user/group/device は同等に扱われます。

TargetEntityGroups を定義しても、このセクションに記載されていない他の group には影響しません。

#### 完全な例

group を想定します `0000c0af-c217-41e9-b790-3043788f0000` が、VIP ユーザーの group です。

新しい Entra ID group を導入します `4444c0af-c217-41e9-b790-3043788f4444` VIP ユーザーの管理を許可されたサポート担当者を含みます。これらのサポート担当者には、他の基本的なサポート権限もすべて必要なので、既存の role に追加します。

"Restricting" しても、サポーターに新しい role は付与されません。

```json
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ],
  "Roles": {
    "DeviceAdmin": {
      "Groups": [
        "9cbfc0af-c217-41e9-b790-3043788f1234", // 1つ目の Device Support AAD Group
        "5555c0af-c217-41e9-b790-3043788f1234", // 2つ目の Device Support AAD Group - 別チーム
        "4444c0af-c217-41e9-b790-3043788f4444"  // VIP Support Crew
      ],
      "AllowedRunbookPatterns": [
        "rjgit-device_*"
      ]
    },
    "UserAdmin": {
      "Groups": [
        "1234c0af-c217-41e9-b790-3043788f1234", // User Support AAD Group
        "4444c0af-c217-41e9-b790-3043788f4444"  // VIP Support Crew
      ],
      "AllowedRunbookPatterns": [
        "rjgit-user_general_assign-or-unassign-license",
        "rjgit-user_mail_*",
        "user_*"
      ]
    }
  },
  "TargetEntityGroups": {
    "0000c0af-c217-41e9-b790-3043788f0000": {  // VIP Users - 慎重に扱ってください！
      "RestrictRoles": {
        "UserAdmin": [
          "4444c0af-c217-41e9-b790-3043788f4444" // VIP Support
        ],
        "DeviceAdmin": [
          "4444c0af-c217-41e9-b790-3043788f4444" // VIP Support
        ]
      }
    }
  }
}
```

#### **例: US サポート担当者を US ユーザーの管理のみに制限する**

このシナリオでは、US に拠点を置く Support Staff が、US にいる Users のみを管理できるようにします。この制限を適用するには:

* 明示的に **拒否する** US Supporters に対し、Runbooks を実行する権限を **すべての Users に対して**.
* 特定して **許可する** Runbooks の実行を次に対してのみ **US Users**.

これにより、US Supporters の権限は想定対象 (US Users) に厳密に限定され、この範囲外のユーザーとの誤操作を防げます。

**実装**

1. Realm Join Portal で Runbook Runners Entra group を割り当てる必要があります
   1. Settings > Permissions > Runbook Runner Permissions
   2. RealmJoin Portal で一般的な Runbook 操作を許可するには、US Supporters Entra group が Runbook Runners Group のメンバーである必要があります。
2. Settings > Runbook Permissions で新しい Role を追加する
   1. Roles セクションで、USSupporters Role とその Entra group (group object ID) を追加します
   2. USSupporters に AllowedRunbookPatterns を追加します
3. TargetEntityGroups を変更します
   1. All-Users group は、USSupporters Role を空の値で Restrict する必要があります (ここでは Entra group object ID は追加しません)。これは暗黙の拒否です!
   2. US Users group は、US Supporters Entra group object ID に対して USSupporters Role を Restrict する必要があります

<figure><img src="/files/988ec89de7d506d7d8ad07960480e02afb4d4f05" alt=""><figcaption><p>US Support Staff を US Users の管理のみに制限する</p></figcaption></figure>

このシナリオの完全な例を以下に示します:

```json
{
  // ポータル権限:
  // Runbook Runner Role: US Supporters

  // group membership:
  // 3e1e7540-7f0c-483c-b9bf-500342e2467c: All-Users
  // c603278c-cc36-4661-bb7a-eecb7ab079f9: US Supporters
  // 0f76d01e-cc6b-4553-bf1d-e4ccedd9c824: US Users

  "EnabledRunbookPatterns": [ // mail と security Runbooks の全体的な有効化
    "rjgit-*_mail_*",
    "rjgit-*security*"
  ],
  "DisabledRunbookPatterns": [
    "*password*"
  ],

  "Roles": {
    "USSupporters": {
      "Groups": [
        "c603278c-cc36-4661-bb7a-eecb7ab079f9" // US Supporters
      ],
      "AllowedRunbookPatterns": [ // この Role - US Supporters に許可される Runbooks
        "rjgit-user_*",
        "rjgit-device_*",
        "rjgit-group_*"
      ]
    }
  },
  
  "TargetEntityGroups": {
    "3e1e7540-7f0c-483c-b9bf-500342e2467c": { // All-Users
      "RestrictRoles": {
        "USSupporters": [
          // 一般的に、US Supporters には Runbooks を許可しない
        ]
      }
    },
    "0f76d01e-cc6b-4553-bf1d-e4ccedd9c824": { // US Users
      "RestrictRoles": {
        "USSupporters": [
          "c603278c-cc36-4661-bb7a-eecb7ab079f9" // US Supporters
        ]
      }
    }
  }
}
```

### SchedulingEnabledRunbookPatterns

このセクションには、「schedulable」としてフラグ付けされる runbook の一覧が含まれます。RealmJoin Port では、これらの runbook のスケジュールを割り当て/管理できます。参照してください: [Runbook のスケジューリング](/ja/zi-dong-hua/runbooks/scheduling.md).

次の例は、SchedulingEnabledRunbookPatterns が定義されていない場合の既定の動作を示します:

```json
{
  "SchedulingEnabledRunbookPatterns": [
    "*_scheduled"
  ]
}
```

### SchedulingDisabledRunbookPatterns

このセクションには、「schedulable」としてフラグ付けされないようブラックリスト化する runbook の一覧が含まれます。RealmJoin Port では、これらの runbook のスケジュールを割り当て/管理することはできません。参照してください: [Runbook のスケジューリング](/ja/zi-dong-hua/runbooks/scheduling.md).

SchedulingEnabledRunbookPatterns と SchedulingDisabledRunbookPatterns の両方に存在する runbook は **返されません** schedulable になります。

既定では、ブラックリスト化される runbook はありません。次の例は構文を示すだけです:

```json
{
  "SchedulingDisabledRunbookPatterns": [
    "rjgit-user_*"
  ]
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/ja/zi-dong-hua/runbooks/runbook-permissions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
