1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00
Files
stackexchange-dnscontrol/documentation/provider/azure_private_dns.md

75 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

## Configuration
This provider is for the [Azure Private DNS Service](https://learn.microsoft.com/en-us/azure/dns/private-dns-overview). This provider can only manage Azure Private DNS zones and will not manage public Azure DNS zones. To use this provider, add an entry to `creds.json` with `TYPE` set to `AZURE_PRIVATE_DNS`
along with the API credentials.
Example:
{% code title="creds.json" %}
```json
{
"azure_private_dns_main": {
"TYPE": "AZURE_PRIVATE_DNS",
"SubscriptionID": "AZURE_PRIVATE_SUBSCRIPTION_ID",
"ResourceGroup": "AZURE_PRIVATE_RESOURCE_GROUP",
"TenantID": "AZURE_PRIVATE_TENANT_ID",
"ClientID": "AZURE_PRIVATE_CLIENT_ID",
"ClientSecret": "AZURE_PRIVATE_CLIENT_SECRET"
}
}
```
{% endcode %}
You can also use environment variables:
```shell
export AZURE_SUBSCRIPTION_ID=XXXXXXXXX
export AZURE_RESOURCE_GROUP=YYYYYYYYY
export AZURE_TENANT_ID=ZZZZZZZZ
export AZURE_CLIENT_ID=AAAAAAAAA
export AZURE_CLIENT_SECRET=BBBBBBBBB
```
{% code title="creds.json" %}
```json
{
"azure_private_dns_main": {
"TYPE": "AZURE_PRIVATE_DNS",
"SubscriptionID": "$AZURE_PRIVATE_SUBSCRIPTION_ID",
"ResourceGroup": "$AZURE_PRIVATE_RESOURCE_GROUP",
"ClientID": "$AZURE_PRIVATE_CLIENT_ID",
"TenantID": "$AZURE_PRIVATE_TENANT_ID",
"ClientSecret": "$AZURE_PRIVATE_CLIENT_SECRET"
}
}
```
{% endcode %}
## Metadata
This provider does not recognize any special metadata fields unique to Azure Private DNS.
## Usage
An example configuration:
{% code title="dnsconfig.js" %}
```javascript
var REG_NONE = NewRegistrar("none");
var DSP_AZURE_PRIVATE_MAIN = NewDnsProvider("azure_private_dns_main");
D("example.com", REG_NONE, DnsProvider(DSP_AZURE_PRIVATE_MAIN),
A("test", "1.2.3.4")
);
```
{% endcode %}
## Activation
DNSControl depends on a standard [Client credentials Authentication](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest) with permission to list, create and update private zones.
## New domains
If a domain does not exist in your Azure account, DNSControl will *not* automatically add it with the `push` command. You can do that manually via the control panel.
## Caveats
The ResourceGroup is case sensitive.