本文主要描述为 IAM 用户授权操作镜像仓库 CR 的资源和鉴权策略。
通过 IAM 进行授权时,资源描述方式如下表所示:
资源类型 | 授权策略中的资源描述 |
---|---|
repository | trn:cr:$regionid:$accountid:repository/$instancename/$namespacename/$reponame |
参数说明如下表所示:
参数名称 | 说明 |
---|---|
$regionid | 地域 ID,可用* 匹配所有地域(Region)。 |
$accountid | 火山引擎账号 ID,可用* 代替。 |
$instancename | 镜像仓库实例名称。 |
$namespacename | 命名空间名称。 |
$reponame | OCI 制品仓库名称。 |
IAM 用户访问镜像仓库服务 API 时,镜像仓库服务会向 IAM 进行权限检查。每个 API 会根据涉及到的资源以及 API 的语义来确定需要检查哪些资源的权限。每个 API 的鉴权规则如下表所示:
API | 鉴权 Action | 鉴权 Resource |
---|---|---|
创建镜像仓库实例 | cr:CreateRegistry | trn:cr:*:*:instance/$instance |
删除镜像仓库实例 | cr:DeleteRegistry | trn:cr:*:*:instance/$instance |
启动镜像仓库实例 | cr:StartRegistry | trn:cr:*:*:instance/$instance |
查询镜像仓库实例 | cr:ListRegistries | * |
更新镜像仓库公网入口 | cr:UpdatePublicEndpoint | trn:cr:*:*:instance/$instance |
获取镜像仓库公网入口信息 | cr:GetPublicEndpoint | trn:cr:*:*:instance/$instance |
查询镜像仓库域名 | cr:ListDomains | trn:cr:*:*:instance/$instance |
创建命名空间 | cr:CreateNamespace | trn:cr:*:*:repository/$instance/$namespace |
删除命名空间 | cr:DeleteNamespace | trn:cr:*:*:repository/$instance/$namespace |
查询命名空间 | cr:ListNamespaces | * |
创建 OCI 制品仓库 | cr:CreateRepository | trn:cr:*:*:repository/$instance/$namespace/$repository |
更新 OCI 制品仓库 | cr:UpdateRepository | trn:cr:*:*:repository/$instance/$namespace/$repository |
删除 OCI 制品仓库 | cr:DeleteRepository | trn:cr:*:*:repository/$instance/$namespace/$repository |
查询 OCI 制品仓库 | cr:ListRepositories | * |
查询 OCI 制品版本 | cr:ListTags | trn:cr:*:*:repository/$instance/$namespace/$repository |
更新镜像仓库用户信息 | cr:SetUser | trn:cr:*:*:instance/$instance |
获取镜像仓库用户信息 | cr:GetUser | trn:cr:*:*:instance/$instance |
获取登录镜像仓库的临时访问密钥 | cr:GetAuthorizationToken | trn:cr:*:*:instance/$instance |