概述
概述
欢迎使用百度智能云产品——容器镜像服务CCR企业版。CCR企业版目前已经具备的产品功能包含:
-
CCR企业版实例管理
企业版实例,用来托管和分发云原生制品。
-
命名空间的管理
用于管理和隔离具有一定关联关系的镜像仓库和Helm Chart仓库。命名空间不直接存储云原生制品数据,可映射为企业内部的组织部门、产品项目等,结合权限管理可实现不同的用户访问或操作指定命名空间中的数据。
-
容器镜像仓库管理
用于管理Docker镜像和其他OCI制品,您可以使用镜像仓库管理不同版本的容器镜像。镜像仓库归属于命名空间,并从命名空间继承了访问类型和漏洞扫描触发方式等属性。
-
容器镜像管理
用于管理Docker镜像和其他OCI制品,可以使用镜像仓库管理不同版本的容器镜像;同时提供安全漏洞扫描,可满足容器镜像的安全诉求。
-
Helm Charts的管理
支持在控制台上或通过Helm工具实现Chart的上传与下载,通过该功能您可以高效便捷的托管、分发Kubernetes集群中的各种资源。
-
容器镜像触发器(Webhook)
在实例中配置合适的触发器,当触发动作发生时,自动执行自定义的POST请求。
-
容器镜像按需加载
支持用户在实例配置并灵活使用镜像加速规则并自动生成加速版本,通过配合容器引擎CCE集群部署相关组件,可以实现部署容器时拉取对应的镜像加速版本实现容器数据免全量下载和在线解压,极大的提升容器启动效率。
-
访问凭据
使用Docker客户端推送、拉取容器镜像时,必须使用访问凭据信息登录实例,您需要在客户端中执行 docker login 命令并输入用户名及密码。CCR企业版支持配置固定登录密码和临时登录密码。
-
访问控制
容期镜像服务企业版提供网络访问控制管理能力,为保障您的容器镜像、Helm Chart以及其他符合OCI规范的制品数据安全,企业版实例默认拒绝所有外部访问。您需要配置公网或私有网络访问控制策略之后,才可以通过私有网络或公网访问该实例。
-
容器镜像迁移
支持将外部仓库中的镜像迁移到企业版实例当中,方便将业务向云上迁移,同时支持将容器镜像数据从个人版迁移至企业版。
-
跨实例镜像同步
支持将实例中的容器镜像和Helm Chart通过配置同步规则复制到其他地域下的实例中,从而实现单点推送多地域自动同步分发,方便企业用户在多个地域快速部署、更新容器服务。
您可以使用本文档介绍的API对CCR企业版服务进行灵活的操作。
接口概览
CCR企业版 API 提供下列接口类型:
接口类型 | 描述 |
---|---|
企业版实例接口 | CCR企业版实例管理相关功能接口 |
命名空间接口 | 命名空间管理相关功能接口 |
镜像仓库接口 | 镜像仓库管理相关接口 |
镜像接口 | 镜像创建、删除、列表和扫描等相关接口 |
HelmChart接口 | Helm Chart管理相关接口 |
触发器接口 | 容器镜像触发器管理相关接口 |
镜像按需加载接口 | 镜像按需加载相关接口 |
镜像访问凭据接口 | 镜像访问凭据相关接口 |
镜像访问控制接口 | 镜像访问控制相关接口 |
镜像迁移接口 | 镜像迁移相关接口 |
镜像同步接口 | 镜像同步相关接口 |
API认证机制
所有API的安全认证一律采用Access Key与请求签名机制。 Access Key由Access Key ID和Secret Access Key组成,均为字符串。 对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串。提交认证字符串放在Authorization头域里。服务端根据生成算法验证认证字符串的正确性。 认证字符串的格式为bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}
。
- version是正整数。
- timestamp是生成签名时的UTC时间。
- expirationPeriodInSeconds表示签名有效期限。
- signedHeaders是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用host和x-bce-date两个header)
- signature是256位签名的十六进制表示,由64个小写字母组成。
当百度智能云接收到用户的请求后,系统将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。
鉴权认证机制的详细内容请参见鉴权认证机制。
请求结构说明
数据交换格式为JSON,所有request/response body内容均采用UTF-8编码。
请求参数包括如下4种:
参数类型 | 说明 |
---|---|
URI | 通常用于指明操作实体,如:POST /v{version}/instance/{instanceId} |
Query参数 | URL中携带的请求参数,通常用来指明要对实体进行的动作 |
HEADER | 通过HTTP头域传入,如:x-bce-date |
RequestBody | 通过JSON格式组织的请求数据体 |
响应结构说明
响应值分为两种形式:
响应内容 | 说明 |
---|---|
HTTP STATUS CODE | 如200,400,403,404等 |
ResponseBody | JSON格式组织的响应数据体 |
日期与时间规范
日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用UTC时间,遵循ISO 8601,并做以下约束:
- 表示日期一律采用
YYYY-MM-DD
方式,例如2014-06-01
表示2014年6月1日。 - 表示时间一律采用
hh:mm:ss
方式,并在最后加一个大写字母Z表示UTC时间。例如23:00:10Z
表示UTC时间23点0分10秒。 - 凡涉及日期和时间合并表示时,在两者中间加大写字母T,例如
2014-06-01T23:00:10Z
表示UTC时间2014年6月1日23点0分10秒。
规范化字符串
通常一个字符串中可以包含任何Unicode字符。在编程中这种灵活性会带来不少困扰。因此引入“规范字符串”的概念。一个规范字符串只包含百分号编码字符以及URI(Uniform Resource Identifier)非保留字符(Unreserved Characters)。 RFC 3986规定URI非保留字符包括以下字符:字母(A-Z,a-z)、数字(0-9)、连字号(-)、点号(.)、下划线(_)、波浪线(~)。
将任意一个字符串转换为规范字符串的方式是:
- 将字符串转换成UTF-8编码的字节流。
- 保留所有URI非保留字符原样不变。
- 对其余字节做一次RFC 3986中规定的百分号编码(Percent-Encoding),即一个%后面跟着两个表示该字节值的十六进制字母。字母一律采用大写形式。
示例:
原字符串:this is an example for 测试
,
对应的规范字符串:this%20is%20an%20example%20for%20%E6%B5%8B%E8%AF%95
。