mcpField
H
huawei-cloud-swr-image-governance

huawei-cloud-swr-image-governance

github.com/huaweicloudクラウド・DevOps59182 回インストール2 日前に更新
リポジトリ

huawei-cloud-swr-image-governance について

hcloud CLI で Huawei Cloud SWR のイメージガバナンスを管理するスキルです。コンテナイメージのアクセス権や共有ポリシーを担当するチーム向けに、権限、保持ルール、共有ドメイン、委任を扱い、書き込み操作にはユーザー確認を求めます。

主な機能

  1. 01名前空間とリポジトリの権限管理
  2. 02イメージ保持ルールの作成と管理
  3. 03共有ダウンロードドメインと共有リポジトリの管理
  4. 04SWR 委任の確認と作成
  5. 05リポジトリのアクセサリーと参照の一覧表示

活用シーン

  1. 01ユーザーのリポジトリアクセス権の付与・取り消し
  2. 02イメージタグの自動クリーンアップ設定
  3. 03組織間アクセス用の共有ドメイン設定
  4. 04SWR の共有機能や委任状態の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-swr-image-governance

インストール後、Claude Code で/huawei-cloud-swr-image-governanceを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
cli-installation-guide.md
common-pitfalls.md
iam-policies.md
output-format.md
swr-governance-api-guide.md
task-image-sharing.md
task-namespace-permissions.md
task-repository-permissions.md
task-retention-management.md
task-shared-domains.md
verification-method.md

詳細

Huawei Cloud SWR イメージガバナンス

概要

このスキルは、hcloud CLI を使用して、権限、保持ポリシー、共有、エージェンシーへの委任など、Huawei Cloud SWR(Software Repository for Container)のガバナンス機能を提供します。

アーキテクチャ:hcloud CLI → SWR Service API → 権限/保持/ドメイン/共有/エージェンシーのリソース

関連スキル:

  • huawei-cloud-swr-image-management - イメージのライフサイクル管理(名前空間、リポジトリ、タグ、認証、クォータ)
  • huawei-cloud-swr-image-automation - イメージの自動化操作(同期、トリガー、ドメイン)
  • huawei-cloud-swr-enterprise-instance - エンタープライズインスタンスの管理

対象外:

このスキルでは、以下の操作をサポートしていません。ユーザーからこれらの操作を依頼された場合は、その旨を伝え、適切なスキルを案内してください。

操作代わりに使用するもの理由
名前空間の作成/削除/一覧表示huawei-cloud-swr-image-management名前空間のライフサイクル管理であり、ガバナンスではないため
リポジトリまたはタグの作成/削除huawei-cloud-swr-image-managementリポジトリ/タグのライフサイクル管理であり、ガバナンスではないため
イメージのプッシュ/プル(docker login)huawei-cloud-swr-image-managementイメージ操作であり、ガバナンスではないため
認証トークンの作成huawei-cloud-swr-image-managementトークン管理であり、ガバナンスではないため
SWR クォータの一覧表示huawei-cloud-swr-image-managementクォータの照会であり、ガバナンスではないため
イメージ同期ルールの作成huawei-cloud-swr-image-automation同期は自動化であり、ガバナンスではないため
トリガーの作成/削除huawei-cloud-swr-image-automationトリガーは自動化であり、ガバナンスではないため
セキュリティスキャンの開始huawei-cloud-swr-image-automationスキャンは自動化であり、ガバナンスではないため
不変ルール(不可変)の作成N/A(現在、どのスキルでもサポートされていません)Huawei Cloud SWR コンソールを使用してください
監査ログの表示Huawei Cloud コンソールまたは CES を使用監査ログはガバナンス操作ではないため
エンタープライズインスタンスの作成/削除huawei-cloud-swr-enterprise-instanceインスタンスのライフサイクル管理であり、ガバナンスではないため

