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. 04检查并创建 SWR 委托
  5. 05列出仓库附件与引用

适用场景

  1. 01向用户授予或撤销仓库访问权限
  2. 02设置镜像标签自动清理规则
  3. 03为跨组织访问配置共享下载域
  4. 04检查 SWR 共享功能或委托状态

安装

复制下面的命令,在终端中运行。

$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

详细介绍

华为云 SWR 镜像治理

概述

此技能使用 hcloud CLI 为华为云 SWR(容器软件仓库)提供治理能力,涵盖权限、保留策略、共享和委托授权。

架构:hcloud CLI → SWR 服务 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(当前没有任何技能支持)使用华为云 SWR 控制台
查看审计日志使用华为云控制台或 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 支持通过环境变量配置两种凭证模式,并会在运行时自动检测:

模式 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:create创建命名空间授权授予命名空间权限
swr:namespace:auth:get获取命名空间授权查询命名空间权限
swr:namespace:auth:update更新命名空间授权修改命名空间权限
swr:namespace:auth:delete删除命名空间授权撤销命名空间权限
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列出引用列出仓库引用

请参阅 IAM 权限策略 查看完整的策略 JSON。

权限失败处理:

  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 服务列表一致)
  • 操作名称:PascalCase(例如,ShowNamespaceAuth、CreateRetention、ListRepoDomains)
  • 区域参数:--cli-region=<value>(默认值:cn-north-4,或使用 HUAWEI_CLOUD_REGION 环境变量)
  • 输出格式:--cli-output=json(用于 Agent 处理)
  • JMESPath 过滤:--cli-query="<expression>"(缩减输出)
  • 数组形式参数:--1.auth=7 --1.user_id=xxx(索引从 1 开始,而非 0)
  • 嵌套对象参数:--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].auth、--[N].user_id、--[N].user_name 格式,其中 [N] 是数组索引(从 1 开始)。对于单个用户,使用 --1.auth=7 --1.user_id=xxx --1.user_name=xxx。
  • 删除(array):使用 --[N]=<user_id> 格式——数组元素直接是用户 ID 字符串。对于单个用户,使用 --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:要与其共享镜像的账户的华为云 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 用户 ID十六进制字符串(例如,05949eb5350010e21f85c017722182de)
    --[N].user_name是IAM 用户名IAM 用户显示名称

    ⚠️ 数组索引格式:[N] 从 1 开始(不是 0)。若要向单个用户授予权限,请使用 --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. 保留标签选择器:使用 label 类型和 latest 模式,避免重要标签被保留规则清理
    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(索引从 1 开始,而非 0)
    授权值错误用户获得了意料之外的访问权限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

评论

支持 Markdown