> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# カスタムロールの管理

> このページでは、管理者がカスタムロールを追加、変更、削除する方法を説明します

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

このガイドは、ClickHouse Cloud で Admin ロールを持つユーザーを対象としています。

ClickHouse Cloud のお客様は、あらかじめ定義されたシステムロールを選択することも、ユーザーに割り当てるカスタムロールを作成することもできます。システムロールと、それに関連付けられた権限の詳細については、[Console roles and permissions](/ja/products/cloud/reference/security/console-roles)を参照してください。このガイドでは、カスタムロールの管理方法について詳しく説明します。

<h2 id="create-custom-role">
  カスタムロールを作成する
</h2>

カスタムロールには、組織、サービス、データベースの権限を組み合わせて含めることができます。権限は、すべてのサービスとデータベース、またはその一部に適用できます。

<Steps>
  <Step title="組織設定にアクセスし、`Users and roles` を選択する" id="users-and-roles-1">
    サービスページで、組織名を選択します。ポップアップメニューから `Users and roles` を選択します。

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/1_users_and_roles.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=f8618d7065f6c637de1d351ca5e3acf4" size="lg" width="3418" height="1702" data-path="images/cloud/guides/control_plane/1_users_and_roles.webp" />
  </Step>

  <Step title={<>`Roles` タブを選択する</>} id="roles-tab">
    画面上部中央の `Roles` タブを選択します。

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/2_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=210e6c180e9c3cfdc37e5b85dd5932db" size="lg" width="3414" height="984" data-path="images/cloud/guides/control_plane/manage_custom_roles/2_custom_role.webp" />
  </Step>

  <Step title={<>右上の <code>Create new role</code> を選択する</>} id="create-new-role">
    画面右上の `Create new role` ボタンを選択します。

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/3_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=bf92b64a37677b577a1bd50cc253c2f4" size="lg" width="3418" height="1706" data-path="images/cloud/guides/control_plane/manage_custom_roles/3_custom_role.webp" />
  </Step>

  <Step title="ロールに名前を付ける" id="name-the-role">
    わかりやすいロール名を入力します。この名前は、ユーザーや API キーにロールを割り当てる際に表示されます。

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/4_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=51d191d1d2cc83460937c82af81fd54c" size="md" width="1200" height="1704" data-path="images/cloud/guides/control_plane/manage_custom_roles/4_custom_role.webp" />
  </Step>

  <Step title={<>`Allow` をクリックし、権限のスコープを選択する</>} id="scope-permissions">
    `Allow` ボタンをクリックし、Organization、Service、Database の権限から選択します。すべての権限の説明については、[Console roles and permissions](/ja/products/cloud/reference/security/console-roles) を参照してください。

    <Tip>
      コンソールにログインするユーザーには、最低でも Organization > Access organization 権限が必要です。
    </Tip>

    <Info>
      **Data Sources タブへのアクセス**

      **Data Sources** タブにアクセスするには、現在このロールに `Manage selected services` 権限が必要です。
    </Info>

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/5_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=5e954eb67730729034287f693b45b692" size="md" width="1192" height="1700" data-path="images/cloud/guides/control_plane/manage_custom_roles/5_custom_role.webp" />
  </Step>

  <Step title="新しいロールを確認する" id="review-role">
    作成を確定する前に、新しいロールに割り当てた権限を確認します。完了したら `Create role` をクリックします。

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/6_custom_role.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=e21600cc306696d1fee859460030e980" size="md" width="1190" height="1696" data-path="images/cloud/guides/control_plane/manage_custom_roles/6_custom_role.webp" />
  </Step>
</Steps>

<h2 id="manage-database-roles">
  データベースロールを管理する
</h2>

コンソールの権限に加え、カスタムロールには、選択したサービスのデータベースへのアクセスを制御する `Data` ポリシーを含めることができます。これにより、各データベースで個別にロールを管理する代わりに、コンソールとデータベースへのアクセスを一元管理できます。

<Note>
  この機能は、ClickHouse バージョン 26.4 以降を実行しているサービスで利用できます。
</Note>

カスタムロールに `Data` ポリシーを追加すると、ClickHouse Cloud は選択した各サービスに、`cloud:` をプレフィックスとする対応するロールを作成します。たとえば、`readonly` というカスタムロールは、データベースでは `cloud:readonly` として表示されます。カスタムロールのメンバーは、SQL コンソールのパスワードレス認証を使用してサービスに接続すると、これらのデータベースの権限を取得します。

