• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdatabase

acl

プラグイン
zilliz
ソース
GitHub で見る ↗
説明

次のような場合に使用: ユーザーが Zilliz Cloud のアクセス管理を行いたい場合です。具体的には、組織やプロジェクト独自のロール(役割)の作成・設定、組織メンバーへのロール付与・取り消し、または SCIM(ユーザー同期の仕組み)のグループにロールを割り当てるといった操作が対象です。 このスキルは、組織・プロジェクト・クラスタ(計算リソースのまとまり)といったクラウドレベルのアクセス制御(ロールベースの権限管理)に対応しています。Milvus データベース内のユーザーと権限については、別の「ユーザー・ロール」スキルを参照してください。

原文を表示

Use when the user wants to manage Zilliz Cloud access control -- custom org or project roles and their policies, granting or revoking a role for an organization member, or binding roles to a SCIM user group. This is cloud-level RBAC over organizations, projects, and clusters -- for database users and privileges inside Milvus see the user-role skill.

ユースケース
  • 組織やプロジェクトの独自ロールを作成・設定するとき
  • 組織メンバーへロール付与・取り消しを行うとき
  • SCIMグループにロールを割り当てるとき
  • クラウドレベルのアクセス制御を管理するとき
本文(日本語訳)

前提条件

  1. CLI(コマンドラインツール)がインストールされ、ログイン済みであること(セットアップスキルを参照)
  2. クラスタコンテキスト(クラスタ環境の指定)は不要。これらはコントロールプレーン(クラウドの中央制御基盤)の操作です
  3. /v2/roles、/v2/members、/v2/groups のルートが、呼び出し元のエンドポイントで有効になっていることが必要です。現在段階的に展開中のため、zilliz acl コマンドから 404 エラーが返されたら、そのエンドポイントではまだ API が利用できないということです

コマンド リファレンス

zilliz acl は3階層の構造になっており、acl role、acl member、acl group の3つから成ります。ルート展開の期間中は zilliz --help とシェル補完からは意図的に非表示ですが、以下のコマンドはすべて今すぐ実行でき、各コマンドの --help も機能します。

ロール

# 1つのプロジェクトのロール:事前定義されたプロジェクトロールと、
# そのプロジェクトのカスタムロール
# --project-id は必須です(省略されると対話的に入力を求めます)
zilliz acl role list --project-id <project-id>
# オプション: --page <n>, --page-size <n>, --all

# 組織レベルのロール
# (--project-id は使用不可。組織ロールはプロジェクト単位ではありません)
zilliz acl role list --type org

zilliz acl role describe <role-id>
# オプション: --project-id <project-id>

zilliz acl role principals <role-id> --all
# オプション: --project-id <project-id>, --page <n>, --page-size <n>
# そのロールがバインド(紐付け)されているメンバー、グループ、API キーを表示します

zilliz acl role delete <role-id>
# オプション: --project-id <project-id>
# 削除前に確認が入ります。-y を指定すればスキップできます

describe、principals、delete での --project-id は、事前定義されたプロジェクトロール(それ自体の境界を持たない)のプロジェクト範囲を指定します。カスタムロールは ID だけで指定します。

ロールの作成と更新

zilliz acl role create --name <role-name> --project-id <project-id> \
  --policy project_member:view \
  --policy 'serving_cluster:view,modify=in01-a,in01-b'
# オプション: --description <text>, --policies-file <path>

zilliz acl role update <role-id> --description <text>
# オプション:
#   --name <role-name>
#   --project-id <project-id>
#   --policy <shorthand>
#   --policies-file <path>
#   -y

作成できるのはプロジェクトロールだけです。API には組織ロール作成パスがありません。update はポリシーを完全に置き換え(マージしません)、ステートメント数を減らす場合は確認を求めます。-y を渡せば確認をスキップできます。

ポリシーの書き方

role create と role update でポリシーを指定する3つの方法:

  1. 短形式 (--policy、繰り返し指定可)。リクエスト前にローカルで検証されます:

    RESOURCE:ACTION[,ACTION...][=SELECTION[,SELECTION...]][@cluster=CLUSTER_ID]
    
    --policy project_member:view
    --policy 'serving_cluster:view,modify=in01-a,in01-b'
    --policy 'serving_cluster_data:read=mydb/*@cluster=in01-abc'
    --policy 'volume_data:read,write=*'
    

    SELECTION はステートメントが対象とするリソース インスタンスを指定します。* はすべてを意味し、データリソースは db/collection 形式も受け入れます。@cluster= はオプションの末尾マーカーなので、選択値内の @ はそのまま残ります。

  2. JSON ファイル (--policies-file <path>、- は標準入力から読み込み)。API が定義する policies 配列をそのまま指定します。--policy と相互排他的です:

    [
      { "resourceType": "serving_cluster", "privileges": ["view"], "resources": ["in01-a"] },
      { "resourceType": "project_member",  "privileges": ["view"] }
    ]
    
  3. 対話型ビルダー:ターミナル上でどちらのフラグもない場合、role create はリソース、アクション、選択項目をウォークスルーし、等価な --policy フラグを表示するので、次回から スクリプト化できます。ターミナル以外でどちらのフラグもない場合はコマンドがエラーになります。

