阿里云如何配置子域名及其对应 RAM 访问权限

发布时间 2023-05-25 10:45:00作者: SangriaChant

背景

背景:

  • 假设只有一个二级域名 domain.com,有多套环境的情况下,可能需要分配不同的三级子域名 sub.domain.com,每个环境可能需要再配置四级子域名 sub.sub.domain.com
  • 如果使用一个 AK 拥有所有域名的 DNS 权限,可能不太安全(即使互相信任,也无法避免误操作导致影响其他环境)

需求:

  • 每套环境需要拥有自己的一套 AK,并能自己管理自己的域名,互不冲突

操作步骤

1 添加子域名

阿里云的 RAM 访问控制中,不允许使用通配等方式配置域名资源(因为操作是针对 AUTHORITY SECTION 的),因此必须先拆分出子域名。

首先在 域名解析 页面添加子域名(本文以 env1.domain.com 为例)

image

添加域名需要 TXT 记录验证

image

按照提示要求在你的主域名添加对应的 TXT 主机记录后点击验证即可添加成功。

2 创建子域名的 RAM 权限策略

其策略类似如下(需要把 ${your-sub-domain} 改为刚才创建的子域名,如本文的 env1.domain.com),此处虽然可以使用通配,但名称必须是域名解析中列出的域名值。

{
    "Version": "1",
    "Statement": [
        {
            "Action": "alidns:*",
            "Resource": "acs:alidns:::domain/${your-sub-domain}",
            "Effect": "Allow"
        },
        {
            "Action": [
                "alidns:Describe*"
            ],
            "Resource": "acs:alidns:::*",
            "Effect": "Allow"
        }
    ]
}

这里配置了两个策略:

  • 第一个策略是允许 acs:alidns:::domain/${your-sub-domain} 资源的所有 alidns:* 操作
  • 第二个策略是允许所有 acs:alidns:::* 资源的 Describe alidns:Describe* 操作(此处可能还需要 Describe 其他的资源,阿里云文档和客服并没有给出明确的答复)

3 子账号赋权和 AK 申请

新建一个 RAM 用户,需要勾选 OpenAPI 调用访问

image

之后进入用户详情创建 AK

image

进入权限管理为用户赋予刚才创建的策略,或者你也可以为用户组赋权后将用户加入用户组(推荐)

image

4 使用 AK

之后根据使用的不同的 ACME 或 DDNS 服务等的文档配置 AK 即可