华为云用户手册

  • Debian 9.5:查看版本号失败和Cloud-Init设置开启自启动失败 Cloud-Init安装完成后,执行以下命令查看版本号。 cloud-init -v 回显信息如下所示: -bash:/usr/bin/cloud-init:not found this command 解决方法:执行命令 # cp /usr/local/bin/cloud-init /usr/bin/将cloud-init 复制至usr/bin目录下 执行命令cloud-init init --local 回显信息如下所示: 图5 设置Cloud-Init自启动回显信息 原因分析:未安装gcc导致无法编译。 解决方法: 执行以下命令安装gcc后重新安装Cloud-Init yum -y install gcc 执行以下命令设置Cloud-Init为开机自启动时提示失败: systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 回显信息提示如下所示: 图6 设置Cloud-Init自启动提示失败 解决方法: 执行以下命令。 # systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行以下命令,重新设置Cloud-Init为开机自启动 # systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行以下命令,重启Cloud-Init # systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 然后执行命令systemctl status查看服务状态。回显信息如下所示: 图7 查看服务状态
  • Ubuntu 16.04/CentOS 7:Cloud-Init设置自启动失败 问题描述: 安装Cloud-Init后,执行以下命令设置Cloud-Init为开机自启动时提示失败: systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 回显信息如下所示: 图1 设置Cloud-Init自启动失败 解决方法: 执行以下命令 systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行以下命令,重新设置Cloud-Init为开机自启动 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行以下命令,检查Cloud-Init服务状态 systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 回显信息如下所示,提示failed且所有的服务状态都是inactive。 原因是系统查询Cloud-Init的地址指向/usr/bin/,但是实际安装路径指定的是/usr/local/bin,因此出现了上述错误。 图2 检查Cloud-Init服务状态 图3 检查Cloud-Init服务状态 请执行命令cp /usr/local/cloud-init /usr/bin/将cloud-init 复制至usr/bin目录下,再执行以下命令重启Cloud-Init。 # systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 图4 重启Cloud-Init 执行以下命令,检查Cloud-Init服务状态。 systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
  • Ubuntu14.04:未安装chkconfig和systemctl 问题描述: 未安装chkconfig 解决方法: Ubuntu14.04执行以下命令安装chkconfig: # apt-get update # apt-get install sysv-rc-conf # cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig 安装完成后,执行以下命令查看版本号。 cloud-init -v 如果回显信息如下所示: -bash:/usr/bin/cloud-init:not found this command 解决方法:执行以下命令将cloud-init 复制至usr/bin目录下。 # cp /usr/local/bin/cloud-init /usr/bin/
  • 开通密钥轮转如何收费? 开通密钥轮转后,会收取相应的密钥存储费用,每个轮转的版本将作为一个独立的主密钥资源进行计算。 以1个密钥开通轮转,轮转周期为30天,单价0.015元(抹零后0.01元)每小时为例: 第一个月:密钥的轮转版本为0,收费为0.01*24*30 + 0*0.01*24*30 = 7.2元。 第二个月:密钥的轮转版本为1,收费为0.01*24*30 + 1*0.01*24*30 = 14.4元。 第三个月:密钥的轮转版本为2,收费为0.01*24*30 + 2*0.01*24*30 = 21.6元。 以此类推 第n个月:密钥的轮转版本为n,收费为0.01*24*30 + (n-1)*0.01*24*30 = 7.2*n元。 调用次数计费与轮转次数计费无关。 父主题: 计费FAQ
  • 到期后影响 图2描述了包年/包月DEW资源各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图2 包年/包月DEW资源生命周期 到期预警 包年/包月DEW资源在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 到期后影响 当您的包年/包月DEW资源到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以正常访专属加密实例 如果您在宽限期内仍未续费包年/包月DEW资源,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,如果包年/包月DEW资源仍未续费,那专属加密实例资源将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 计费示例 假设您在2023/06/15 14:30:09购买了一套专属加密实例(版本:标准版,规格:专属加密实例2个)。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/06/15 14:30:09 ~ 2023/07/15 23:59:59 第二个计费周期为:2023/07/15 23:59:59 ~ 2023/08/15 23:59:59 您需要为每个计费周期预先付费,计费公式如表2所示。 表2 计费公式 资源类型 计费公式 资源单价 专属加密实例-标准版 实例规格单价 * 台数 * 购买时长 请参见数据加密服务价格详情。 专属加密实例-铂金版(国内) 初装费用 * 台数+实例规格单价 * 台数 * 购买时长 请参见数据加密服务价格详情。 图 包年/包月专属加密实例费用计算示例给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以数据加密服务价格详情中的价格为准。 图1 包年/包月专属加密实例费用计算示例 在购买专属加密实例时,默认至少购买两个及以上的专属加密实例,保障业务高可靠。单实例购买仅用于测试,如有需要请单独联系销售代表。
  • 计费周期 按需计费KMS资源按小时计费,密钥实例费用每天结算一次(以UTC+8时间为准),密钥API请求费用每月结算一次(以UTC+8时间为准),结算完毕后进入新的计费周期。计费的起点以密钥创建成功的时间点为准,终点以密钥计划删除的时间点为准。 例如,您在8:45:30创建了一个自定义密钥,然后在9:40:08将其删除,则计费周期为8:00:00 ~ 10:00:00,在8:45:30 ~ 8:55:30间产生费用,该计费周期内的计费时长为600秒。
  • 计费示例 假设您在2023/06/08 9:59:30创建了一个自定义密钥,然后在2023/06/08 10:45:46将其删除。计费周期内使用密钥进行API调用36594次,计费周期如下: 第一个计费周期为9:00:00 ~ 10:00:00,在9:59:30 ~ 10:00:00间产生费用,该计费周期内的计费时长为30秒。 第二个计费周期为10:00:00 ~ 11:00:00,在10:00:00 ~ 10:45:46间产生费用,该计费周期内的计费时长为2746秒。 您需要为每个计费周期付费,各项资源单独计费,计费公式如表 计费公式所示。产品价格详情中标出了资源的每小时价格,您需要将每小时价格除以3600,得到每秒价格。 表2 计费公式 资源类型 计费公式 自定义密钥 密钥实例费用 * 时长+密钥请求API次数 * API请求费用
  • 适用计费项 以下计费项支持按需计费。 表1 适用计费项 计费项 说明 密钥管理服务 按需创建的密钥实例费用以及密钥产生的API请求费用。 凭据管理服务 按需创建的凭据实例费用以及绑定密钥后产生的密钥API请求费用。 假设您创建了一个密钥算法为AES_256的对称密钥,在创建页面的底部,您将看到所需费用的明细,如图 费用示例所示。 图1 费用示例 费用计算将包括以下部分: 密钥实例费用:创建后的密钥按照时长计费。 API请求费用:创建密钥后按照API请求次数计费,每个密钥每月有20000次的免费请求次数。
  • 续费相关的功能 包年/包月专属加密续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月专属加密实例从购买到被自动删除之前,您可以随时在DEW控制台续费,以延长使用时间。 自动续费 开通自动续费后,专属加密实例会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在包年/包月专属加密实例生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图 专属加密实例生命周期所示。 图1 专属加密实例生命周期 专属加密实例从购买至到期前,处于正常运行阶段,功能均可用。 到期未续费时,首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在专属加密实例到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 入门实践 当用户完成了创建密钥、创建密钥对、创建凭据等基本操作后,可以根据自身的业务需求使用DEW提供的一系列常用实践。 表1 常用最佳实践 实践 描述 数据保护 加解密小量数据 当有少量数据(例如:口令、证书、电话号码等)需要加解密时,用户可以通过密钥管理服务(Key Management Service,KMS)控制台使用在线工具加解密数据,或者调用KMS的API接口使用指定的用户主密钥直接加密、解密数据。 加解密大量数据 当有大量数据(例如:照片、视频或者数据库文件等)需要加解密时,用户可采用信封加密方式加解密数据,无需通过网络传输大量数据即可完成数据加解密。 使用加密SDK进行本地文件加解密 加密SDK提供了数据的加解密、文件流加解密等功能,用户只需调用加解密接口即可轻松实现海量数据加解密。当出现大型文件、图片等数据通过HTTPS请求到KMS服务进行保护时会消耗大量网络资源,加密效率低的问题时,可以使用加密SDK进行本地文件加解密。 跨Region容灾加解密 当单Region加解密出现服务侧故障时,无法再对数据进行加解密操作,用户可以通过密钥管理服务(Key Management Service,KMS)实现跨Region容灾加解密,保证业务不中断。 如何使用KMS对文件进行完整性保护 当有大量文件(例如:镜像、电子保单或者重要文件等)需要在传输或者存储时确保不被篡改,用户可以使用KMS对文件摘要进行签名。再次使用时可以重新计算摘要进行验签。确保文件在传输或者存储过程中没有被篡改。 云服务使用KMS加密 ECS服务端加密 KMS支持对ECS服务进行一键加密,弹性云服务器资源加密包括镜像加密和数据盘加密。 在创建弹性云服务器时,用户如果选择加密镜像,弹性云服务器的系统盘会自动开启加密功能,加密方式与镜像保持一致。 在创建弹性云服务器时,用户也可以对添加的数据盘进行加密。 OBS服务端加密 当用户启用OBS服务端加密功能时: 在上传对象时,数据会在服务端加密成密文后存储。 在下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。 在OBS服务中需要上传的对象可以通过KMS提供密钥的方式进行服务端加密。 EVS服务端加密 当用户由于业务需求需要对存储在云硬盘的数据进行加密时,EVS服务与KMS集成,通过KMS提供的密钥实现磁盘数据的加密。 IMS服务端加密 用户创建私有镜像时,可以通过选择KMS加密的方式,使用KMS提供的密钥对镜像进行加密,确保镜像数据安全性。 RDS数据库加密 用户在创建RDS数据库实例和扩容磁盘并启用加密功能后,磁盘数据会在服务端加密成密文后存储。用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。 DDS数据库加密 用户在创建DDS数据库实例和扩容磁盘并启用加密功能后,磁盘数据会在服务端加密成密文后存储。用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。 SFS服务端加密 当用户由于业务需求需要对存储在文件系统的数据进行加密时,弹性文件服务为用户提供加密功能,可以使用KMS提供的密钥对新创建的文件系统进行加密。 DWS数据库加密 在DWS服务中,用户可以为集群启用数据库加密,以保护静态数据。当用户为集群启用加密时,该集群及其快照的数据都会得到加密处理。用户可以在创建集群时启用加密。 凭据加密 如何使用凭据管理服务替换硬编码的数据库账号密码 用户在日常访问应用程序的过程中,通常会嵌入凭据直接访问程序。在需要更新凭据时,除了创建新的凭据以外,还需要花费一些时间更新应用程序以使用新的凭据。需要使用华为云凭据管理服务更便捷高效、高安全性的进行凭据管理。 如何使用凭据管理服务解决AK&SK泄露问题 通过统一身份认证服务(Identity and Access Management,IAM )对弹性云服务器(Elastic Cloud Server,ECS)的委托获取临时访问密钥来保护AK&SK。 如何使用凭据管理服务自动轮转安全密码 通过函数工作流和凭据管理服务,定期生成和轮转强安全密码,以满足用户安全合规的密码生成、托管、以及定期自动轮换的要求。 单用户凭据轮换策略 单用户凭据轮换是指一个凭据中更新一个用户所保存的信息,这是最基础的凭据轮换策略,适用于大多数日常使用场景。 双用户凭据轮换策略 双用户轮换策略是指在一个凭据中更新两个用户所保存的信息。为防止在修改用户密码和更新凭据时出现访问失败的情况,需要使用双用户凭据轮换策略确保应用程序的高可用性。 通过函数工作流轮转IAM凭证 使用函数工作流模板,通过凭据管理服务轮转IAM凭证。 API调用 使用指数退避方法对DEW服务请求错误进行重试 当用户调用API时,收到返回的错误信息,可参照使用指数退避方法对请求错误进行重试。
  • 支持http to https自动重定向 2022年11月30日之后的版本支持HTTP重定向到HTTPS。 约束限制 由于浏览器限制,非GET或非HEAD方法的重定向可能导致数据丢失,因此API请求方法限定为GET或HEAD。 开启重定向需满足以下条件: 创建API时,前端配置的请求协议选择“HTTPS”或“HTTP&HTTPS”。 API所属API分组已绑定独立域名和SSL证书,具体操作请参见上文。 独立域名绑定完成后,在“支持http to https自动重定向”列开启重定向功能。
  • 调用API示例 把API信息替换到HttpClientDemo.java中对应位置。 HttpClientDemo中引用以下类,可在“获取SDK”包中的“src”文件下查看: Constant:demo中用到的常量。 SSLCipherSuiteUtil:tls认证配置参数的工具类,比如配置客户端不校验证书。 UnsupportProtocolException:异常处理类。 public class HttpClientDemo { private static final Logger LOGGER = LoggerFactory.getLogger(HttpClientDemo.class); public static void main(String[] args) throws Exception { // Create a new request. Request httpClientRequest = new Request(); try { // Set the request parameters. // AppKey, AppSecrect, Method and Url are required parameters. // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. // Before running this example, set environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. httpClientRequest.setKey(System.getenv("HUAWEICLOUD_SDK_AK")); httpClientRequest.setSecret(System.getenv("HUAWEICLOUD_SDK_SK")); httpClientRequest.setMethod("POST"); // Set a request URL in the format of https://{Endpoint}/{URI}. httpClientRequest.setUrl("put your request url here"); httpClientRequest.addHeader("Content-Type", "text/plain"); // Set a body for http request. httpClientRequest.setBody("put your request body here"); } catch (Exception e) { LOGGER.error(e.getMessage()); return; } CloseableHttpClient client = null; try { // Sign the request. HttpRequestBase signedRequest = Client.sign(httpClientRequest, Constant.SIGNATURE_ALGORITHM_SDK_HMAC_SHA256); if (Constant.DO_VERIFY) { // creat httpClient and verify ssl certificate HostName.setUrlHostName(httpClientRequest.getHost()); client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClientWithVerify(Constant.INTERNATIONAL_PROTOCOL); } else { // creat httpClient and do not verify ssl certificate client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClient(Constant.INTERNATIONAL_PROTOCOL); } HttpResponse response = client.execute(signedRequest); // Print the body of the response. HttpEntity resEntity = response.getEntity(); if (resEntity != null) { LOGGER.info("Processing Body with name: {} and value: {}", System.getProperty("line.separator"), EntityUtils.toString(resEntity, "UTF-8")); } } catch (Exception e) { LOGGER.error(e.getMessage()); } finally { if (client != null) { client.close(); } } } } 运行HttpClientDemo.java,对请求进行签名、访问API并打印结果。 示例结果如下: [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Print the authorization: [Authorization: SDK-HMAC-SHA256 Access=3afe0280a6e1466e9cb6f23bcccdba29, SignedHeaders=host;x-sdk-date, Signature=26b2abfa40a4acf3c38b286cb6cbd9f07c2c22d1285bf0d4f6cf1f02d3bfdbf6] [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Print the status line of the response: HTTP/1.1 200 OK [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Date and value: Fri, 26 Aug 2022 08:58:51 GMT [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Content-Type and value: application/json [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Transfer-Encoding and value: chunked [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Connection and value: keep-alive [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Server and value: api-gateway [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: X-Request-Id and value: 10955c5346b9512d23f3fd4c1bf2d181 [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Body with name: and value: {"200": "sdk success"} 显示{"200": "sdk success"},表示签名成功,API成功请求到后端。 如果改变AK或SK的值,API网关将返回的错误信息error_msg。
  • 确认正在使用的Agent版本 使用root账号,登录ECS。 执行如下命令,确认使用Agent的版本。 if [[ -f /usr/local/uniagent/extension/install/telescope/bin/telescope ]]; then /usr/local/uniagent/extension/install/telescope/bin/telescope -v; elif [[ -f /usr/local/telescope/bin/telescope ]]; then echo "old agent"; else echo 0; fi 返回“old agent”,表示使用老版本Agent,手动配置Agent操作请参考操作步骤(老版本Agent)。 返回版本号,表示使用新版本Agent,手动配置Agent操作请参考请使用操作步骤(新版本Agent)。 返回“0”,表示未安装Agent。
  • 告警简介 告警功能提供对监控指标的告警功能,用户对云服务的核心监控指标设置告警规则,当监控指标触发用户设置的告警条件时,支持以邮箱、短信、HTTP、HTTPS等方式通知用户,让用户在第一时间得知云服务发生异常,迅速处理故障,避免因资源问题造成业务损失。 云监控服务使用消息通知服务向用户通知告警信息。首先,您需要在消息通知服务界面创建一个主题并为这个主题添加相关的订阅者,然后在添加告警规则的时候,您需要开启消息通知服务并选择创建的主题,这样在云服务发生异常时,云监控服务可以实时的将告警信息以广播的方式通知这些订阅者。 在没有创建告警通知主题的情况下,告警会发送到账号默认邮箱。 告警规则支持企业项目,当选择了告警规则到某个企业项目时,只有拥有该企业项目权限的用户才可以查看和管理该告警规则。 父主题: 告警
  • 资源监控 资源监控是以资源分组维度横向展示和各个服务资源维度纵向分布,将各个资源的实时告警情况进行展示,用户可按照不同维度对资源告警进行关注,方便高效管理您的资源。 下面将介绍资源监控如何查看和使用。 在资源监控页面的左侧展示了全部资源的健康评分、资源总数和正在告警的资源数,正在告警的资源数按照告警级别展开。 健康评分的计算公式为:健康评分=无告警资源个数/总资源个数 用户可以选某个资源分组,查看资源分组中对应的服务资源,单击服务资源,可参看服务资源中具体资源名称,维度和告警级别。 图1 查看服务资源详情 当发生告警时,可单击告警资源名称前面的“”,展开告警策略。 图2 展开告警策略 若要查看详细信息可单击“查看详情”。 图3 查看详情 在资源监控页面中还展示了服务资源自主推荐的关键指标的监控详情。单击右上角的选择框,可选择资源维度展示资源详情,也可选择其它资源完成看板切换。 图4 查看关键指标的监控详情 关键指标还可以进行配置,单击右上角的“”,可对关键指标进行编辑,勾选指标、修改聚合方式和图标类型。 图5 编辑关键指标
  • 修改ECS的安全组规则(管理控制台) 本节介绍登录管理控制台后修改ECS安全组规则的操作步骤和方法。本章节以ECS为例介绍如何修改DNS和添加安全组,BMS操作步骤类似。 在ECS详情页,单击安全组页签。 进入安全组列表页。 单击具体的安全组名。 单击“更改安全组规则”。 进入安全组详情页。 BMS的操作步骤: 请单击表格中左上角的安全组ID。 在对应安全组“操作”列单击“配置规则”。 在“出方向规则”页签下单击“添加规则”。 按表1所示添加规则。 表1 安全组规则 优先级 策略 类型 协议端口 目的地址 说明 1 允许 IPv4 TCP 80 100.125.0.0/16 用于从OBS桶下载Agent包到ECS或BMS中、获取ECS或BMS的元数据信息与鉴权信息。 1 允许 IPv4 TCP、UDP 53 100.125.0.0/16 用于DNS解析域名,下载Agent时解析OBS地址、发送监控数据时解析云监控服务Endpoint地址。 1 允许 IPv4 TCP 443 100.125.0.0/16 采集监控数据到云监控服务端。
  • 修改DNS(命令行方式) 本节介绍使用命令行方式添加域名解析地址至resolv.conf文件的操作步骤和方法。 如果想要使用管理控制台方式,请参考修改DNS(管理控制台方式)。 使用root账号,登录ECS。 输入“vi /etc/resolv.conf”,打开文件。 在文件中添加“nameserver 100.125.1.250”和“nameserver 100.125.21.250”,输入:wq,按“Enter”保存并退出。 图1 添加域名解析地址(Linux) 不同区域nameserver不同,详细请参考华为云提供的内网DNS地址是多少?
  • 确认正在使用的Agent版本 使用管理员账号,登录ECS。 查看安装路径,确认使用Agent的版本。 老版本Agent安装路径为“C:\Program Files\telescope”,手动配置Agent操作请参考操作步骤(老版本Agent)。 新版本Agent安装路径为“C:\Program Files\uniagent\extension\install\telescope”,手动配置Agent操作请参考操作步骤(新版本Agent)。
  • 支持共享的云服务和资源类型 表1 支持共享的云服务和资源类型 云服务 资源类型 是否支持主动退出共享 应用场景 VPC Subnet:子网 是 共享VPC功能支持多个账号在一个集中管理、共享的VPC内创建云资源,比如ECS、ELB、RDS等。VPC的所有者可以将VPC内的子网共享给一个或者多个账号使用。通过共享VPC功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。 更多信息请参见共享VPC。 DNS Private Zones:内网域名 是 基于资源访问管理(Resource Access Manager,简称RAM)服务,云解析服务可以实现跨账号共享内网域名,资源所有者将内网域名同时共享给多个其他账号使用,资源使用者接受共享邀请后就可以访问和使用共享的内网域名。 更多信息请参见共享内网域名。 Resolver Rules:解析器规则 是 基于资源访问管理(Resource Access Manager,简称RAM)服务,云解析服务可以实现跨账号共享转发规则,资源所有者将转发规则同时共享给多个其他账号使用,资源使用者接受共享邀请后就可以访问和使用共享的转发规则。 更多信息请参见共享转发规则。 SCM Cert:证书 是 云证书管理服务提供共享功能,用户可以将SSL证书同时共享给同一组织单元内的所有成员账号,这些账号可以将共享证书部署到ELB、WAF和CDN等服务,以启用HTTPS协议。 更多信息请参见共享证书。 PCA CA:私有CA 是 云证书管理服务私有证书管理提供共享功能,用户可以将私有CA同时共享给同一组织单元内的所有成员账号,这些账号可以使用共享CA来签发证书。 更多信息请参见共享私有CA。 ER Instances:实例 是 暂无 FunctionGraph Function:函数 是 基于资源访问管理(Resource Access Manager,简称RAM)服务,函数工作流服务可以实现跨账号共享函数,资源所有者将函数同时共享给多个其他账号使用,资源使用者接受共享邀请后就可以访问和使用共享的函数。 更多信息请参见共享函数。
  • 约束与限制 RAM的使用限制如下表所示,如果默认配额无法满足业务需求,您可以申请扩大配额,具体请参见:调整配额。 不同类型的账号之间无法共享资源,具体说明如下: 华为云中国站与国际站账号之间无法共享资源。 华为内部账号与外部账号之间无法共享资源。 表1 RAM使用限制 类型 默认配额 是否支持修改 单账号创建的资源共享实例数量 1000 是 单个资源共享实例关联的资源数量 50 是 单个资源共享实例关联的权限数量 50 是 单个资源共享实例关联的资源使用者数量 50 是 单账号中所有资源共享实例关联的资源数量 5000 是 单账号中所有资源共享实例关联的权限数量 5000 是 单账号中所有资源共享实例关联的资源使用者数量 5000 是 单账号中待接受的共享邀请数量(发送邀请方) 说明: 该配额限制仅适用于给组织外的账号发送共享邀请的情况。 对于接受邀请的账号中可存在的待接受共享邀请数量没有配置限制。 当已启用与组织共享资源开关,同一组织内的账号之间进行的资源共享不涉及邀请。 50 是 单个资源共享实例的标签数 20 是 被删除的资源共享实例的保留时间 48小时 否 被解除的资源共享关联保留时间 48小时 否 单个资源使用者可以被共享的VPC子网最大数量 100 否
  • RAM权限 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使用户组中的用户获得相应的权限,这一过程称为授权。授权后,用户可以基于已有权限进行对应的操作。 RAM部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问RAM时,不需要切换区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如表1所示,包括了RAM的所有系统权限。 表1 RAM系统权限 权限名称 描述 RAM FullAccess 资源访问管理服务所有权限。 RAM ReadOnlyAccess 资源访问管理服务只读权限。 RAM ResourceShareParticipantAccess 资源访问管理服务资源共享邀请的处理权限。
  • 产品功能 资源共享管理 使用RAM服务,资源所有者可以集中管理资源的共享。资源所有者可以将指定资源共享给指定对象(包括组织、OU以及账号),资源所有者还可以随时更新或删除资源共享实例。 资源使用者可以接受或拒绝共享邀请,查看当前正在使用的共享信息,以及在共享资源使用结束后退出共享。 共享信息查询 资源所有者可以查询当前已经共享的资源信息,以及资源使用者的相关信息。 资源使用者可以查询当前正在使用的共享资源信息,以及资源所有者信息。 与组织共享资源 RAM启用与组织共享资源功能后,资源所有者可以将指定资源共享给组织、OU或成员账号,组织内的账号默认接受该共享邀请。
  • 简介 资源访问管理(Resource Access Manager,简称RAM)服务为用户提供安全的跨账号共享资源的能力。如果您有多个华为云账号,您可以创建一次资源,并使用RAM服务将该资源共享给其他账号使用,这样您就不需要在每个账号中创建重复的资源。支持共享的云服务和资源类型请参见:支持共享的云服务和资源类型。 如果您的账号由组织管理,则您可以直接与组织、OU或成员账号共享资源,还可以输入账号ID与账号共享,无论账号是否属于组织。
  • 不受SCP限制的任务 您无法使用SCP来限制以下任务: 组织管理账号及其IAM用户执行的任何操作。 使用服务关联委托执行的任何操作。 由不支持SCP的云服务对支持SCP的云服务发起的API调用请求,将不受SCP限制。当前支持SCP的云服务和区域请参见:支持SCP的云服务和支持SCP的区域。 通过API方式获取Token后,使用该Token访问支持SCP的云服务的API,将不受SCP限制。 华为云移动端APP版本低于v3.30.0,将不受SCP限制。
  • 概述 服务控制策略 (Service Control Policy,SCP) 是一种基于组织的访问控制策略。组织管理账号可以使用SCP指定组织中成员账号的权限边界,限制账号内用户的操作。服务策略可以关联到组织、OU和成员账号。当服务策略关联到组织或OU时,该组织或OU下所有账号受到该策略影响。 本节将从以下几方面为您介绍SCP: SCP原理介绍:介绍SCP的分类,作用原理,继承规则,与IAM策略的关系。 SCP语法介绍:介绍SCP的组成结构与策略参数。
  • 测试SCP的影响 针对SCP对账号的影响,强烈建议您在生产环境应用SCP前,使用测试账号、测试环境、测试用例开展充分且彻底的系统设计和系统测试,避免对生产环境中服务资源的使用产生不必要的影响。在测试环境充分验证之后,且需要在生产环境应用时,您可以先创建一个OU,并每次移入一个账号或少量账号,以确保不会意外中断服务资源的使用。 对于系统预置的SCP“FullAccess”,解绑操作需谨慎处理,除非您将其替换为具有允许操作的自定义策略,否则不应解绑该策略。当您确定需要解绑“FullAccess”并且配置具有允许操作的自定义策略时,除配置业务需要的授权项外,必须额外配置iamToken::*和signin::*。 如果解绑Root的“FullAccess”策略,则整个组织内所有账号的可操作性权限都将失效。此操作风险极高,需谨慎操作。 如果解绑OU的“FullAccess”策略,则该OU(包含下级OU)内账号的可操作权限都将失效。 如果解绑成员账号的“FullAccess”策略,则该账号的可操作权限将失效。
  • 条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀通常为服务缩写,如SWR仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 SWR定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 SWR支持的服务级条件键 服务级条件键 类型 单值/多值 说明 swr:TargetOrgPath string 单值 按照共享目标账号所处的组织路径进行权限控制。 swr:TargetOrgId string 单值 按照共享目标账号所处的组织Id进行权限控制。 swr:TargetAccountId string 单值 按照共享目标账号Id进行权限控制。
  • 操作(Action) 操作(Action)即为SCP中支持的授权项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于SWR定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在SCP语句的Condition元素中支持指定的键值。 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。 如果此列条件键没有值(-),表示此操作不支持指定条件键。 关于SWR定义的条件键的详细信息请参见条件(Condition)。 您可以在SCP语句的Action元素中指定以下SWR的相关操作。 表1 SWR支持的授权项 授权项 描述 访问级别 资源类型(*为必须) 条件键 swr:namespace:createNamespace 授予共享版仓库创建组织的权限。 write namespace * - swr:namespace:deleteNamespace 授予共享版仓库删除组织的权限。 write namespace * - swr:namespace:listNamespaces 授予共享版仓库查询组织列表的权限。 list namespace * - swr:namespace:getNamespace 授予共享版仓库获取组织详情的权限。 read namespace * - swr:repo:createRepo 授予共享版仓库创建镜像仓库的权限。 write repo * - swr:repo:deleteRepo 授予共享版仓库删除镜像仓库的权限。 write repo * - swr:repo:listRepos 授予共享版仓库查询镜像仓库列表的权限。 list repo * - swr:repo:listSharedRepos 授予共享版仓库查询共享镜像列表的权限。 list repo * - swr:repo:getRepo 授予共享版仓库查询镜像仓库概要信息的权限。 read repo * - swr:repo:updateRepo 授予共享版仓库更新镜像仓库的概要信息的权限。 write repo * - swr:repo:deleteRepoTag 授予共享版仓库删除镜像仓库中指定tag的镜像的权限。 write repo * - swr:repo:createRepoTag 授予共享版仓库创建镜像tag的权限。 write repo * - swr:repo:listRepoTags 授予共享版仓库查询镜像tag列表的权限。 list repo * - swr:repo:createRepoDomain 授予共享版仓库创建共享账号的权限。 permission_management repo * - - swr:TargetAccountId swr:TargetOrgPath swr:TargetOrgId swr:repo:deleteRepoDomain 授予共享版仓库删除共享账号的权限。 permission_management repo * - swr:repo:listRepoDomains 授予共享版仓库获取共享账号列表的权限。 list repo * - swr:repo:getRepoDomain 授予共享版仓库判断共享账号是否存在的权限。 read repo * - swr:repo:updateRepoDomain 授予共享版仓库更新共享账号的权限。 permission_management repo * - swr:repo:createRepoShare 授予共享版仓库创建镜像共享规则的权限。 permission_management repo * - - swr:TargetAccountId swr:TargetOrgPath swr:TargetOrgId swr:repo:deleteRepoShare 授予共享版仓库删除镜像共享规则的权限。 permission_management repo * - swr:repo:listRepoShares 授予共享版仓库获取镜像共享规则列表的权限。 list repo * - swr:repo:getRepoShare 授予共享版仓库查看镜像共享规则的权限。 read repo * - swr:repo:updateRepoShare 授予共享版仓库更新镜像共享规则的权限。 permission_management repo * - swr:repo:createAutoSyncRepoJob 授予共享版仓库创建镜像自动同步任务的权限。 write repo * - swr:repo:createManualSyncRepoJob 授予共享版仓库手动同步镜像的权限。 write repo * - swr:repo:deleteAutoSyncRepoJob 授予共享版仓库删除镜像自动同步任务的权限。 write repo * - swr:repo:listAutoSyncRepoJobs 授予共享版仓库获取镜像自动同步任务列表的权限。 list repo * - swr:repo:getSyncRepoJobInfo 授予共享版仓库获取镜像自动同步任务信息的权限。 read repo * - swr:repo:createTrigger 授予共享版仓库创建触发器的权限。 write repo * - swr:repo:deleteTrigger 授予共享版仓库删除触发器的权限。 write repo * - swr:repo:listTriggers 授予共享版仓库获取镜像仓库下的触发器列表的权限。 list repo * - swr:repo:getTrigger 授予共享版仓库获取触发器详情的权限。 read repo * - swr:repo:updateTrigger 授予共享版仓库更新触发器配置的权限。 write repo * - swr:repo:createRetention 授予共享版仓库创建镜像老化规则的权限。 write repo * - swr:repo:deleteRetention 授予共享版仓库删除镜像老化规则的权限。 write repo * - swr:repo:listRetentionHistories 授予共享版仓库获取镜像老化记录的权限。 list repo * - swr:repo:listRetentions 授予共享版仓库获取镜像老化规则列表的权限。 list repo * - swr:repo:getRetention 授予共享版仓库获取镜像老化规则记录的权限。 read repo * - swr:repo:updateRetention 授予共享版仓库修改镜像老化规则的权限。 write repo * - swr::createLoginSecret 授予共享版仓库生成临时登录指令的权限。 write - - swr::listQuotas 授予共享版仓库获取配额信息的权限。 list - - swr::getDomainOverview 授予共享版仓库获取租户总览信息的权限。 read - - swr::getDomainResourceReports 授予共享版仓库获取租户资源统计信息的权限。 read - - swr:namespace:multipartUpload 授予共享版仓库分段上传镜像的权限。 write namespace * - swr:namespace:createNamespaceAccess 授予共享版仓库创建组织权限的权限。 permission_management namespace * - swr:namespace:deleteNamespaceAccess 授予共享版仓库删除组织权限的权限。 permission_management namespace * - swr:namespace:getNamespaceAccess 授予共享版仓库查询组织权限的权限。 read namespace * - swr:namespace:updateNamespaceAccess 授予共享版仓库更新组织权限的权限。 permission_management namespace * - swr:repo:createRepoAccess 授予共享版仓库创建镜像权限的权限。 permission_management repo * - swr:repo:deleteRepoAccess 授予共享版仓库删除镜像权限的权限。 permission_management repo * - swr:repo:getRepoAccess 授予共享版仓库查询镜像权限的权限。 read repo * - swr:repo:updateRepoAccess 授予共享版仓库更新镜像权限的权限。 permission_management repo * - swr:repo:upload 授予共享版仓库上传镜像的权限。 write repo * - swr:repo:download 授予共享版仓库下载镜像的权限。 read repo * - SWR的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。 表2 API与授权项的关系 API 对应的授权项 依赖的授权项 POST /v2/manage/namespaces swr:namespace:createNamespace - DELETE /v2/manage/namespaces/{namespace} swr:namespace:deleteNamespace - GET /v2/manage/namespaces swr:namespace:listNamespaces - GET /v2/manage/namespaces/{namespace} swr:namespace:getNamespace - POST /v2/manage/namespaces/{namespace}/repos swr:repo:createRepo - DELETE /v2/manage/namespaces/{namespace}/repos/{repository} swr:repo:deleteRepo - GET /v2/manage/repos swr:repo:listRepos - GET /v2/manage/shared-repositories swr:repo:listSharedRepos - GET /v2/manage/namespaces/{namespace}/repos/{repository} swr:repo:getRepo - PATCH /v2/manage/namespaces/{namespace}/repos/{repository} swr:repo:updateRepo - DELETE /v2/manage/namespaces/{namespace}/repos/{repository}/tags/{tag} swr:repo:deleteRepoTag - GET /v2/manage/namespaces/{namespace}/repos/{repository}/tags swr:repo:listRepoTags - POST /v2/manage/namespaces/{namespace}/repositories/{repository}/access-domains swr:repo:createRepoDomain - DELETE /v2/manage/namespaces/{namespace}/repositories/{repository}/access-domains/{access_domain} swr:repo:deleteRepoDomain - GET /v2/manage/namespaces/{namespace}/repositories/{repository}/access-domains swr:repo:listRepoDomains - GET /v2/manage/namespaces/{namespace}/repositories/{repository}/access-domains/{access_domain} swr:repo:getRepoDomain - PATCH /v2/manage/namespaces/{namespace}/repositories/{repository}/access-domains/{access_domain} swr:repo:updateRepoDomain - POST /v2/manage/namespaces/{namespace}/repos/{repository}/shares swr:repo:createRepoShare - DELETE /v2/manage/namespaces/{namespace}/repos/{repository}/shares/{share_id} swr:repo:deleteRepoShare - GET /v2/manage/namespaces/{namespace}/repos/{repository}/shares swr:repo:listRepoShares - PATCH /v2/manage/namespaces/{namespace}/repos/{repository}/shares/{share_id} swr:repo:updateRepoShare - POST /v2/manage/namespaces/{namespace}/repos/{repository}/sync_repo swr:repo:createAutoSyncRepoJob swr::createLoginSecret swr:repo:download swr:repo:upload POST /v2/manage/namespaces/{namespace}/repos/{repository}/sync_images swr:repo:createManualSyncRepoJob swr::createLoginSecret swr:repo:download swr:repo:upload DELETE /v2/manage/namespaces/{namespace}/repos/{repository}/sync_repo swr:repo:deleteAutoSyncRepoJob - GET /v2/manage/namespaces/{namespace}/repos/{repository}/sync_repo swr:repo:listAutoSyncRepoJobs - GET /v2/manage/namespaces/{namespace}/repos/{repository}/sync_job swr:repo:getSyncRepoJobInfo - POST /v2/manage/namespaces/{namespace}/repos/{repository}/triggers swr:repo:createTrigger - DELETE /v2/manage/namespaces/{namespace}/repos/{repository}/triggers/{trigger} swr:repo:deleteTrigger - GET /v2/manage/namespaces/{namespace}/repos/{repository}/triggers swr:repo:listTriggers - GET /v2/manage/namespaces/{namespace}/repos/{repository}/triggers/{trigger} swr:repo:getTrigger - PATCH /v2/manage/namespaces/{namespace}/repos/{repository}/triggers/{trigger} swr:repo:updateTrigger - POST /v2/manage/namespaces/{namespace}/repos/{repository}/retentions swr:repo:createRetention - DELETE /v2/manage/namespaces/{namespace}/repos/{repository}/retentions/{retention_id} swr:repo:deleteRetention - GET /v2/manage/namespaces/{namespace}/repos/{repository}/retentions/histories swr:repo:listRetentionHistories - GET /v2/manage/namespaces/{namespace}/repos/{repository}/retentions swr:repo:listRetentions - GET /v2/manage/namespaces/{namespace}/repos/{repository}/retentions/{retention_id} swr:repo:getRetention - PATCH /v2/manage/namespaces/{namespace}/repos/{repository}/retentions/{retention_id} swr:repo:updateRetention - POST /v2/manage/utils/secret swr::createLoginSecret - GET /v2/manage/projects/{project_id}/quotas swr::listQuotas - POST /v2/manage/namespaces/{namespace}/access swr:namespace:createNamespaceAccess - DELETE /v2/manage/namespaces/{namespace}/access swr:namespace:deleteNamespaceAccess - GET /v2/manage/namespaces/{namespace}/access swr:namespace:getNamespaceAccess - PATCH /v2/manage/namespaces/{namespace}/access swr:namespace:updateNamespaceAccess - POST /v2/manage/namespaces/{namespace}/repos/{repository}/access swr:repo:createRepoAccess - DELETE /v2/manage/namespaces/{namespace}/repos/{repository}/access swr:repo:deleteRepoAccess - GET /v2/manage/namespaces/{namespace}/repos/{repository}/access swr:repo:getRepoAccess - PATCH /v2/manage/namespaces/{namespace}/repos/{repository}/access swr:repo:updateRepoAccess -
共100000条