メンバー

zilliz acl member roles <email|user-id>
zilliz acl member grant <email|user-id> --role <role-id|role-name>
zilliz acl member revoke <email|user-id> --role <role-id|role-name>
# grant/revoke のオプション: --project-id <project-id>; revoke は -y も指定可

メンバー引数はメールアドレスまたは usr- で始まるユーザーID を受け入れます。メールアドレスは解決に追加ルックアップが必要ですが、ユーザーID は直接処理されます。

グループ

zilliz acl group list
# オプション: --name <text>, --page <n>, --page-size <n>, --all

zilliz acl group members <group-id>
# オプション: --page <n>, --page-size <n>, --all

zilliz acl group roles <group-id>
zilliz acl group grant <group-id> --role <role-id|role-name>
zilliz acl group revoke <group-id> --role <role-id|role-name>
# grant/revoke のオプション: --project-id <project-id>; revoke は -y も指定可

グループは SCIM プロビジョニング(アカウント自動作成機構)から取得します。このコマンド ツリーはグループの読み取りとロール紐付けの管理を行い、作成は行いません。

プロジェクト範囲

--project-id は API が本当に必要な場合だけ対話的に入力を求められ、その値はその実行だけに使用され、~/.zilliz/config には書き込まれません。

コマンド --project-id がない場合の動作
role create ターミナルではプロンプト表示。それ以外はエラー
role list --type project ターミナルではプロンプト表示。それ以外はエラー
role list --type org 該当なし。フラグは即座に却下されます
member/group grant, member/group revoke ロールが事前定義されたプロジェクトロール(それ自体の境界を持たない)の場合のみプロンプト表示
同上(--role が名前の場合) 組織ロール名と一致するものがない場合、ターミナルではプロンプト表示。その場合フォールバックのプロジェクトロール検索にプロジェクト指定が必要
role update, role principals プロジェクト指定なしで実行可能

アクション カタログ

--policy で指定可能な RESOURCE:ACTION ペアのすべて。選択可能なリソースは create 以外のすべてのアクションで =SELECTION を受け入れます。create は選択を含めてはいけません。選択不可なリソースは選択を一切取りません。

リソースは異なるアクションで両レベルに現れることがあります。ステートメントを作成する前に「Level」列を確認してください。

リソース Level 選択可能 アクション
org_member 組織 いいえ view, create, modify, delete
group 組織 いいえ view, create, modify, delete
api_key 組織 いいえ view, create, modify, delete
org_role 組織 いいえ view, grant
project_role 組織 いいえ view, create, modify, delete, grant
project 組織 いいえ view, create
billing 組織 いいえ view, manage
authentication 組織 いいえ view, manage
org_control_ops 組織 いいえ view, modify, delete
recovery 組織 いいえ view, manage
project_member プロジェクト いいえ view, create, modify, delete
project_role プロジェクト いいえ view, create, modify, delete, grant
project プロジェクト いいえ view, modify, delete
security プロジェクト いいえ view, manage
backup プロジェクト いいえ view, manage
observability プロジェクト いいえ view, manage
serving_cluster プロジェクト はい create, view, modify, delete
on_demand_cluster プロジェクト はい create, view, modify, delete
volume プロジェクト はい create, view, modify, delete, usage
storage_integration プロジェクト はい create, view, modify, delete, usage
model_provider_integration プロジェクト はい create, view, modify, delete, usage
kms_integration プロジェクト はい create, view, modify, delete, usage
datadog_integration プロジェクト はい create, view, modify, delete, usage
serving_cluster_data プロジェクト はい read, write, all
on_demand_compute_data プロジェクト いいえ read, write, all
volume_data プロジェクト はい read, write, all