機能:

  • 名前空間レベルの権限の付与、照会、変更、取り消し
  • リポジトリレベルの権限の付与、照会、変更、取り消し
  • 自動クリーンアップ用のイメージ保持ルールの作成と管理
  • 組織間アクセス用の共有ダウンロードドメインの作成と管理
  • 共有リポジトリの一覧表示と共有機能の利用条件の確認
  • SWR 操作のエージェンシー委任の確認と作成
  • リポジトリのアクセサリーと参照の一覧表示

一般的なユースケース:

  • 「ユーザー『dev-team』に名前空間『group-dev』の編集権限を付与する」
  • 「名前空間『group-dev』へのアクセス権を持つユーザーをすべて一覧表示する」
  • 「リポジトリ『nginx』のタグを直近 10 件だけ保持する保持ルールを設定する」
  • 「リポジトリ『my-app』用の共有ダウンロードドメインを作成する」
  • 「共有リポジトリをすべて一覧表示する」
  • 「イメージ共有機能が有効かどうかを確認する」
  • 「SWR のエージェンシー委任の状態を確認する」
  • 「リポジトリに対するユーザーの権限を取り消す」

ワークフロー

  1. ⚠️ 課金の確認(必須) — 操作を実行する前に、課金への影響が生じる可能性をユーザーに伝え、明示的な同意を得てください。
    • ガバナンス操作:権限管理、保持ルール、共有設定は無料です。ただし、画像を削除する保持ルールはストレージコストを削減し、共有ダウンロードドメインはトラフィックコストを増加させる可能性があります。
    • 代理店への委任:SWR の代理店委任を作成しても直接的なコストは発生しませんが、課金に影響する可能性のあるサービス間操作が可能になります。
    • ユーザーに次の確認を求めてください:「課金への影響を理解したうえで、続行しますか?(はい/いいえ)」
    • ユーザーが明示的に同意した場合にのみ続行してください。ユーザーが拒否した場合は中止し、操作を実行しないでください。
  2. ユーザーのリクエストを解析する — ガバナンス操作(権限、保持、ドメイン、共有、代理店)を特定します
  3. 対象範囲を確認する — 要求された操作が対象範囲外に記載されている場合は、ユーザーに伝え、適切なスキルを提案します。操作は実行しないでください。
  4. 前提条件を確認する — hcloud CLI のインストールと認証情報の設定を確認します
  5. パラメーターを確認する — 操作、対象リソース、パラメーターをユーザーに表示し、確認を求めます
  6. 読み取り操作を実行する — クエリ操作(Show、List、Check)では、hcloud CLI を直接実行します
  7. 書き込み操作を確認する — 書き込み操作(Create、Update、Delete)では、実行前にユーザーに確認を求めます(パラメーターの確認を参照)
  8. 出力を解析して整形する — 関連フィールドを抽出し、表または構造化出力として整形します
  9. 結果を報告する — 権限の変更や保持ルールの詳細など、背景情報とともに結果を提示します
  10. 次のアクションを提案する — 関連する操作を推奨します(例:権限の付与後に、Show での確認を提案します)
パラメーターの確認

すべての書き込み操作(作成、更新、削除)は、実行前にユーザーの明示的な確認が必要です。

書き込み操作を実行する前に、スキルは次の手順を実行する必要があります。

  1. 実行する hcloud コマンドをそのまま表示する
  2. 対象リソース(名前空間、リポジトリ、ドメインなど)を表示する
  3. 適用する変更(権限レベル、保持ルール、ドメイン設定)を表示する
  4. 処理を進める前に、ユーザーの確認(「yes」/「confirm」)を待つ
  5. ユーザーが拒否した場合は、操作を中止して手順 1 に戻る

確認が必要な書き込み操作:

