阿里云 CDN 接入 CertbotX:RAM 子账号、AccessKey 和最小权限教程

不用主账号 AccessKey。创建专用 RAM 用户和自定义 CDN 权限,完成 CertbotX 云连接只读验证、证书上传、绑定与回滚。

本文目录

把主账号 AccessKey 填进第三方平台,短期确实省事,长期通常会变成一张没人敢删的“万能钥匙”。接入阿里云 CDN 时,建议单独创建一个 RAM 用户,只授予 CertbotX 查询 CDN 域名、读取当前证书和更新目标域名证书所需的权限。

CertbotX 会调用哪些阿里云 API

当前阿里云 CDN 部署链路使用四个动作:

  • cdn:DescribeUserDomains:保存云连接时执行只读验证。
  • cdn:DescribeCdnDomainDetail:确认目标 CDN 域名属于该账号。
  • cdn:DescribeDomainCertificateInfo:读取当前 HTTPS 和证书绑定,生成回滚快照。
  • cdn:SetCdnDomainSSLCertificate:上传并绑定新证书,必要时恢复旧证书绑定。

只读验证通过,只能说明前三类查询权限基本可用,不代表最后的写权限已经正确。真正的部署演练仍要用一个非核心测试域名完成。

创建专用 RAM 用户

  1. 登录阿里云控制台,进入“访问控制 RAM”。
  2. 打开“身份管理 > 用户”,创建一个专用用户,例如 certbotx-cdn-deployer。
  3. 只为该用户创建 OpenAPI AccessKey,不给控制台登录权限,也不要使用主账号 AccessKey。
  4. Secret 只会完整显示一次,先保存在密码管理器中。

阿里云界面会随版本调整,找不到入口时可从 RAM 用户创建说明 进入最新文档。

添加云厂商账号:1 选择阿里云;腾讯云 EdgeOne 和腾讯云 CDN 是独立部署产品
添加云厂商账号:1 选择阿里云;腾讯云 EdgeOne 和腾讯云 CDN 是独立部署产品查看原图

创建最小权限策略

进入“权限管理 > 权限策略”,创建自定义策略。可以先使用下面的动作集合:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cdn:DescribeUserDomains",
        "cdn:DescribeCdnDomainDetail",
        "cdn:DescribeDomainCertificateInfo",
        "cdn:SetCdnDomainSSLCertificate"
      ],
      "Resource": "*"
    }
  ]
}

将策略授权给刚创建的 RAM 用户。部分 CDN API 对资源级授权支持有限,因此示例使用 Resource: "*",但动作已经限制在四项 CDN 能力内。如果账号里同时有多套业务,继续使用阿里云权限助手核对能否按资源收窄,不要为了省一行策略直接挂 AliyunCDNFullAccess 或管理员权限。

自定义策略的创建方式以 阿里云 RAM 自定义权限策略文档 为准。

在 CertbotX 中保存云连接

  1. 登录 CertbotX 客户控制台,进入“接入点”。
  2. 切换到“云厂商”,点击“添加云厂商账号”。
  3. 选择“阿里云 CDN”。
  4. 连接名称填写能区分环境的名称,例如“阿里云生产 CDN”。
  5. 填入 RAM 用户的 AccessKey ID 和 AccessKey Secret。
  6. 点击“保存并验证”。

凭据会在服务端使用 AES-GCM 加密保存,连接列表和后续 API 不会再次返回 Secret 明文。保存成功后 CertbotX 会立即调用 DescribeUserDomains 做只读验证。

配置阿里云 CDN:1 连接名称,2 AccessKey ID,3 AccessKey Secret,4 保存并验证
配置阿里云 CDN:1 连接名称,2 AccessKey ID,3 AccessKey Secret,4 保存并验证查看原图

然后在域名的部署向导中选择“云厂商 > 阿里云 > CDN”,选择刚验证的连接并填写已经存在于阿里云 CDN 的完整加速域名。平台不会替你创建 CDN 域名、修改回源或切换 DNS,只负责把已签发证书绑定到明确选择的 CDN 域名。

第一次部署怎么验收

建议先选一个非核心测试域名:

  1. 确认阿里云 CDN 控制台里已经存在该加速域名。
  2. 在 CertbotX 发起部署,观察“快照、上传、厂商确认、公网 TLS 验证”各阶段。
  3. 使用 SSL 检测工具 查看公网证书有效期、SAN 和颁发者。
  4. 再从不同网络访问一次,避免只看到单个边缘节点的结果。

CertbotX 上传到云厂商的证书名称使用“域名 + 年月日时分秒”,方便在控制台区分历史版本。部署前会保存旧证书绑定快照;厂商确认或公网验证失败时会尝试恢复旧绑定。回滚仍依赖阿里云 API 和旧证书资源可用,关键业务应保留自己的变更窗口和证书备份。

常见报错

  • “AccessKey 不存在、已失效或无权访问”:确认 AK 属于刚授权的 RAM 用户,并检查是否已经禁用或轮换。
  • “缺少目标资源的必要权限”:核对四个 Action,尤其是 SetCdnDomainSSLCertificate。
  • “目标资源不存在或不属于当前账号”:CertbotX 中填写的必须是 CDN 加速域名,不是源站域名,也不能多一个协议或路径。
  • 只读验证成功、部署失败:这通常是只有查询权限,没有写权限。
  • 厂商显示新证书,公网还是旧证书:等待 CDN 节点传播,并检查 DNS 是否真的指向这套 CDN。

权限策略宜小不宜大,排障时也更清楚:四把小螺丝刀找错了还能逐项检查,一把万能电钻递给所有系统,出问题时就只能先拔电源。

← 返回资讯中心