华为云
Dotnify 使用 Access Key ID (AK) 和 Secret Access Key (SK) 密钥对连接华为云 DNS。请求使用 HMAC-SHA256 签名算法(类似 AWS SigV4)进行签名——无需 SDK 依赖。
创建 AK/SK 密钥对
- 登录 华为云控制台
- 前往 我的凭证 → 访问密钥
- 点击 创建访问密钥
- 下载包含 AK 和 SK 的 CSV 文件——妥善保存,之后将无法再查看 SK
所需权限
AK/SK 用户需要以下策略权限:
| 服务 | 操作 | 描述 |
|---|---|---|
| DNS | dns:zone:list | 列出公网解析域 |
| DNS | dns:recordset:list | 列出解析域中的记录集 |
| DNS | dns:recordset:create | 创建记录集 |
| DNS | dns:recordset:update | 更新记录集 |
| DNS | dns:recordset:delete | 删除记录集 |
可以通过 IAM → 策略 → 创建自定义策略 分配这些权限。
自定义策略示例(JSON):
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dns:zone:list",
"dns:recordset:list",
"dns:recordset:create",
"dns:recordset:update",
"dns:recordset:delete"
]
}
]
}在 Dotnify 中添加服务商
- 前往 服务商 → 添加服务商
- 选择 Huawei Cloud 作为服务商类型
- 输入显示名称(如 "Production 华为云")
- 输入 Access Key ID 和 Secret Access Key
- 可选择区域(见下方说明)
- 点击验证并继续
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)。签名过程:
- 从 HTTP 方法、URI、查询字符串、请求头和负载哈希构建规范请求
- 使用签名算法(
SDK-HMAC-SHA256)和日期时间创建待签名字符串 - 使用 SK 计算 HMAC-SHA256 签名
- 添加
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. |
www | www.example.com. |
mail.example.com. | mail.example.com.(不变) |
安全说明
- AK 和 SK 以明文存储在 Redis 中(当前 MVP 设计)。请使用强凭据保护你的 Redis 实例。
- 通过 API 返回服务商列表时,密钥被掩码——仅显示最后 4 个字符。
- 编辑服务商时,可以留空 AK/SK 字段以保持当前值不变。
- 所有华为云 API 调用均在服务端进行——AK/SK 不会暴露给浏览器。