操作コマンドリスクレベル説明
名前空間の権限を付与CreateNamespaceAuth🟡 中名前空間配下のすべてのリポジトリへのアクセスを付与します。auth=7 の場合は完全な制御権限(リポジトリの作成/削除、権限の管理)が付与されるため、ユーザーにその旨を警告してください
名前空間の権限を更新UpdateNamespaceAuth🟡 中名前空間のアクセスレベルを変更します。権限を引き下げると、ユーザーが既存の操作を実行できなくなり、業務ワークフローに影響する可能性があります
名前空間の権限を取り消しDeleteNamespaceAuth🟠 高名前空間へのアクセスをすべて削除します。業務の中断につながる可能性があります。この名前空間を使用する CI/CD パイプラインやサービスは、ただちにアクセスできなくなります
リポジトリの権限を付与CreateUserRepositoryAuth🟡 中特定のリポジトリへのアクセスを付与します。auth=7 の場合は、そのリポジトリへの完全な制御権限が付与されます
リポジトリの権限を更新UpdateUserRepositoryAuth🟡 中リポジトリのアクセスレベルを変更します。権限を引き下げると、現在のアクセスレベルに依存する既存のワークフローが機能しなくなる可能性があります
リポジトリの権限を取り消しDeleteUserRepositoryAuth🟠 高リポジトリへのアクセスをすべて削除します。業務の中断につながる可能性があります。このリポジトリからイメージを取得するサービスは、ただちにアクセスできなくなります
保持ルールを作成CreateRetention🟠 高自動クリーンアップポリシーを作成します。ルールの実行時に、保持条件に一致しないタグは自動的に削除され、データを復元できません
保持ルールを更新UpdateRetention🟠 高クリーンアップポリシーを変更します。条件を変更すると、以前は保持されていたタグが削除される可能性があり、データを復元できません
保持ルールを削除DeleteRetention🟡 中自動クリーンアップポリシーを削除します。既存のタグは保持されますが、今後クリーンアップは実行されません
共有ドメインを作成CreateRepoDomains🟡 中組織をまたいだアクセスを通じて、別のアカウントとイメージを共有します
共有ドメインを更新UpdateRepoDomains🟡 中共有設定(有効期限、権限など)を変更します
共有ドメインを削除DeleteRepoDomains🟠 高アカウント間のアクセスを取り消します。対象組織のユーザーは、このドメインを介してイメージを取得できなくなります
委任を作成CreateAgency🟠 高SWR の委任を作成します。SWR に、お客様に代わって他のサービス(OBS、CCE)へアクセスする権限を付与します。処理を進める前に、委任の範囲を確認してください

前提条件

1. hcloud CLI の要件(必須)
  • hcloud CLI がインストールされていること(バージョン >= 7.2.2)
  • hcloud version を実行してインストールを確認する
  • 初回使用時:printf "y\n" | hcloud version を実行してプライバシーに関する声明に同意する
2. 認証情報の設定

hcloud CLI は環境変数を使って2種類の認証情報モードをサポートしており、実行時に自動的に判別します。

モード A — 長期 AK/SK(永続的なアクセス):

export HUAWEI_CLOUD_AK=<your-ak>
export HUAWEI_CLOUD_SK=<your-sk>
export HUAWEI_CLOUD_REGION=cn-north-4

モード B — 一時的な AK/SK + SecurityToken(一時的なアクセスや委任されたアクセスに推奨):

export HUAWEI_CLOUD_AK=<your-temp-ak>
export HUAWEI_CLOUD_SK=<your-temp-sk>
export HUAWEI_CLOUD_SECURITY_TOKEN=<your-security-token>
export HUAWEI_CLOUD_REGION=cn-north-4

HUAWEI_CLOUD_SECURITY_TOKEN が設定されている場合、hcloud CLI は一時的な認証情報による認証を自動的に使用します。AK/SK のみが設定されている場合は、長期認証情報による認証を使用します。

  • セキュリティルール:
    • 🚫 AK/SK/SecurityToken の値を、コード、会話、コマンド内で決して公開しないでください
    • 🚫 認証情報の確認に echo $HUAWEI_CLOUD_AK や echo $HUAWEI_CLOUD_SK を決して使用しないでください
    • ✅ 環境変数 HUAWEI_CLOUD_AK、HUAWEI_CLOUD_SK、HUAWEI_CLOUD_REGION、HUAWEI_CLOUD_SECURITY_TOKEN を使用してください
    • ✅ クラウド操作にはルートアカウントより IAM ユーザーを優先してください
    • ✅ 機密性の高い操作では MFA を有効にしてください

