You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!--
Please make sure you've run the following commands from the root
directory.
bin/generate-all.sh
(this runs commands like "go generate", fixes formatting, and so on)
Help keep the release changelog clear by pre-naming the proper section
in the GitHub pull request title.
Some examples:
* CICD: Add required GHA permissions for goreleaser
* DOCS: Fixed providers with "contributor support" table
* ROUTE53: Allow R53_ALIAS records to enable target health evaluation
More examples/context can be found in the file .goreleaser.yml under the
'build' > 'changelog' key.
!-->
#420
Please create the GitHub label 'provider-ALIDNS'
---------
Co-authored-by: Tom Limoncelli <[email protected]>
This provider is for [Alibaba Cloud DNS](https://www.alibabacloud.com/product/dns) (also known as ALIDNS). To use this provider, add an entry to `creds.json` with `TYPE` set to `ALIDNS` along with your API credentials.
4
+
5
+
Example:
6
+
7
+
{% code title="creds.json" %}
8
+
```json
9
+
{
10
+
"alidns": {
11
+
"TYPE": "ALIDNS",
12
+
"access_key_id": "YOUR_ACCESS_KEY_ID",
13
+
"access_key_secret": "YOUR_ACCESS_KEY_SECRET"
14
+
}
15
+
}
16
+
```
17
+
{% endcode %}
18
+
19
+
Optionally, you can specify a `region_id`:
20
+
21
+
{% code title="creds.json" %}
22
+
```json
23
+
{
24
+
"alidns": {
25
+
"TYPE": "ALIDNS",
26
+
"access_key_id": "YOUR_ACCESS_KEY_ID",
27
+
"access_key_secret": "YOUR_ACCESS_KEY_SECRET",
28
+
"region_id": "cn-hangzhou"
29
+
}
30
+
}
31
+
```
32
+
{% endcode %}
33
+
34
+
Note: The `region_id` defaults to `"cn-hangzhou"`. The region value does not affect DNS management (DNS is global), but Alibaba's SDK requires a region to be provided.
DNSControl depends on an Alibaba Cloud [RAM user](https://www.alibabacloud.com/help/en/ram/user-guide/overview-of-ram-users) with permissions to manage DNS records.
56
+
57
+
### Creating RAM User and Access Keys
58
+
59
+
1. Log in to the [RAM console](https://ram.console.aliyun.com/)
60
+
2. Create a new RAM user or use an existing one
61
+
3. Generate an AccessKey ID and AccessKey Secret for the user
62
+
4. Attach the `AliyunDNSFullAccess` policy to the user
63
+
64
+
The minimum required permissions are:
65
+
66
+
```json
67
+
{
68
+
"Version": "1",
69
+
"Statement": [
70
+
{
71
+
"Effect": "Allow",
72
+
"Action": [
73
+
"alidns:DescribeDomains",
74
+
"alidns:DescribeDomainRecords",
75
+
"alidns:DescribeDomainInfo",
76
+
"alidns:AddDomainRecord",
77
+
"alidns:UpdateDomainRecord",
78
+
"alidns:DeleteDomainRecord"
79
+
],
80
+
"Resource": "*"
81
+
}
82
+
]
83
+
}
84
+
```
85
+
86
+
## Important Notes
87
+
88
+
### TTL Constraints
89
+
90
+
Alibaba Cloud DNS has different TTL constraints depending on your DNS edition:
91
+
92
+
-**Enterprise Ultimate Edition**: TTL can be as low as 1 second (1-86400)
DNSControl will automatically validate TTL values based on your domain's edition. If you attempt to use a TTL below the minimum for your edition, you will receive an error.
96
+
97
+
### Chinese Domain Name Support
98
+
99
+
ALIDNS supports Chinese domain names (IDN with Chinese characters). However:
100
+
101
+
-**Supported**: ASCII characters and Chinese characters (CJK Unified Ideographs)
102
+
-**Not supported**: Other Unicode characters (e.g., German umlauts, Arabic script)
103
+
104
+
DNSControl will automatically convert between punycode and unicode as needed.
Alibaba Cloud DNS has specific constraints for TXT records:
116
+
- Cannot be empty
117
+
- Maximum length: 512 bytes
118
+
- Cannot contain unescaped double quotes
119
+
- Cannot have trailing spaces
120
+
- Cannot have unpaired backslashes (odd number of consecutive backslashes)
121
+
122
+
DNSControl will audit and reject records that violate these constraints.
123
+
124
+
## New Domains
125
+
126
+
If a domain does not exist in your Alibaba Cloud account, you must create it manually through the Alibaba Cloud console. DNSControl does not automatically create new domains for this provider.
| Provider name |[`DHCID`](../language-reference/domain-modifiers/DHCID.md)|[`NAPTR`](../language-reference/domain-modifiers/NAPTR.md)|[`SRV`](../language-reference/domain-modifiers/SRV.md)|[`SVCB`](../language-reference/domain-modifiers/SVCB.md)|
| Provider name |[`CAA`](../language-reference/domain-modifiers/CAA.md)|[`HTTPS`](../language-reference/domain-modifiers/HTTPS.md)|[`SMIMEA`](../language-reference/domain-modifiers/SMIMEA.md)|[`SSHFP`](../language-reference/domain-modifiers/SSHFP.md)|[`TLSA`](../language-reference/domain-modifiers/TLSA.md)|
| Provider name |[`AUTODNSSEC`](../language-reference/domain-modifiers/AUTODNSSEC_ON.md)|[`DNSKEY`](../language-reference/domain-modifiers/DNSKEY.md)|[`DS`](../language-reference/domain-modifiers/DS.md)|
0 commit comments