云服务器内容精选

  • 审计 云审计 服务(Cloud Trace Service, CTS ),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。用户开通云审计服务并创建和配置追踪器后,CTS可记录CodeArts Artifact的管理事件和数据事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 父主题: 安全
  • 数据保护技术 CodeArts Artifact通过多种数据保护手段和特性,保证通过CodeArts Artifact的数据安全可靠。 数据保护手段 简要说明 传输加密(HTTPS) CodeArts Artifact使用HTTPS传输协议,保证数据传输的安全性。 个人数据保护 CodeArts Artifact通过记录操作日志等方法防止个人数据泄露,保证您的个人数据安全。 隐私数据保护 涉及到用户的仓库密码信息需要存储时,CodeArts Artifact提供敏感 数据加密 存储。 父主题: 安全
  • 权限管理 CodeArts Artifact包含两个部分,软件发布库和私有依赖库。 软件发布库权限管理:软件发布库的权限可以实现项目下各角色权限分配自定义,具体操作请参考权限设置。 私有依赖库权限管理:私有库的权限由用户角色和仓库角色共同决定,用户角色本质为 IAM 权限,IAM权限获取需要管理员创建IAM用户后,将其加入用户组,并给用户组授予策略或角色,用户组中的用户也相应的获得对应的权限;仓库角色可以由拥有tenant administrator用户角色的用户进行分配,详细操作请参见管理私有依赖库中的管理用户权限章节,更细粒度权限管理请参见管理私有依赖库中的管理用户权限章节后的权限列表。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 各类各项云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类各项云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 提供自研、安全、极致性能的制品仓,保障业务连续性不中断 CodeArts Artifact制品仓库,基于云原生架构自研,解决外界不可控因素导致业务连续性问题。在安全上华为云CodeArts Artifact提供多维度、细粒度的权限控制,支持企业内不同角色对制品仓库访问控制的诉求。制品仓库存储采用物理隔离存储方式,减少恶意盗取制品风险,同时提供记录用户操作功能,保证操作可追溯;在可靠性上华为云CodeArts Artifact支持双AZ容灾和跨地域容灾、API限流与降级、服务依赖和隔离、实现服务故障自探测,实现99.99%的SLA保证;在极致性能上CodeArts Artifact提供热点文件缓存加速,增量上传下载,大小文件充分利用缓存加速优势,极速传输,提升用户构建速度,突破底层存储带宽限制,实现同地域高速并发传输,对比开源同类产品5X倍的上传和10X倍的下载性能提升。
  • 支持开源合规分析和漏洞检测,让高危致命问题无处遁逃 华为云CodeArts Artifact制品仓库提供基于软件包的成分分析能力,通过特征匹配的方式,分析软件包中的开源软件及版本,并通过漏洞库匹配的方式进行开源漏洞排查。实时同步NVD、CNVD、CNNVD等常见漏洞库漏洞数据,覆盖主流编程语言(C/C++、Java、Go、Python、JavaScript等),覆盖语种持续增加,提供全面、直观的风险汇总信息。在服务上线之前能够实时感知开源高危风险,建立起防御体系,并且及时修复问题,避免不可估量的损失。
  • 无缝连接第三方仓库,提供统一聚合仓地址,极大提升用户体验和下载性能 针对用户同时使用多个镜像源或制品库的场景,CodeArts Artifact提供仓库聚合能力,允许灵活组合多个代理仓,提供统一制品仓库入口,解决用户找不到制品包的痛点和简化客户配置。 CodeArts Artifact新增自定义代理仓功能,允许用户创建自定义代理仓库来代理开源社区仓库和三方依赖仓库,通过代理仓下载文件后支持将对应文件缓存到制品仓库,解决用户三方依赖下载慢痛点,实现下载三方依赖和本地仓库一样的极致体验。
  • 按文件名和checksum搜索,亿级制品包秒级查询与精准定位 华为云CodeArts Artifact具备强大的搜索能力,依托于数据引擎检索能力,支持内部研发近百亿制品文件的多维度的快速搜索。 当前覆盖Maven、npm、Go、PyPI、RPM、Debian、Conan、NuGet多种制品类型,用户可以通过文件名称或HASH信息(MD5、SHA1、SHA256、SHA512等四种类型),实现秒级检索定位。 以此为基础,CodeArts Artifact也演进出上亿级别的元数据和SBOM的高效关联查询,以便对制品文件进行快速溯源,对比开源同类产品搜索性能提升20X倍。
  • 支持10+种仓库类型,充分满足用户各种使用场景 华为云CodeArts Artifact制品仓库支持 Generic、Maven、npm、Go、NuGet、PyPI、Conan、Debian、RPM主流制品仓库类型,满足嵌入式、WEB应用、移动应用等开发场景所需,可以与本地各构建、部署工具和云上的持续集成、持续部署无缝结合。华为云CodeArts Artifact也提供制品和元数据的完整性校验能力,支持细粒度控制和按版本的细粒度包锁定权限,保障发布软件测试完整性,全面看护企业制品安全。
  • 约束与限制 介绍制品仓库服务中的使用限制,如表1所示。 表1 制品仓库使用限制说明 指标类别 指标项 限制说明 浏览器 类型 目前制品仓库服务适配的主流浏览器类型包括: Chrome浏览器:支持和测试最新的3个稳定版本 Firefox浏览器:支持和测试最新的3个稳定版本 Microsoft Edge浏览器:Win10默认浏览器,支持和测试最新的3个稳定版本 IE浏览器:不再进行支持与测试。 推荐使用Chrome、Firefox浏览器,效果会更好。 分辨率 分辨率大小 推荐使用1280*1024以上。 总存储容量 发布库与私有库容量共用 总容量10 GB 总下载容量 发布库与私有库流量共用 总流量5 GB/月 软件发布库使用限制 通过页面上传单文件大小限制 2 GB 通过编译构建任务上传单文件大小限制 10 GB 私有依赖库使用限制 通过页面上传单文件大小限制 Maven/npm/PyPI/Go/RPM/Debian/Conan:100 MB NuGet:20 MB 每种制品仓数量限制 非Maven仓库上限100 个 Maven仓库上限50 对 通过编译构建任务上传单文件大小限制 2 GB 不同CodeArts套餐以及制品仓库服务套餐规格限制的差异请参考:套餐规格特性差异和包年/包月。 当前规格为CodeArts体验版规格。
  • 服务概述 制品仓库服务(CodeArts Artifact)为软件开发企业提供管理软件发布过程的能力,保障软件发布过程的规范化、可视化及可追溯。 相对于开发过程中的“源代码”,制品仓库服务关注和管理的是开发产生的待部署的“软件包”(通常由源码编译构建或打包而成)及其生命周期元数据(如名称、大小等基本属性、代码库地址、代码分支信息、构建任务、构建者、构建时间)。 “软件包”及其属性的管理是发布过程管理的基础,也是软件开发过程中的重要资产,常见的软件研发过程如图1所示: 图1 软件开发过程 图中的Repository即制品仓库,用于管理软件开发过程产生的软件包,它是连接持续集成和持续交付的重要环节,软件包的发布评审、追溯和安全控制等操作通常在其中进行。 制品仓库服务提供以下两类仓库: 软件发布库。 软件发布库可以存储任何软件包和工具,没有格式限制。 通过编译构建任务可将产物归档到软件发布库,通过页面可以查看和管理这些归档的软件包及其生命周期属性信息,部署服务使用的部署软件包也来源于此。 私有依赖库。 私有依赖库管理各种开发语言对应的私有组件包(开发者通俗称之为私服,如Maven私服)。 因为不同的开发语言组件通常有不同的归档格式要求(例如Maven组件需要基于GAV格式归档),该仓库目的就在于管理私有开发语言组件并在企业或团队内共享给其他开发者开发使用。
  • 制品仓库服务提供哪些功能? 表1 软件发布库功能特性 功能特性 说明 页面上传、下载、搜索、删除软件包,创建文件夹 通过软件发布库页面进行类似网盘的操作来管理软件包。 查看软件包属性 在软件发布库中可以查看软件包的生命周期属性,如基本信息(名称、大小、校验和等)、构建信息(构建任务、构建时间,源码仓库等)。 编译构建发布软件包到软件发布库 软件发布库默认集成了编译构建服务,编译构建服务生产的所有软件包都可以通过配置自动上传到软件发布库中归档。 集成部署服务 软件发布库中存储的软件包可以供部署服务使用。 包视图和构建视图 可以根据需要选择从包视图(存储目录结构)或者构建视图(构建任务及流水线)的角度查看软件包。 表2 私有依赖库功能特性 功能特性 说明 页面上传、下载、删除、搜索组件 通过私有依赖库页面进行类似网盘的操作来管理私有组件。 编译构建发布组件到私有依赖库 用户可以在编译构建任务中配置将构建产物直接发布到私有依赖库。 对接本地开发环境 通过页面给出的使用配置,可以一键生成配置文件。将生成的文件配置到本地开发工具中以后,可以直接在本地开发环境对接私有依赖库中的私有组件包,例如使用命令行对私有依赖库中的组件进行上传、下载等操作。 仓库权限控制 管理员可以通过设置成员在各仓库的角色来限制其在私有依赖库的操作权限。
  • Go Modules打包方式简介 本文采用Go Modules打包方式完成Go组件的构建与上传。 打包命令主要包括以下几部分: 在工作目录中创建源文件夹。 mkdir -p {module}@{version} 将代码源拷贝至源文件夹下。 cp -rf . {module}@{version} 压缩组件zip包。 zip -D -r [包名] [包根目录名称] 上传组件zip包与“go.mod”文件到私有依赖库中。 curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/{filePath} -T {{localFile}} 根据打包的版本不同,组件目录结构有以下几种情况: v2.0以下版本:目录结构与“go.mod”文件路径相同,无需附加特殊目录结构。 v2.0以上(包括v2.0)版本: “go.mod”文件中第一行以“/vX”结尾:目录结构需要包含“/vX”。例如,版本为v2.0.1,目录需要增加“v2”。 “go.mod”文件中第一行不以“/vN”结尾:目录结构不变,上传文件名需要增加“+incompatible”。 下面分别对不同的版本举例说明: v2.0以下版本打包。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为1.0.0。因此命令如下: mkdir -p ~/example.com/demo@v1.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v1.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v1.0.0.zip”,因此命令如下: zip -D -r v1.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v1.0.0.zip”,“localFile”为“v1.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v1.0.0.mod”,“localFile”为“example.com/demo@v1.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.zip -T v1.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.mod -T example.com/demo@v1.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo/v2”,参数“version”自定义为“2.0.0”。因此命令如下: mkdir -p ~/example.com/demo/v2@v2.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo/v2@v2.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v2.0.0.zip”,因此命令如下: zip -D -r v2.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.zip”,“localFile”为“v2.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.mod”,“localFile”为“example.com/demo/v2@v2.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.zip -T v2.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.mod -T example.com/demo/v2@v2.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行不以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为“3.0.0”。因此命令如下: mkdir -p ~/example.com/demo@v3.0.0+incompatible 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v3.0.0+incompatible/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v3.0.0.zip”,因此命令如下: zip -D -r v3.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.zip”,“localFile”为“v3.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.mod”,“localFile”为“example.com/demo@v3.0.0+incompatible/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.zip -T v3.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.mod -T example.com/demo@v3.0.0+incompatible/go.mod
  • 发布私有组件到Go私有依赖库 下载私有依赖库配置文件。 登录制品仓库,选择私有依赖库,进入Go私有依赖库。单击页面右侧“操作指导”。 在弹框中单击“下载配置指导文件”。 配置代码仓库。 进入 代码托管服务 。创建Go语言代码仓库(操作步骤请参考创建云端仓库)。本文中使用仓库模板“Go Web Demo”创建代码仓库。 准备“go.mod”文件,并上传至代码仓库的根目录中。本文中使用的“go.mod”文件如下所示: 配置并执行编译构建任务。 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 添加步骤“Go语言构建”。 编辑步骤“Go语言构建”。 工具版本按照实际选择,本文中选择“go-1.13.1”。 删除已有命令行,打开在步骤1中下载的配置文件,将文件中的“LINUX下配置go环境变量命令”复制到命令框中。 将配置文件中go上传命令代码段复制到命令框中,并参考Go Modules打包方式简介替换命令行中的参数信息(本文打包版本为“v1.0.0”)。 单击“新建并执行”,执行构建任务。 待页面提示“构建成功”时,进入私有依赖库,可找到通过构建任务上传的Go私有组件。
  • NPM命令简介 在编译构建任务命令行中,还可以配置如下Npm命令,以完成其它功能: 删除私有依赖库中已存在的私有组件 npm unpublish @socpe/packageName@version 获取标签列表 npm dist-tag list @scope/packageName 新增标签 npm dist-tag add @scope/packageName@version tagName --registry registryUrl --verbose 删除标签 npm dist-tag rm @scope/packageName@version tagName --registry registryUrl --verbose 命令行参数说明: scope:私有依赖库路径,查看方法请参考发布私有组件到NPM私有依赖库。 packageName:“package.json”文件中,name字段中scope之后的部分。 version:“package.json”文件中,version字段对应的值。 registryUrl:私有库配置文件中的对应scope的私有库地址url。 tagName:标签名称。 以发布私有组件到NPM私有依赖库发布的私有组件为例: scope对应的值为“test”。 packageName对应的值为“vue-demo”。 version对应的值为“1.0.0”。 因此,删除此组件的命令应为: npm unpublish @test/vue-demo@1.0.0