⚠️ 重要なセキュリティ上の注意:

  • 認証情報をバージョン管理に決してコミットしないでください
  • 必要最小限の権限を持つ IAM ユーザーを使用してください
  • 機密性の高い操作では MFA を有効にしてください
  • AK/SK を定期的にローテーションしてください
3. IAM 権限の要件
API アクション権限目的
swr:namespace:auth:createNS 認証の作成名前空間の権限を付与する
swr:namespace:auth:getNS 認証の取得名前空間の権限を照会する
swr:namespace:auth:updateNS 認証の更新名前空間の権限を変更する
swr:namespace:auth:deleteNS 認証の削除名前空間の権限を取り消す
swr:repository:auth:createリポジトリ認証の作成リポジトリの権限を付与する
swr:repository:auth:getリポジトリ認証の取得リポジトリの権限を照会する
swr:repository:auth:updateリポジトリ認証の更新リポジトリの権限を変更する
swr:repository:auth:deleteリポジトリ認証の削除リポジトリの権限を取り消す
swr:retention:create保持ルールの作成保持ルールを作成する
swr:retention:list保持ルールの一覧保持ルールを一覧表示する
swr:retention:get保持ルールの取得保持ルールの詳細を表示する
swr:retention:update保持ルールの更新保持ルールを変更する
swr:retention:delete保持ルールの削除保持ルールを削除する
swr:domain:createドメインの作成共有ダウンロードドメインを作成する
swr:domain:listドメインの一覧共有ダウンロードドメインを一覧表示する
swr:domain:getドメインの取得ドメインの詳細を表示する
swr:domain:updateドメインの更新ドメインの設定を変更する
swr:domain:deleteドメインの削除共有ダウンロードドメインを削除する
swr:share:list共有リポジトリの一覧共有リポジトリを一覧表示する
swr:share:get共有リポジトリの取得共有リポジトリの詳細を表示する
swr:share:feature:get共有機能の取得共有機能の利用可否を確認する
swr:global:feature:getグローバル機能の取得グローバル機能の利用可否を確認する
swr:agency:check委任の確認委任の状態を確認する
swr:agency:create委任の作成委任を作成する
swr:accessory:list付属リソースの一覧リポジトリの付属リソースを一覧表示する
swr:reference:list参照の一覧リポジトリの参照を一覧表示する

ポリシー JSON の全容については、IAM 権限ポリシーを参照してください。

権限エラーへの対応:

  1. 権限エラーが原因でコマンドが失敗した場合は、references/iam-policies.mdを読み込みます
  2. 必要な権限の一覧とポリシー JSON をユーザーに表示します
  3. IAM コンソールでカスタムポリシーを作成し、権限を付与するようユーザーを案内します
  4. 実行を一時停止し、権限が付与されたことをユーザーが確認するまで待機します

KooCLI コマンド形式の標準

すべてのコマンドは、標準の hcloud KooCLI 形式に従います。

hcloud SWR <Operation> --param1=value1 --param2=value2 --cli-region=<region>

主な規約:

  • サービス名:SWR(大文字表記。KooCLI のサービス一覧に準拠)
  • 操作名:パスカルケース(例:ShowNamespaceAuth、CreateRetention、ListRepoDomains)
  • リージョンパラメーター:--cli-region=<value>(デフォルト:cn-north-4、または HUAWEI_CLOUD_REGION 環境変数)
  • 出力形式:--cli-output=json(エージェントによる処理用)
  • JMESPath フィルタリング:--cli-query="<expression>"(出力を減らすため)
  • 配列形式のパラメーター:--1.auth=7 --1.user_id=xxx(インデックスは 0 ではなく 1 から始まります)
  • ネストされたオブジェクトのパラメーター:--rules.1.template=tag_rule --rules.1.params='{"num":"10"}'

例 — 読み取り操作:

hcloud SWR ShowNamespaceAuth --namespace=pancake --cli-region=cn-north-4 --cli-output=json

例 — 書き込み操作(ユーザーの確認が必要):