ガイダンス

  • これはクラウドレベルの RBAC(ロールベース アクセス制御)であり、Milvus RBAC ではありません。 zilliz acl は、Zilliz Cloud 内の組織、プロジェクト、クラスタ、ボリュームを操作できるのは誰かを統制します。Milvus クラスタ内のデータベースユーザー、ロール、権限(Search、Insert、CreateCollection など)については、user-role スキルを使用してください。この2つは独立したシステムで、どちらも相手に権限を付与しません。

  • grant と revoke はべき等(冪等)ではありません。 既存のバインディングを再度付与したり、存在しないバインディングを取り消したりすると、バックエンドから拒否されます。失敗したコマンドを再試行するのではなく、acl member roles <member> または acl role principals <role-id> で先に確認してください。

  • --role は ID または正確な名前を受け入れます。 名前は先に組織ロール内で、次に1つのプロジェクト内で照合されるので、ターミナル以外からプロジェクトロールを名前で付与するには --project-id が必要です。曖昧な名前は推測をしないで候補を一覧表示します。解決するにはロール ID を渡してください。スクリプトでは ID を優先してください。

  • 組織ロールはここでは読み取り専用です。 バックエンドは org_role の create / modify / delete アクションを定義していないので、role create はプロジェクトのみ、組織ロールの更新または削除は常に失敗します。role list --type org と role describe は通常どおり動作します。

  • リソースは両レベルに異なるアクションで存在できます。 project_role と project は組織レベルのリソースとして1回、プロジェクトレベルのリソースとして1回、それぞれ現れます。ステートメントを作成する前に「Level」列を読んでください。レベルの不一致はそのレベルでは未知のリソースとして報告されます。

  • 選択ルールはリクエスト前にローカルで施行されます。 選択可能なリソースのアクションには =SELECTION が必要です(create は除く。create は選択を含めてはいけません)。serving_cluster:create,view=in01-a は有効です。選択は view にのみバインドされます。

  • role update はポリシーを完全に置き換えます。 1つのステート

原文(English)を表示

Prerequisites

  1. CLI installed and logged in (see setup skill).
  2. No cluster context required -- these are control-plane operations.
  3. The /v2/roles, /v2/members, and /v2/groups routes must be enabled for the caller's endpoint. They are still rolling out: a 404 from any zilliz acl command means the API is not live there yet.

Commands Reference

zilliz acl is a three-level tree -- acl role, acl member, and acl group. It is deliberately absent from zilliz --help and shell completion while the routes roll out, but every command below runs today and every --help under it works.

Roles

# One project's roles: the pre-defined project roles plus that project's
# custom roles. --project-id is required; it is prompted for when omitted.
zilliz acl role list --project-id <project-id>
# Optional: --page <n>, --page-size <n>, --all

# Org roles (--project-id is rejected here: org roles have no project boundary)
zilliz acl role list --type org

zilliz acl role describe <role-id>
# Optional: --project-id <project-id>

zilliz acl role principals <role-id> --all
# Optional: --project-id <project-id>, --page <n>, --page-size <n>
# Lists the members, groups, and API keys the role is bound to.

zilliz acl role delete <role-id>
# Optional: --project-id <project-id>
# Confirms first; pass -y to skip.

--project-id on describe, principals, and delete is the project boundary of a pre-defined project role, which carries none of its own. A custom role is addressed by ID alone.

Create and update a role

zilliz acl role create --name <role-name> --project-id <project-id> \
  --policy project_member:view \
  --policy 'serving_cluster:view,modify=in01-a,in01-b'
# Optional: --description <text>, --policies-file <path>

zilliz acl role update <role-id> --description <text>
# Optional:
#   --name <role-name>
#   --project-id <project-id>
#   --policy <shorthand>
#   --policies-file <path>
#   -y

Only project roles can be created; the API has no org-role create path. update replaces the policy wholesale -- it never merges -- and prompts before shrinking the statement count unless -y is passed.

Writing a policy

Three ways to supply the policy on role create and role update:

  1. Shorthand (--policy, repeatable), validated locally before the request:

    RESOURCE:ACTION[,ACTION...][=SELECTION[,SELECTION...]][@cluster=CLUSTER_ID]
    
    --policy project_member:view
    --policy 'serving_cluster:view,modify=in01-a,in01-b'
    --policy 'serving_cluster_data:read=mydb/*@cluster=in01-abc'
    --policy 'volume_data:read,write=*'
    

    SELECTION picks which instances the statement covers; * means all, and data resources also accept the db/collection form. @cluster= is an optional trailing marker, so an @ inside a selection value is left alone.

  2. JSON file (--policies-file <path>, - reads stdin), taking the policies array exactly as the API defines it. Mutually exclusive with --policy:

    [
      { "resourceType": "serving_cluster", "privileges": ["view"], "resources": ["in01-a"] },
      { "resourceType": "project_member",  "privileges": ["view"] }
    ]
    
  3. Interactive builder: with neither flag on a terminal, role create walks through resource, actions, and selection, then prints the equivalent --policy flags so the run can be scripted next time. Off a terminal with neither flag the command errors instead.

Members