<Warning>
  Cloud 管理のデータベースロールは、SQL コンソール内の JWT セッションと互換性のない、手動で割り当てられた [`sql-console-role:<email>`](/ja/products/cloud/guides/security/cloud-access-management/manage-database-users#sql-console-users-and-roles) ロールに代わるものです。
</Warning>

<h3 id="manage-database-roles-prerequisites">
  前提条件
</h3>

サービス上のカスタムデータベースロールは、[JWT 認証](/ja/products/cloud/guides/security/cloud-access-management/jwt-authentication-setup)に依存しており、無効になっている間は適用されません。ロールに `Data` ポリシーを追加する前に、サービスに移動し、`Settings` を開き、`Security` セクションで `JWT authentication` カードを見つけます。`SQL Console` トグルが有効になっていることを確認してください。

<Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/N4hygmh4Hnw5ZMnE/images/cloud/security/jwt/jwt-sql-console-toggle.png?fit=max&auto=format&n=N4hygmh4Hnw5ZMnE&q=85&s=7a9ca31b052cca3154c701338b5bf001" alt="SQL Consoleトグルが有効になっているJWT認証カード" size="lg" force width="1666" height="288" data-path="images/cloud/security/jwt/jwt-sql-console-toggle.png" />

<Steps>
  <Step title="ロールダイアログを開く" id="open-role-dialog">
    [カスタムロールを作成](#create-custom-role)するか、既存のロールを編集します。
  </Step>

  <Step title="組織ポリシーを追加する" id="add-organization-policy">
    ロールダイアログで `Allow` をクリックし、`Organization` を選択して、`Access organization` 権限を有効にします。
  </Step>

  <Step title="サービスポリシーを追加する" id="add-service-policy">
    `Allow permissions` をクリックし、`Service` を選択して、データポリシーを適用するサービスを選び、`View selected services` 権限を有効にします。

    ロールのメンバーがコンソールにサインインし、データポリシーが適用される SQL コンソールでサービスを開くには、これら両方の権限が必要です。
  </Step>

  <Step title="データポリシーを追加する" id="add-data-permissions">
    `Allow permissions` をクリックし、`Data` を選択します。
  </Step>

  <Step title="サービスを選択する" id="select-data-permissions-service">
    ポリシーを適用するサービスを選択します。複数のサービスに同じ `Read-only` または `Admin` 権限を適用するには、サービスを追加します。
  </Step>

  <Step title="アクセスレベルを選択する" id="choose-data-access-level">
    `Read-only`、`Admin`、または `Custom` アクセスを選択します。`Custom` アクセスでは、ClickHouse の [`GRANT` ステートメント](/ja/reference/statements/grant)を使用して、特定のデータアクセス権限を定義します。`Custom` アクセスは、ポリシーの対象が単一のサービスである場合にのみ選択できます。複数のサービスにカスタム権限を定義するには、サービスごとに個別の `Data` ポリシーを追加します。

    <Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/RIApJQXHeIIpcfQr/images/cloud/guides/control_plane/manage_custom_roles/create_role_data_permissions.webp?fit=max&auto=format&n=RIApJQXHeIIpcfQr&q=85&s=fbd3d004de3b1d4175d8278070c49934" alt="カスタムGRANTステートメントでデータ権限が定義された新しいロールの作成ダイアログ" size="md" width="1174" height="1230" data-path="images/cloud/guides/control_plane/manage_custom_roles/create_role_data_permissions.webp" />
  </Step>

  <Step title="ロールを作成する" id="create-role-with-data-permissions">
    `Create role` をクリックします。選択したサービスにデータベースロールが作成されます。ロールがサービスに反映されるまで最大10分かかる場合がありますが、ロールを割り当てられたユーザーは、サービスにクエリを実行するとすぐにその権限を取得します。
  </Step>
</Steps>

<h3 id="verify-database-roles">
  データベースロールを確認する
</h3>

コンソール で管理されるロールは、データベース内に `cloud:` プレフィックスと `cloud` ストレージタイプを使用して作成され、作成後に表示されるまで最大 10 分かかる場合があります。これらを一覧表示するには、サービス の `system.roles` テーブルにクエリを実行します。

```sql theme={null}
SELECT * FROM system.roles;
```

```response theme={null}
┌─name───────────┬─id───────────────────────────────────┬─storage─┐
│ cloud:readonly │ 9a4910f4-abcf-4904-466a-717c8c75ac42 │ cloud   │
└────────────────┴──────────────────────────────────────┴─────────┘
```

<div id="update-custom-role">
  ## カスタムロールを更新する
</div>

カスタムロールは、作成後に更新できます。ロールから削除された権限はユーザーから失われ、追加された権限はユーザーに付与されます。

<Tip>
  ユーザーの権限は加算式です。ユーザーが複数のロールを通じてある操作を実行する権限を持っている場合、1 つのロールからのみ権限が削除されても、すぐにアクセスできなくなるとは限りません。
</Tip>

1. 組織設定に移動し、`Users and roles` を選択します
2. `Roles` タブを選択します
3. 更新するロールの横にある三点メニューを選択します
4. `Edit` を選択します
5. 権限を変更します
6. `Edit role` を選択します

<div id="delete-custom-role">
  ## カスタムロールを削除する
</div>

カスタムロールはいつでも削除できます。

<Warning>
  組織内には、管理権限を持つユーザーが少なくとも 1 人必要です。ロールを削除すると最後のユーザーから管理権限が失われる場合、そのロールは削除できません。この問題を回避するには、カスタムロールを削除する前に、少なくとも 1 人のユーザーに `Admin` システムロールを割り当ててください。
</Warning>

1. 組織設定に移動し、`Users and roles` を選択します
2. `Roles` タブを選択します
3. 削除するロールの横にある 3 点メニューを選択します
4. ロールの削除によってアクセスを失うユーザーと API キーを確認します。必要に応じて割り当てを調整してください。
5. `Delete role` を選択して完了します