# Step 1: Display command and parameters for user confirmation
# Step 2: After user confirms, execute:
hcloud SWR CreateNamespaceAuth --namespace=pancake --1.auth=7 --1.user_id=<user-id> --1.user_name=<user-name> --cli-region=cn-north-4

主要なコマンド

1. 名前空間の権限

詳細なワークフローについては、タスク:名前空間の権限を参照してください。

# Show namespace permissions (who has access and their auth levels)
hcloud SWR ShowNamespaceAuth --namespace=pancake --cli-region=cn-north-4

# Grant namespace permission to a user
hcloud SWR CreateNamespaceAuth --namespace=pancake --1.auth=7 --1.user_id=05949eb5350010e21f85c017722182de --1.user_name=hwstaff_p00506267 --cli-region=cn-north-4

# Update namespace permission for a user
hcloud SWR UpdateNamespaceAuth --namespace=pancake --1.auth=3 --1.user_id=05949eb5350010e21f85c017722182de --1.user_name=hwstaff_p00506267 --cli-region=cn-north-4

# Revoke namespace permission for a user (DELETE uses array<string>, not array<object>)
hcloud SWR DeleteNamespaceAuth --namespace=pancake --1=05949eb5350010e21f85c017722182de --cli-region=cn-north-4

認証値:7 = 管理(フルコントロール)、3 = 編集(プッシュ/プル)、1 = 読み取り(プルのみ)

