最近更新时间:2022-06-15 17:47:19
容器镜像服务KCR结合IAM管理访问权限能力,为您提供KCR授权管理功能。在该模式下,您可对KCR资源进行细颗粒度的权限访问控制,允许给单个用户或一组用户分配不同的资源及操作权限。
当用户访问容器镜像服务API时,容器镜像服务KCR会向IAM进行权限校验,以确保访问者拥有相应的权限。通过比对容器镜像服务API是否可以进行资源鉴权,KCR访问权限控制分为两种情形:非资源鉴权、资源鉴权。
非资源鉴权指的是能够指定允许用户是否可以对容器镜像服务API进行相关操作的能力。每个API的鉴权规则如下表所示:
API名称 | 鉴权Action | 鉴权Resource |
---|---|---|
kcrs:CreateInstance创建实例 | kcrs:CreateInstance | * |
kcrs:DescribeInstance查询实例信息 | kcrs:DescribeInstance | * |
kcrs:DescribeInstanceUsage查询实例配额 | kcrs:DescribeInstanceUsage | * |
kcrs:DescribeNamespace查询命名空间 | kcrs:DescribeNamespace | * |
kcrs:DescribeNamespaceExist查询命名空间是否存在 | kcrs:DescribeNamespaceExist | * |
kcrs:DescribeRepository查询镜像仓库信息 | kcrs:DescribeRepository | * |
kcrs:StartImageScan镜像安全扫描 | kcrs:StartImageScan | * |
kcrs:DescribeImageScan获取镜像安全扫描结果 | kcrs:DescribeImageScan | * |
资源级权限指的是能够指定允许用户对哪些资源具有执行操作的能力。容器镜像服务支持基于IAM 的资源级访问控制,控制颗粒度可至仓库级,即用户可通过配置IAM 策略实现授权子用户仅能够操作指定资源。
通过IAM进行授权,指定允许用户对哪些资源具有执行操作的能力。
资源类型 | 授权策略中的资源描述 |
---|---|
实例 | krn:ksc:kcrs:region:account-id:instance/* krn:ksc:kcrs:region:account-id:instance/instanceid |
命名空间 | krn:ksc:kcrs:region:account-id:namespace/instanceid/* krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
镜像仓库 | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/* krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
注:斜体需要被替换为实际值。
参数说明:
参数说明 | 说明 |
---|---|
region | 地域信息,例如cn-beijing-6代表北京地域,所有地域可用*代替 |
account-id | 账号ID,可用*代替 |
instanceid | 容器镜像服务实例ID,所有实例可用*代替 |
namespacename | 容器镜像服务命名空间名称,所有命名空间可用*代替 |
repositoryname | 容器镜像服务镜像仓库名称,所有镜像仓库可用*代替 |
每个API的鉴权规则如下表所示:
实例级别相关接口
API名称 | 鉴权Action | 鉴权Resource |
---|---|---|
DeleteInstance删除实例 | kcrs:DeleteInstance | krn:ksc:kcrs:region:account-id:instance/instanceid |
CreateInstanceToken创建实例访问凭证 | kcrs:CreateInstanceToken | krn:ksc:kcrs:region:account-id:instance/instanceid |
ModifyInstanceTokenStatus修改访问凭证启用状态 | kcrs:ModifyInstanceTokenStatus | krn:ksc:kcrs:region:account-id:instance/instanceid |
ModifyInstanceTokenInformation修改访问凭证信息 | kcrs:ModifyInstanceTokenInformation | krn:ksc:kcrs:region:account-id:instance/instanceid |
DescribeInstanceToken查询访问凭证列表 | kcrs:DescribeInstanceToken | krn:ksc:kcrs:region:account-id:instance/instanceid |
DeleteInstanceToken删除访问凭证 | kcrs:DeleteInstanceToken | krn:ksc:kcrs:region:account-id:instance/instanceid |
CreateInternalEndpoint创建实例内网访问VPC链接 | kcrs:CreateInternalEndpoint | krn:ksc:kcrs:region:account-id:instance/instanceid |
DescribeInternalEndpoint查询实例内网访问VPC链接 | kcrs:DescribeInternalEndpoint | krn:ksc:kcrs:region:account-id:instance/instanceid |
DeleteInternalEndpoint删除实例内网访问VPC链接 | kcrs:DeleteInternalEndpoint | krn:ksc:kcrs:region:account-id:instance/instanceid |
CreateInternalEndpointDns创建实例私有域名解析 | kcrs:CreateInternalEndpointDns | krn:ksc:kcrs:region:account-id:instance/instanceid |
DescribeInternalEndpointDns查询实例私有域名解析 | kcrs:DescribeInternalEndpointDns | krn:ksc:kcrs:region:account-id:instance/instanceid |
DeleteInternalEndpointDns删除实例私有域名解析 | kcrs:DeleteInternalEndpointDns | krn:ksc:kcrs:region:account-id:instance/instanceid |
注:若您需要指定用户授予内网访问控制相关权限时,因会查询您VPC列表,故需要您同时为该用户配置vpc:Describe*鉴权ACtion。
命名空间级别相关接口
API名称 | 鉴权Action | 鉴权Resource |
---|---|---|
CreateNamespace创建命名空间 | kcrs:CreateNamespace | krn:ksc:kcrs:region:account-id:namespace/instanceid/* |
ModifyNamespaceType修改命名空间属性 | kcrs:ModifyNamespaceType | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
DeleteNamespace删除命名空间 | kcrs:DeleteNamespace | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
CreateWebhookTrigger创建触发器 | kcrs:CreateWebhookTrigger | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
DescribeWebhookTrigger查询触发器 | kcrs:DescribeWebhookTrigger | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
ModifyWebhookTrigger修改触发器 | kcrs:ModifyWebhookTrigger | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
DescribeWebhookTriggerLog查询触发器日志 | kcrs:DescribeWebhookTriggerLog | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
DeleteWebhookTrigger删除触发器 | kcrs:DeleteWebhookTrigger | krn:ksc:kcrs:region:account-id:namespace/instanceid/namespace |
镜像仓库级别相关接口
API名称 | 鉴权Action | 鉴权Resource |
---|---|---|
DeleteRepository删除镜像仓库 | kcrs:DeleteRepository | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
ModifyRepoDesc修改镜像仓库描述信息 | kcrs:ModifyRepoDesc | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
DescribeImages查询镜像列表 | kcrs:DescribeImages | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
DeleteImages删除镜像 | kcrs:DeleteImages | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
DeleteRepoTag删除镜像Tag | kcrs:DeleteRepoTag | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
PullRepository拉镜像 | kcrs:PullRepository | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
PushRepository推镜像 | kcrs:PushRepository | krn:ksc:kcrs:region:account-id:repository/instanceid/namespace/repository |
注:因Docker中Push镜像和Pull镜像操作耦合,故您授予PushRepository权限时需同步授予PullRepository权限。
纯净模式