policy.yaml¶
Use the policy.yaml
file to define additional access controls that apply to
the DNS service:
#
#"admin": "role:admin or is_admin:True"
#
#"primary_zone": "target.zone_type:SECONDARY"
#
#"owner": "tenant:%(tenant_id)s"
#
#"admin_or_owner": "rule:admin or rule:owner"
#
#"default": "rule:admin_or_owner"
#
#"target": "tenant:%(target_tenant_id)s"
#
#"owner_or_target": "rule:target or rule:owner"
#
#"admin_or_owner_or_target": "rule:owner_or_target or rule:admin"
#
#"admin_or_target": "rule:admin or rule:target"
#
#"zone_primary_or_admin": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
# Create blacklist.
# POST /v2/blacklists
#"create_blacklist": "rule:admin"
# Find blacklist.
# GET /v2/blacklists
#"find_blacklist": "rule:admin"
# Find blacklists.
# GET /v2/blacklists
#"find_blacklists": "rule:admin"
# Get blacklist.
# GET /v2/blacklists/{blacklist_id}
#"get_blacklist": "rule:admin"
# Update blacklist.
# PATCH /v2/blacklists/{blacklist_id}
#"update_blacklist": "rule:admin"
# Delete blacklist.
# DELETE /v2/blacklists/{blacklist_id}
#"delete_blacklist": "rule:admin"
# Allowed bypass the blacklist.
# POST /v2/zones
#"use_blacklisted_zone": "rule:admin"
# Action on all tenants.
#"all_tenants": "rule:admin"
# Edit managed records.
#"edit_managed_records": "rule:admin"
# Use low TTL.
#"use_low_ttl": "rule:admin"
# Accept sudo from user to tenant.
#"use_sudo": "rule:admin"
# Diagnose ping.
#"diagnostics_ping": "rule:admin"
# Diagnose sync zones.
#"diagnostics_sync_zones": "rule:admin"
# Diagnose sync zone.
#"diagnostics_sync_zone": "rule:admin"
# Diagnose sync record.
#"diagnostics_sync_record": "rule:admin"
# Create pool.
#"create_pool": "rule:admin"
# Find pool.
# GET /v2/pools
#"find_pools": "rule:admin"
# Find pools.
# GET /v2/pools
#"find_pool": "rule:admin"
# Get pool.
# GET /v2/pools/{pool_id}
#"get_pool": "rule:admin"
# Update pool.
#"update_pool": "rule:admin"
# Delete pool.
#"delete_pool": "rule:admin"
# load and set the pool to the one provided in the Zone attributes.
# POST /v2/zones
#"zone_create_forced_pool": "rule:admin"
# View Current Project's Quotas.
# GET /v2/quotas
#"get_quotas": "rule:admin_or_owner"
#
#"get_quota": "rule:admin_or_owner"
# Set Quotas.
# PATCH /v2/quotas/{project_id}
#"set_quota": "rule:admin"
# Reset Quotas.
# DELETE /v2/quotas/{project_id}
#"reset_quotas": "rule:admin"
# Find records.
# GET /v2/reverse/floatingips/{region}:{floatingip_id}
# GET /v2/reverse/floatingips
#"find_records": "rule:admin_or_owner"
#
#"count_records": "rule:admin_or_owner"
# Create Recordset
# POST /v2/zones/{zone_id}/recordsets
# PATCH /v2/reverse/floatingips/{region}:{floatingip_id}
#"create_recordset": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
#
#"get_recordsets": "rule:admin_or_owner"
# Get recordset
# GET /v2/zones/{zone_id}/recordsets/{recordset_id}
# DELETE /v2/zones/{zone_id}/recordsets/{recordset_id}
# PUT /v2/zones/{zone_id}/recordsets/{recordset_id}
#"get_recordset": "rule:admin_or_owner"
# Update recordset
# PUT /v2/zones/{zone_id}/recordsets/{recordset_id}
# PATCH /v2/reverse/floatingips/{region}:{floatingip_id}
#"update_recordset": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
# Delete RecordSet
# DELETE /v2/zones/{zone_id}/recordsets/{recordset_id}
#"delete_recordset": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
# Count recordsets
#"count_recordset": "rule:admin_or_owner"
# Find a single Service Status
# GET /v2/service_status/{service_id}
#"find_service_status": "rule:admin"
# List service statuses.
# GET /v2/service_status
#"find_service_statuses": "rule:admin"
#
#"update_service_status": "rule:admin"
# Find all Tenants.
#"find_tenants": "rule:admin"
# Get all Tenants.
#"get_tenant": "rule:admin"
# Count tenants
#"count_tenants": "rule:admin"
# Create Tld
# POST /v2/tlds
#"create_tld": "rule:admin"
# List Tlds
# GET /v2/tlds
#"find_tlds": "rule:admin"
# Show Tld
# GET /v2/tlds/{tld_id}
#"get_tld": "rule:admin"
# Update Tld
# PATCH /v2/tlds/{tld_id}
#"update_tld": "rule:admin"
# Delete Tld
# DELETE /v2/tlds/{tld_id}
#"delete_tld": "rule:admin"
# Create Tsigkey
# POST /v2/tsigkeys
#"create_tsigkey": "rule:admin"
# List Tsigkeys
# GET /v2/tsigkeys
#"find_tsigkeys": "rule:admin"
# Show a Tsigkey
# PATCH /v2/tsigkeys/{tsigkey_id}
# GET /v2/tsigkeys/{tsigkey_id}
#"get_tsigkey": "rule:admin"
# Update Tsigkey
# PATCH /v2/tsigkeys/{tsigkey_id}
#"update_tsigkey": "rule:admin"
# Delete a Tsigkey
# DELETE /v2/tsigkeys/{tsigkey_id}
#"delete_tsigkey": "rule:admin"
# Create Zone
# POST /v2/zones
#"create_zone": "rule:admin_or_owner"
#
#"get_zones": "rule:admin_or_owner"
# Get Zone
# GET /v2/zones/{zone_id}
# PATCH /v2/zones/{zone_id}
# PUT /v2/zones/{zone_id}/recordsets/{recordset_id}
#"get_zone": "rule:admin_or_owner"
#
#"get_zone_servers": "rule:admin_or_owner"
# List existing zones
# GET /v2/zones
#"find_zones": "rule:admin_or_owner"
# Update Zone
# PATCH /v2/zones/{zone_id}
#"update_zone": "rule:admin_or_owner"
# Delete Zone
# DELETE /v2/zones/{zone_id}
#"delete_zone": "rule:admin_or_owner"
# Manually Trigger an Update of a Secondary Zone
# POST /v2/zones/{zone_id}/tasks/xfr
#"xfr_zone": "rule:admin_or_owner"
# Abandon Zone
# POST /v2/zones/{zone_id}/tasks/abandon
#"abandon_zone": "rule:admin"
#
#"count_zones": "rule:admin_or_owner"
#
#"count_zones_pending_notify": "rule:admin_or_owner"
#
#"purge_zones": "rule:admin"
#
#"touch_zone": "rule:admin_or_owner"
# Retrive a Zone Export from the Designate Datastore
# GET /v2/zones/tasks/exports/{zone_export_id}/export
#"zone_export": "rule:admin_or_owner"
# Create Zone Export
# POST /v2/zones/{zone_id}/tasks/export
#"create_zone_export": "rule:admin_or_owner"
# List Zone Exports
# GET /v2/zones/tasks/exports
#"find_zone_exports": "rule:admin_or_owner"
# Get Zone Exports
# GET /v2/zones/tasks/exports/{zone_export_id}
# GET /v2/zones/tasks/exports/{zone_export_id}/export
#"get_zone_export": "rule:admin_or_owner"
# Update Zone Exports
# POST /v2/zones/{zone_id}/tasks/export
#"update_zone_export": "rule:admin_or_owner"
# Create Zone Import
# POST /v2/zones/tasks/imports
#"create_zone_import": "rule:admin_or_owner"
# List all Zone Imports
# GET /v2/zones/tasks/imports
#"find_zone_imports": "rule:admin_or_owner"
# Get Zone Imports
# GET /v2/zones/tasks/imports/{zone_import_id}
#"get_zone_import": "rule:admin_or_owner"
# Update Zone Imports
# POST /v2/zones/tasks/imports
#"update_zone_import": "rule:admin_or_owner"
# Delete a Zone Import
# GET /v2/zones/tasks/imports/{zone_import_id}
#"delete_zone_import": "rule:admin_or_owner"
# Create Zone Transfer Accept
# POST /v2/zones/tasks/transfer_accepts
#"create_zone_transfer_accept": "rule:admin_or_owner OR tenant:%(target_tenant_id)s OR None:%(target_tenant_id)s"
# Get Zone Transfer Accept
# GET /v2/zones/tasks/transfer_requests/{zone_transfer_accept_id}
#"get_zone_transfer_accept": "rule:admin_or_owner"
# List Zone Transfer Accepts
# GET /v2/zones/tasks/transfer_accepts
#"find_zone_transfer_accepts": "rule:admin"
#
#"find_zone_transfer_accept": "rule:admin"
# Update a Zone Transfer Accept
# POST /v2/zones/tasks/transfer_accepts
#"update_zone_transfer_accept": "rule:admin"
#
#"delete_zone_transfer_accept": "rule:admin"
# Create Zone Transfer Accept
# POST /v2/zones/{zone_id}/tasks/transfer_requests
#"create_zone_transfer_request": "rule:admin_or_owner"
# Show a Zone Transfer Request
# GET /v2/zones/tasks/transfer_requests/{zone_transfer_request_id}
# PATCH /v2/zones/tasks/transfer_requests/{zone_transfer_request_id}
#"get_zone_transfer_request": "rule:admin_or_owner OR tenant:%(target_tenant_id)s OR None:%(target_tenant_id)s"
#
#"get_zone_transfer_request_detailed": "rule:admin_or_owner"
# List Zone Transfer Requests
# GET /v2/zones/tasks/transfer_requests
#"find_zone_transfer_requests": "@"
#
#"find_zone_transfer_request": "@"
# Update a Zone Transfer Request
# PATCH /v2/zones/tasks/transfer_requests/{zone_transfer_request_id}
#"update_zone_transfer_request": "rule:admin_or_owner"
# Delete a Zone Transfer Request
# DELETE /v2/zones/tasks/transfer_requests/{zone_transfer_request_id}
#"delete_zone_transfer_request": "rule:admin_or_owner"