zilliz acl member roles <email|user-id>
zilliz acl member grant <email|user-id> --role <role-id|role-name>
zilliz acl member revoke <email|user-id> --role <role-id|role-name>
# Optional on grant/revoke: --project-id <project-id>; revoke also takes -y

The member argument takes an email or a usr- user ID. An email costs one extra lookup to resolve; a user ID goes straight through.

Groups

zilliz acl group list
# Optional: --name <text>, --page <n>, --page-size <n>, --all

zilliz acl group members <group-id>
# Optional: --page <n>, --page-size <n>, --all

zilliz acl group roles <group-id>
zilliz acl group grant <group-id> --role <role-id|role-name>
zilliz acl group revoke <group-id> --role <role-id|role-name>
# Optional on grant/revoke: --project-id <project-id>; revoke also takes -y

Groups come from SCIM provisioning; this command tree reads them and manages their role bindings, it does not create them.

Project scoping

--project-id is prompted for only where the API genuinely requires it, and the answer is used for that invocation alone -- it is never written to ~/.zilliz/config.

Command Behavior when --project-id is absent
role create prompts on a terminal; errors otherwise
role list --type project prompts on a terminal; errors otherwise
role list --type org not applicable -- the flag is rejected outright
member/group grant, member/group revoke prompts only when the role is a pre-defined project role, which carries no boundary of its own
the same, given a --role name prompts on a terminal when no org role matches the name, since the project-role listing it falls back to requires a project
role update, role principals proceeds without a project

Action catalog

Every RESOURCE:ACTION pair --policy accepts. A selectable resource takes =SELECTION on every action except create, which must never carry one; a resource that is not selectable takes no selection at all.

A resource can appear at both levels with different actions -- read the Level column before composing a statement.

Resource Level Selectable Actions
org_member org no view, create, modify, delete
group org no view, create, modify, delete
api_key org no view, create, modify, delete
org_role org no view, grant
project_role org no view, create, modify, delete, grant
project org no view, create
billing org no view, manage
authentication org no view, manage
org_control_ops org no view, modify, delete
recovery org no view, manage
project_member project no view, create, modify, delete
project_role project no view, create, modify, delete, grant
project project no view, modify, delete
security project no view, manage
backup project no view, manage
observability project no view, manage
serving_cluster project yes create, view, modify, delete
on_demand_cluster project yes create, view, modify, delete
volume project yes create, view, modify, delete, usage
storage_integration project yes create, view, modify, delete, usage
model_provider_integration project yes create, view, modify, delete, usage
kms_integration project yes create, view, modify, delete, usage
datadog_integration project yes create, view, modify, delete, usage
serving_cluster_data project yes read, write, all
on_demand_compute_data project no read, write, all
volume_data project yes read, write, all

Guidance

  • This is cloud-level RBAC, not Milvus RBAC. zilliz acl governs who can act on organizations, projects, clusters, and volumes in Zilliz Cloud. For database users, roles, and privileges inside a Milvus cluster (Search, Insert, CreateCollection, ...) use the user-role skill instead. The two are separate systems and neither grants the other.
  • Grant and revoke are not idempotent. Re-granting an existing binding and revoking an absent one are both rejected by the backend. Check acl member roles <member> or acl role principals <role-id> first rather than retrying a failed call.
  • --role takes an ID or an exact name. A name is matched against the org roles first and then inside one project, so granting a project role by name needs --project-id off a terminal. An ambiguous name lists the candidates instead of guessing -- pass the role ID to resolve it. Prefer IDs in scripts.
  • Org roles are read-only here. The backend defines no org_role create / modify / delete actions, so role create is project-only and updating or deleting an org role always fails. role list --type org and role describe work normally.
  • A resource can exist at both levels with different actions. project_role and project appear once as an org-level resource and once as a project-level one. Read the Level column before composing a statement; a level mismatch is reported as an unknown resource for that level.
  • Selection rules are enforced locally before the request. An action on a selectable resource needs =SELECTION -- except create, which must never carry one. serving_cluster:create,view=in01-a is valid: the selection binds to view only.
  • role update replaces the policy wholesale. To add one statement, read the current policy with role describe and resend the full set, including the statements being kept.
  • Deleting a role cascades to its bindings. Confirm the blast radius with role principals <role-id> before deleting, and tell the user who loses access.
  • The action catalog above is a snapshot of what the backend seeds. It drives local validation, so when the server rejects a policy this client accepted, surface the server's message verbatim -- it is the authority, not the table.
  • A 404 from any zilliz acl command means the ACL routes are not enabled on that endpoint yet. This is a rollout state, not a permissions problem: tell the user to contact support rather than retrying or changing the command.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。