Skip to content

Alibaba Cloud

Dotnify connects to Alibaba Cloud DNS (Alidns) using an AccessKey ID and AccessKey Secret pair. Requests are signed using the V1 HMAC-SHA1 signing algorithm — no SDK dependency is needed.

Creating an AccessKey Pair

  1. Log in to the Alibaba Cloud console
  2. Go to AccessKey ManagementAccessKey
  3. Click Create AccessKey — an AccessKey ID and AccessKey Secret will be generated
  4. Save the AccessKey Secret securely — you won't be able to view it again after closing the dialog

WARNING

Alibaba Cloud recommends using RAM user AccessKeys instead of the primary account AccessKey. Create a RAM user with the minimum required permissions and use its AccessKey pair.

Required Permissions

The RAM user (or AccessKey) needs the following Alidns permissions:

ServiceActionDescription
Alidnsalidns:DescribeDomainsList domains
Alidnsalidns:DescribeDomainRecordsList records in a domain
Alidnsalidns:AddDomainRecordCreate a record
Alidnsalidns:UpdateDomainRecordUpdate a record
Alidnsalidns:DeleteDomainRecordDelete a record
Alidnsalidns:DescribeDomainInfoGet domain info (used for resolution lines)

You can assign these through a custom policy in RAMPoliciesCreate Policy.

Example custom policy (JSON):

json
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "alidns:DescribeDomains",
        "alidns:DescribeDomainRecords",
        "alidns:AddDomainRecord",
        "alidns:UpdateDomainRecord",
        "alidns:DeleteDomainRecord",
        "alidns:DescribeDomainInfo"
      ],
      "Resource": "*"
    }
  ]
}

For simplicity, you can also use the AliyunDNSFullAccess preset policy, which grants full Alidns access.

Adding the Provider in Dotnify

  1. Go to ProvidersAdd provider
  2. Select Alibaba Cloud as the provider type
  3. Enter a Display name (e.g. "My Alibaba Cloud")
  4. Enter the AccessKey ID and AccessKey Secret
  5. Click Verify & continue

Dotnify will attempt to list domains using the provided credentials. If verification fails, check that:

  • The AccessKey ID and AccessKey Secret were copied correctly
  • The RAM user has the required Alidns permissions
  • The account has domains configured in Alibaba Cloud DNS

Selecting Zones

After verification, Dotnify shows all domains accessible with the credentials. You can:

  • Check specific domains to manage only those
  • Leave all unchecked to manage every accessible domain

You can change the domain selection later by editing the provider.

How Dotnify Uses the Credentials

Dotnify implements the Alibaba Cloud V1 API signing directly in Node.js (no SDK). The signing process:

  1. Sorts all request parameters by key and percent-encodes them per Alibaba Cloud spec
  2. Constructs the string to sign: METHOD&%2F&<percent-encoded canonical query string>
  3. Computes the HMAC-SHA1 signature using the AccessKey Secret with a trailing &
  4. Appends the Signature parameter to the request
OperationAlidns API Action
List domainsDescribeDomains
List recordsDescribeDomainRecords
Create recordAddDomainRecord
Update recordUpdateDomainRecord
Delete recordDeleteDomainRecord
List linesDescribeDomainInfo (with NeedDetailAttributes=true)

All requests are sent to https://alidns.aliyuncs.com/ using the 2015-01-09 API version.

Alibaba Cloud-Specific Features

Resolution Lines

Alibaba Cloud DNS supports resolution lines — you can set different records for different ISPs or regions (e.g. default, telecom, unicom, mobile). When creating or editing a record in Dotnify, you can select a resolution line from a dropdown.

The available lines are fetched live from the API via the DescribeDomainInfo action with NeedDetailAttributes=true. The available lines may vary per domain depending on your Alibaba Cloud DNS plan.

Lines are organized with a two-level hierarchy (parent category and specific line):

CategoryExamples
DefaultDefault line
ISP/CarrierTelecom, Unicom, Mobile
RegionChina provinces, Overseas, Continents, Countries
Search EngineBaidu, Google, Bing

When selecting a line in the Dotnify UI, the first dropdown shows the top-level group and the second dropdown shows the specific line within that group.

Record Weight

Alibaba Cloud DNS supports per-record weighting. When creating or editing a record, you can set a weight value. This is useful for load balancing — Alibaba Cloud DNS will distribute traffic based on the weight ratio across records with the same name, type, and line.

Minimum TTL

Alibaba Cloud DNS enforces a minimum TTL of 600 seconds (10 minutes). Dotnify automatically enforces this: if you set a TTL below 600, it will be rounded up to 600.

Record Status

Alibaba Cloud DNS records have an enable/disable status (ENABLE / DISABLE). Dotnify exposes this as a status field on records ("enable" or "disable").

Record Remarks

Alibaba Cloud DNS supports remarks (comments) on DNS records. Dotnify preserves remarks when reading and displaying records.

Security Notes

  • The AccessKey ID and AccessKey Secret are stored in plaintext in Redis (current MVP design). Protect your Redis instance with strong credentials.
  • When the provider list is returned via the API, keys are masked — only the last 4 characters are visible.
  • When editing a provider, you can leave the AccessKey fields blank to keep the current values unchanged.
  • All Alibaba Cloud API calls are made server-side — the credentials are never exposed to the browser.