⚠️ 配列形式のパラメーター:権限操作では、異なる配列形式を使用します。

  • 作成/更新(array):[N] が配列インデックス(1 から開始)となる --[N].auth、--[N].user_id、--[N].user_name 形式を使用します。ユーザーが 1 人の場合は、--1.auth=7 --1.user_id=xxx --1.user_name=xxx を使用します。
  • 削除(array):配列要素がユーザー ID 文字列そのものとなる --[N]=<user_id> 形式を使用します。ユーザーが 1 人の場合は、--1=<user_id> を使用します。削除操作では --1.user_id= や --1.user_name= を使用しないでください。 詳細はよくある落とし穴を参照してください。
  • 2. リポジトリの権限

    詳細なワークフローについては、タスク:リポジトリの権限を参照してください。

    # Show repository permissions
    hcloud SWR ShowUserRepositoryAuth --namespace=pancake --repository=openclaw-sandbox --cli-region=cn-north-4
    
    # Grant repository permission to a user
    hcloud SWR CreateUserRepositoryAuth --namespace=pancake --repository=openclaw-sandbox --1.auth=7 --1.user_id=05949eb5350010e21f85c017722182de --1.user_name=hwstaff_p00506267 --cli-region=cn-north-4
    
    # Update repository permission for a user
    hcloud SWR UpdateUserRepositoryAuth --namespace=pancake --repository=openclaw-sandbox --1.auth=3 --1.user_id=05949eb5350010e21f85c017722182de --1.user_name=hwstaff_p00506267 --cli-region=cn-north-4
    
    # Revoke repository permission for a user (DELETE uses array<string>, not array<object>)
    hcloud SWR DeleteUserRepositoryAuth --namespace=pancake --repository=openclaw-sandbox --1=05949eb5350010e21f85c017722182de --cli-region=cn-north-4
    

    認証値:名前空間の権限と同じです。7 = 管理、3 = 編集、1 = 読み取り

    3. エージェンシー委任
    # Check if agency delegation is enabled
    hcloud SWR CheckAgency --cli-region=cn-north-4
    
    # Create agency delegation for SWR
    hcloud SWR CreateAgency --cli-region=cn-north-4
    

    用途:

    • エージェンシー委任により、SWR はお客様に代わって他のサービス(OBS、CCE)にアクセスできます。
    • OBS へのイメージ同期や、CCE によるトリガー起動のデプロイなどの機能に必要です。
    • CheckAgency はエージェンシーがすでに設定されているかどうかを返し、CreateAgency は委任を設定します。
    4. 保持ルール

    詳細なワークフローについては、タスク:保持の管理を参照してください。

    # List retention rules for a repository
    hcloud SWR ListRetentions --namespace=pancake --repository=openclaw-sandbox --cli-region=cn-north-4
    
    # Create a retention rule (keep last 10 tags)
    hcloud SWR CreateRetention --namespace=pancake --repository=openclaw-sandbox --algorithm=or --rules.1.template=tag_rule --rules.1.params='{"num":"10"}' --rules.1.tag_selectors.1.kind=label --rules.1.tag_selectors.1.pattern=latest --cli-region=cn-north-4
    
    # Create a retention rule (keep tags from last 30 days)
    hcloud SWR CreateRetention --namespace=pancake --repository=openclaw-sandbox --algorithm=or --rules.1.template=date_rule --rules.1.params='{"days":"30"}' --rules.1.tag_selectors.1.kind=label --rules.1.tag_selectors.1.pattern=latest --cli-region=cn-north-4
    
    # Show retention rule details
    hcloud SWR ShowRetention --namespace=pancake --repository=openclaw-sandbox --retention_id=<id> --cli-region=cn-north-4
    
    # Update a retention rule
    hcloud SWR UpdateRetention --namespace=pancake --repository=openclaw-sandbox --retention_id=<id> --algorithm=or --rules.1.template=tag_rule --rules.1.params='{"num":"5"}' --rules.1.tag_selectors.1.kind=label --rules.1.tag_selectors.1.pattern=latest --cli-region=cn-north-4
    
    # Delete a retention rule
    hcloud SWR DeleteRetention --namespace=pancake --repository=openclaw-sandbox --retention_id=<id> --cli-region=cn-north-4
    
    # List retention execution histories
    hcloud SWR ListRetentionHistories --namespace=pancake --repository=openclaw-sandbox --retention_id=<id> --cli-region=cn-north-4
    

    保持ルールのテンプレート:

    • tag_rule:最新のタグを指定した数だけ保持します(params.num)
    • date_rule:指定した日数以内に作成されたタグを保持します(params.days)

    タグセレクターの種類:

    • label:タグ名の完全一致(例:latest、v1.0)
    • regexp:正規表現によるパターン一致(例:v\d+\.\d+\.\d+)

    アルゴリズム:or はルールが OR 条件で結合されることを意味します(いずれかのルールに一致するタグが保持されます)。

    5. 共有ダウンロードドメイン

    詳細なワークフローについては、タスク:共有ドメインを参照してください。

    # List shared download domains for a repository
    hcloud SWR ListRepoDomains --namespace=pancake --repository=openclaw-sandbox --cli-region=cn-north-4
    
    # Create a shared download domain
    # --access_domain: Huawei Cloud IAM domain name (tenant name/account name) of the target account to share with
    # --deadline: Expiration time in UTC format; use "forever" for permanent access
    # --permit: Permission type; currently only "read" is supported
    hcloud SWR CreateRepoDomains --namespace=pancake --repository=openclaw-sandbox --access_domain=<iam-domain-name> --deadline=forever --permit=read --cli-region=cn-north-4
    
    # Show shared domain details
    hcloud SWR ShowAccessDomain --namespace=pancake --repository=openclaw-sandbox --access_domain=<iam-domain-name> --cli-region=cn-north-4
    
    # Update a shared download domain
    hcloud SWR UpdateRepoDomains --namespace=pancake --repository=openclaw-sandbox --access_domain=<iam-domain-name> --deadline=forever --permit=read --cli-region=cn-north-4
    
    # Delete a shared download domain
    hcloud SWR DeleteRepoDomains --namespace=pancake --repository=openclaw-sandbox --access_domain=<iam-domain-name> --cli-region=cn-north-4
    

    共有ドメインのパラメーター:

    • --access_domain:イメージの共有先アカウントの Huawei Cloud IAM ドメイン名(共有テナント名)です。カスタムドメイン識別子ではなく、対象アカウントのドメイン名を指定します。
    • --deadline:UTC 形式の有効期限(例:2025-12-31T23:59:59Z)です。永続的なアクセスには forever を使用します。
    • --permit:権限の種類です。現在サポートされているのは read(ダウンロード/プル)のみです。
    • --description(任意):共有ドメインの、人が読める形式の説明です。
    6. イメージ共有

    詳細なワークフローについては、タスク:イメージ共有を参照してください。

    # List shared repositories I have shared (self) or received (thirdparty)
    # --center is REQUIRED: "self" = repos I shared to others, "thirdparty" = repos shared to me
    hcloud SWR ListSharedReposDetails --center=self --cli-region=cn-north-4
    
    # List shared repository details (--shared_by is REQUIRED: self|thirdparty)
    hcloud SWR ListSharedRepoDetails --shared_by=self --cli-region=cn-north-4
    
    # Check sharing feature gates
    hcloud SWR ShowShareFeatureGates --cli-region=cn-north-4
    
    # Check global feature gates
    hcloud SWR ListGlobalFeatureGates --cli-region=cn-north-4
    
    7. リポジトリの追加機能と参照情報
    # List repository accessories
    hcloud SWR ListRepoAccessories --namespace=pancake --repository=openclaw-sandbox --cli-region=cn-north-4
    
    # List repository references
    hcloud SWR ListReferences --namespace=pancake --repository=openclaw-sandbox --cli-region=cn-north-4
    

    パラメーターリファレンス

    共通パラメーター
    パラメーター必須/任意説明デフォルト
    --cli-region必須Huawei Cloud のリージョン ID設定値または HUAWEI_CLOUD_REGION
    --namespaceコンテキストに依存SWR の名前空間(組織)N/A
    --repositoryコンテキストに依存イメージリポジトリ名N/A
    権限パラメーター
    パラメーター必須説明制約
    --namespaceはい名前空間名存在している必要があります
    --repositoryはいリポジトリ名(リポジトリレベルのみ)存在している必要があります
    --[N].authはい権限レベル7=管理、3=編集、1=読み取り
    --[N].user_idはいIAM ユーザー ID16 進数文字列(例:05949eb5350010e21f85c017722182de)
    --[N].user_nameはいIAM ユーザー名IAM ユーザーの表示名

    ⚠️ 配列インデックスの形式:[N] は 1 から始まります(0 ではありません)。1 人のユーザーに権限を付与する場合は、--1.auth=7 --1.user_id=xxx --1.user_name=xxx を使用します。複数のユーザーには、--1.auth=7 --1.user_id=xxx --1.user_name=xxx --2.auth=3 --2.user_id=yyy --2.user_name=yyy を使用します。

    保持パラメーター
    パラメーター必須説明制約
    --namespaceはい名前空間名存在している必要があります
    --repositoryはいリポジトリ名存在している必要があります
    --retention_idはい保持ルール ID(表示/更新/削除用)数値 ID
    --algorithmはいルールの組み合わせロジック固定値 or
    --rules.[N].templateはいルールテンプレートの種類date_rule または tag_rule
    --rules.[N].paramsはいルールパラメーターdate_rule の場合は days、tag_rule の場合は num
    --rules.[N].tag_selectors.[N].kindはいセレクターの種類label または regexp
    --rules.[N].tag_selectors.[N].patternはいセレクターのパターンタグ名または正規表現
    ドメインパラメーター
    パラメーター必須説明制約
    --namespaceはい名前空間名存在している必要があります
    --repositoryはいリポジトリ名存在している必要があります
    --access_domainはいHuawei Cloud IAM ドメイン名(共有テナント名)対象アカウントのドメイン名であり、カスタム識別子ではありません
    --deadlineはい(作成/更新)有効期限UTC 形式(例:2025-12-31T23:59:59Z)または forever
    --permitはい(作成/更新)権限の種類read(サポートされている値はこれのみ)
    --descriptionいいえドメインの説明デフォルト:空文字列

    出力形式

    詳細な応答形式の例(NamespaceAuth、RepositoryAuth、RepoDomains、CheckAgency、ShareFeatureGates、GlobalFeatureGates、Retentions、RepoAccessories、ListSharedReposDetails)については、出力形式を参照してください。

    形式に関する主な注意点:

    • auth:権限値(7=管理、3=編集、1=読み取り)
    • self_auth と others_auths:権限を監査する際は、両方を確認してください
    • ListRepoDomains:created/updated を使用します(created_at/updated_at は使用しません)
    • ListRetentions:フラットな配列を返します(ルールがない場合は空の [])
    • ListRepoAccessories:total と accessories を使用します(空の場合は null)

    検証

    手順ごとの検証については、検証方法を参照してください。

    ベストプラクティス

    1. 最小権限:必要最小限の認証レベルを付与してください。プルのみの場合は 1(読み取り)、プッシュとプルの場合は 3(編集)、完全な制御の場合は 7(管理)を使用します
    2. 名前空間とリポジトリの権限:名前空間の権限は、その配下にあるすべてのリポジトリに適用されます。リポジトリの権限は、リポジトリごとに細かく設定できます
    3. 保持ルール:ほとんどの場合は tag_rule(最新の N 件を保持)を使用します。期間に基づいてクリーンアップする場合は date_rule(N 日以内のタグを保持)を使用します
    4. 保持対象のタグセレクター:保持クリーンアップから重要なタグを保護するには、latest パターンを使った label 種別を使用します
    5. 共有ドメイン:安定した内部共有には deadline=forever を使用し、一時的なチーム間アクセスには期限を指定してください
    6. 代理権限の委任:イメージ同期または CCE トリガーを設定する前に、代理の状態を確認してください。これらの機能を使用するには、代理が有効になっている必要があります
    7. 権限を定期的に監査する:ShowNamespaceAuth と ShowUserRepositoryAuth を使用して、誰がアクセス権を持っているかを定期的に確認してください

    参考ドキュメント

    ドキュメント説明
    SWR ガバナンス API ガイドhcloud SWR ガバナンス API リファレンス
    出力形式応答形式の例(検証済み)
    IAM 権限ポリシー必要な権限とポリシー JSON
    検証方法手順ごとの検証
    よくある落とし穴トラブルシューティングガイド
    タスク:名前空間の権限名前空間の権限ワークフロー
    タスク:リポジトリの権限リポジトリの権限ワークフロー
    タスク:保持の管理保持ルールのワークフロー
    タスク:共有ドメイン共有ドメインのワークフロー
    タスク:イメージの共有イメージ共有のワークフロー
    CLI インストールガイドKooCLI のインストールと設定
    受け入れ条件正しいパターンとエラーパターンの比較

    注意事項

    • 権限の変更は即時に反映されます — 権限を付与してから利用可能になるまでの遅延はありません
    • 取り消しは慎重に行ってください — 管理権限(7)を削除すると、そのユーザーは名前空間/リポジトリを管理できなくなります
    • 保持ルールは自動的に実行されます — ルールの条件に一致するタグは、実行時に削除されます
    • AK/SK をハードコードしてはいけません — 認証情報は環境変数を通じてのみ取得してください
    • サポートされている方法は hcloud CLI のみです — すべての操作で hcloud SWR <Operation> 形式を使用します
    • ListRepoDomains のタイムスタンプには created/updated を使用します — created_at/updated_at は使用しません

    よくある落とし穴

    詳しいトラブルシューティングガイドは、よくある落とし穴と解決策を参照してください。

    クイックリファレンス:

    落とし穴症状すぐにできる対処法
    配列形式のパラメーター権限の付与に失敗する--1.auth=7 --1.user_id=xxx を使用する(インデックスは0ではなく1から)
    誤った認証値ユーザーに予期しないアクセス権が付与される7=管理、3=編集、1=読み取り(1/2/3ではありません)
    self_auth と others_auths監査でユーザーが見つからないself_auth と others_auths の両方を確認する
    ドメインのタイムスタンプフィールドcreated_at の解析に失敗するcreated/updated を使用する(created_atではありません)
    保持ルールの形式CreateRetention が失敗する入れ子の配列パラメーターを使用する:--rules.1.tag_selectors.1.kind
    Agency が設定されていない画像同期/CCE のトリガーに失敗するCheckAgency を実行してから CreateAgency を実行する

コメント