Exoscale DNS
Exoscale API key setup: create a restricted IAM role and an attached API key for Exoscale DNS, including operation polling for apply.
On this page
Exoscale API key permissions
- Credential type
- API key and secret
- Preview access
- DNS read operations: `list-dns-domains`, `get-dns-domain`, `list-dns-domain-records` and `get-dns-domain-record`
- Apply access
- DNS service `allow`, plus compute operation `get-operation`
- API endpoint
- DNSMigrator uses the provider's fixed API endpoint.
Additional access
DNSControl id
{
"TYPE": "EXOSCALE"
}Create credentials
Create a restricted IAM role and an attached API key for Exoscale DNS, including operation polling for apply.
Access you'll grant
DNS read operations: list-dns-domains, get-dns-domain, list-dns-domain-records and get-dns-domain-record
DNS service allow, plus compute operation get-operation
get-operation after asynchronous DNS writes. A role that allows only the DNS service can start a write but fail while waiting for it.Before you start
- An Exoscale organization with an active paid DNS zone-bundle subscription.
- Permission to create IAM roles and API keys in the organization.
Setup steps
0 of 6 done
Open IAM roles
In the Exoscale Portal, navigate to IAM → ROLES and add a new role for DNSMigrator.
Set the role policy
Set Default service strategy to DENY. Use the preview policy for a source-only key, or the apply policy for a destination key. The latter allows DNS and only
get-operationfrom the compute service class.Preview policy{"default-service-strategy":"deny","services":{"dns":{"type":"rules","rules":[{"action":"allow","expression":"operation in ['list-dns-domains', 'get-dns-domain', 'list-dns-domain-records', 'get-dns-domain-record']"}]}}}Apply policy{"default-service-strategy":"deny","services":{"dns":{"type":"allow"},"compute":{"type":"rules","rules":[{"action":"allow","expression":"operation == 'get-operation'"}]}}}Create an API key
Navigate to IAM → KEYS, add an API key, give it a recognizable name, and select the role you just created.
Copy both key values
Copy the displayed API Key and API Secret immediately. The secret is shown only once and the key cannot later be moved to a different role.
Choose an API zone
Use an Exoscale zone name such as
ch-gva-2for the API endpoint. You may leave API zone empty to use this connector's default,ch-gva-2.Default API zonech-gva-2Enter the Exoscale credentials
Paste the values into API key, API secret and, if set, API zone. Do not combine the key and secret into one value.
Troubleshooting
The key or signature is rejected
Check that API Key and API Secret were pasted into separate fields and that the API zone is a valid Exoscale zone name.
DNS requests return 403
The key's role is immutable. Create a new key attached to a role with the required DNS read policy or DNS service allow policy.
A write starts but apply fails while waiting
Add an allow rule for operation == 'get-operation' under the compute service class; DNS writes are asynchronous.
No DNS domains are available
Confirm that the organization has an active DNS zone-bundle subscription and that the role allows list-dns-domains.
Official documentation
Guide checked against the official documentation on .
Credential fields
| Field | Requirement | Where to find it |
|---|---|---|
| API keyapiKey | Required | The identifier labeled API Key when the key is created; it starts with EXO. |
| API secretapiSecret | Required | The API Secret displayed only once beside the new key. |
| API zonezone | Optional | Optional Exoscale API zone name, for example ch-gva-2; blank uses ch-gva-2. |
Capabilities
- Create zones
- Yes
- List zones
- Yes
- DNSSEC
- Not available through this connection
- Minimum TTL
- 60 seconds
- Apex CNAME
- No
- Read only
- No
Record types
- A
- AAAA
- CNAME
- MX
- TXT
- NS
- SRV
- CAA
- ALIAS
- SSHFP
- NAPTR
- SPF
Caveats
- Exoscale DNS needs an active DNS subscription on the organization before zones can be created.
- PTR and TLSA records aren't supported, and SRV records can't have an empty target.
- Apex NS records are fixed by Exoscale and can't be changed.
Troubleshooting
- The key or signature is rejected
- Check that API Key and API Secret were pasted into separate fields and that the API zone is a valid Exoscale zone name.
- DNS requests return 403
- The key's role is immutable. Create a new key attached to a role with the required DNS read policy or DNS service allow policy.
- A write starts but apply fails while waiting
- Add an allow rule for operation == 'get-operation' under the compute service class; DNS writes are asynchronous.
- No DNS domains are available
- Confirm that the organization has an active DNS zone-bundle subscription and that the role allows list-dns-domains.