This topic covers details for writing policies to control access to the DNS service.
Aggregate Resource-Type
dns
Individual Resource-Types 🔗
dns-zones
dns-records
dns-steering-policies
dns-steering-policy-attachments
dns-tsig-keys
dns-views
dns-resolvers
Comments
A policy that uses <verb> dns is equivalent to writing one with a separate <verb> <individual resource-type> statement for each of the individual resource-types.
The dns-zones resource type can use the following variables:
Variable
Variable Type
Comments
target.dns-zone.id
Entity (OCID)
Use this variable to control access to specific DNS zones by OCID.
target.dns-zone.name
String
Use this variable to control access to specific DNS zones by name.
target.dns-zone.apex-label
String
The most significant DNS label for the target zone. Example: If the target zone's name is "service.example.com", the value of this variable would be "service."
target.dns-zone.parent-domain
String
The domain name of the target zone's parent zone.
target.dns.scope
String
Valid values are "public" and "private".
The dns-records resource type can use the following variables:
Variable
Variable Type
Comments
target.dns-zone.id
Entity (OCID)
Use this variable to control access to specific DNS zones by OCID.
target.dns-zone.name
String
Use this variable to control access to specific DNS zones by name.
target.dns-record.type
List (String)
Use this variable to control access to specific DNS records by type. Valid values in the list can be any supported DNS resource type. For example, "A", "AAAA", "TXT", and so on. See Supported Resource Records.
target.dns-domain.name
List (String)
Use this variable to control access to specific domain names. Applicable to the following API operations:
GetDomainRecords
PatchDomainRecords
UpdateDomainRecords
DeleteRRSet
GetRRSet
PatchRRSet
UpdateRRSet
target.dns-zone.source-compartment.id
Entity (OCID)
Use this variable to control access to the current compartment of the DNS zone by OCID.
target.dns-zone.destination-compartment.id
Entity (OCID)
Use this variable to control access to the destination compartment of the DNS zone by OCID.
Note
Use the target.dns-record.type and target.dns-domain.name variables in your authorization policy to restrict users when modifying records of a specific type in a specific subdomain. A policy like this would allow a specific group of users to modify "A" records in the "example.com" domain:
Allow group <GroupName> to use dns in compartment <CompartmentName> where all {target.dns-record.type='A', target.dns-domain.name = 'example.com'}
Users will only be authorized to use RRSet API operations with this type of authorization policy.
The dns-steering-policies resource type can use the following variables:
Variable
Variable Type
Comments
target.dns-steering-policy.id
Entity (OCID)
Use this variable to control access to specific steering policies by OCID.
target.dns-steering-policy.display-name
String
Use this variable to control access to specific steering policies by name.
target.dns-steering-policy.source-compartment.id
Entity (OCID)
Use this variable to control access to the current compartment of the steering policy by OCID.
Use this variable to control access to the destination compartment of the steering policy by OCID.
The dns-tsig-keys resource type can use the following variables:
Variable
Variable Type
Comments
target.dns-tsig-key.id
Entity (OCID)
Use this variable to control access to specific TSIG keys by OCID.
target.dns-tsig-key.name
String
Use this variable to control access to specific TSIG keys by name.
target.dns-tsig-key.source-compartment.id
Entity (OCID)
Use this variable to control access to the current compartment of a specific TSIG key by OCID.
target.dns-tsig-key.destination-compartment.id
Entity (OCID)
Use this variable to control access to the destination compartment of the specific TSIG key by OCID.
The dns-view resource type can use the following variables:
Variable
Variable Type
Comments
target.dns-view.id
Entity (OCID)
Use this variable to control access to specific view by OCID.
target.dns-view.display-name
String
Use this variable to control access to specific view by name.
target.dns-view.source-compartment.id
Entity (OCID)
Use this variable to control access to the current compartment of a
specific view by OCID.
target.dns-view.destination-compartment.id
Entity (OCID)
Use this variable to control access to the destination compartment of
the specific view by OCID.
The dns-resolver resource type can use the following variables:
Variable
Variable Type
Comments
target.dns-resolver.id
Entity (OCID)
Use this variable to control access to specific resolver by
OCID.
target.dns-resolver.display-name
String
Use this variable to control access to specific resolver by
name.
target.dns-resolver.source-compartment.id
Entity (OCID)
Use this variable to control access to the current compartment of a
specific resolver by OCID.
target.dns-resolver.destination-compartment.id
Entity (OCID)
Use this variable to control access to the destination compartment of
the specific resolver by OCID.
The dns-resolver-endpoint resource type can use the following
variables:
Variable
Variable Type
Comments
target.dns-resolver-endpoint.name
String
Use this variable to control access to specific resolver endpoints by
name.
Details for Verb + Resource-Type Combinations 🔗
The following tables show the permissions and API operations covered by each verb. The level of access is cumulative as you go from inspect > read > use > manage. For example, a group that can use a resource can also inspect and read that resource. A plus sign (+) in a table cell indicates incremental access compared to the cell directly above it, whereas "no extra" indicates no incremental access.
For example, the manage verb for the dns-records resource-type covers no extra permissions or API operations compared to the use verb.