Skip to content

华为云

Dotnify 使用 Access Key ID (AK)Secret Access Key (SK) 密钥对连接华为云 DNS。请求使用 HMAC-SHA256 签名算法(类似 AWS SigV4)进行签名——无需 SDK 依赖。

创建 AK/SK 密钥对

  1. 登录 华为云控制台
  2. 前往 我的凭证访问密钥
  3. 点击 创建访问密钥
  4. 下载包含 AK 和 SK 的 CSV 文件——妥善保存,之后将无法再查看 SK

所需权限

AK/SK 用户需要以下策略权限:

服务操作描述
DNSdns:zone:list列出公网解析域
DNSdns:recordset:list列出解析域中的记录集
DNSdns:recordset:create创建记录集
DNSdns:recordset:update更新记录集
DNSdns:recordset:delete删除记录集

可以通过 IAM策略创建自定义策略 分配这些权限。

自定义策略示例(JSON):

json
{
  "Version": "1.1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dns:zone:list",
        "dns:recordset:list",
        "dns:recordset:create",
        "dns:recordset:update",
        "dns:recordset:delete"
      ]
    }
  ]
}

在 Dotnify 中添加服务商

  1. 前往 服务商添加服务商
  2. 选择 Huawei Cloud 作为服务商类型
  3. 输入显示名称(如 "Production 华为云")
  4. 输入 Access Key IDSecret Access Key
  5. 可选择区域(见下方说明)
  6. 点击验证并继续

Dotnify 将使用提供的凭据尝试列出解析域。如果验证失败,请检查:

  • AK 和 SK 是否正确复制
  • IAM 用户是否具有所需的 DNS 权限
  • 账户是否已配置公网解析域

区域选择

华为云 DNS 是全局服务——默认端点为 dns.myhuaweicloud.com。大多数情况下不需要选择区域。

如果选择了区域,端点将变为 dns.{region}.myhuaweicloud.com(如 dns.cn-north-1.myhuaweicloud.com)。

常见区域代码:

区域代码
华北-北京一cn-north-1
华东-上海二cn-east-2
华南-广州cn-south-1
亚太-香港ap-southeast-1

选择解析域

验证后,Dotnify 显示凭据可访问的所有公网解析域。你可以:

  • 勾选特定解析域以仅管理这些域名
  • 全部不勾选以管理每个可访问的解析域

Dotnify 如何使用 AK/SK

Dotnify 在 Node.js 中直接实现华为云 API 签名(无需 SDK)。签名过程:

  1. 从 HTTP 方法、URI、查询字符串、请求头和负载哈希构建规范请求
  2. 使用签名算法(SDK-HMAC-SHA256)和日期时间创建待签名字符串
  3. 使用 SK 计算 HMAC-SHA256 签名
  4. 添加 Authorization 头:SDK-HMAC-SHA256 Access={AK}, SignedHeaders=..., Signature=...
操作华为云端点
列出解析域GET /v2/zones
列出记录集GET /v2.1/zones/{zoneId}/recordsets
创建记录集POST /v2.1/zones/{zoneId}/recordsets
更新记录集PUT /v2.1/zones/{zoneId}/recordsets/{recordSetId}
删除记录集DELETE /v2.1/zones/{zoneId}/recordsets/{recordSetId}

注意:Dotnify 使用 v2.1 API 访问记录集,以获取 line(解析线路)字段。

华为云特有功能

解析线路(线路类型)

华为云 DNS 支持解析线路——你可以为不同的运营商或地域设置不同的记录(如默认、电信、联通、移动)。在 Dotnify 中创建或编辑记录时,可以从下拉菜单选择解析线路。

可用线路从 Dotnify 内置的静态 JSON 文件(src/huawei_line.json)加载。数据包括线路 ID、显示名称和父类别(如"电信"、"联通"、"移动"属于"运营商"类别)。

记录集模型

华为云使用记录集模型而非单条记录。一个记录集包含名称、类型、TTL 和记录值数组。这意味着:

  • 相同名称/类型的多个值存储为一个记录集
  • 编辑时,Dotnify 发送完整的 records 数组(非 PATCH 语义)
  • 在 Dotnify UI 中,多个值以逗号分隔显示

主机名格式

华为云要求带尾部点号的完全限定域名(如 www.example.com.)。Dotnify 自动转换短名称:

输入存储为
@example.com.
wwwwww.example.com.
mail.example.com.mail.example.com.(不变)

安全说明

  • AK 和 SK 以明文存储在 Redis 中(当前 MVP 设计)。请使用强凭据保护你的 Redis 实例。
  • 通过 API 返回服务商列表时,密钥被掩码——仅显示最后 4 个字符。
  • 编辑服务商时,可以留空 AK/SK 字段以保持当前值不变。
  • 所有华为云 API 调用均在服务端进行——AK/SK 不会暴露给浏览器。