阿里云如何配置子域名及其对应 RAM 访问权限
背景
背景:
- 假设只有一个二级域名
domain.com
,有多套环境的情况下,可能需要分配不同的三级子域名sub.domain.com
,每个环境可能需要再配置四级子域名sub.sub.domain.com
- 如果使用一个 AK 拥有所有域名的 DNS 权限,可能不太安全(即使互相信任,也无法避免误操作导致影响其他环境)
需求:
- 每套环境需要拥有自己的一套 AK,并能自己管理自己的域名,互不冲突
操作步骤
1 添加子域名
阿里云的 RAM 访问控制中,不允许使用通配等方式配置域名资源(因为操作是针对 AUTHORITY SECTION 的),因此必须先拆分出子域名。
首先在 域名解析 页面添加子域名(本文以 env1.domain.com
为例)
添加域名需要 TXT 记录验证
按照提示要求在你的主域名添加对应的 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:::*
资源的 Describealidns:Describe*
操作(此处可能还需要 Describe 其他的资源,阿里云文档和客服并没有给出明确的答复)
3 子账号赋权和 AK 申请
新建一个 RAM 用户,需要勾选 OpenAPI 调用访问
之后进入用户详情创建 AK
进入权限管理为用户赋予刚才创建的策略,或者你也可以为用户组赋权后将用户加入用户组(推荐)
4 使用 AK
之后根据使用的不同的 ACME 或 DDNS 服务等的文档配置 AK 即可