Add pillars with default policy configuration for OS services
PROD-34318
Change-Id: I46dee301c78450b2aa7a6430de1f3432756688d8
diff --git a/defaults/openstack/policy/all.yml b/defaults/openstack/policy/all.yml
new file mode 100644
index 0000000..39d7c40
--- /dev/null
+++ b/defaults/openstack/policy/all.yml
@@ -0,0 +1,1367 @@
+parameters:
+ _param:
+ barbican_default_policy_ocata: {}
+ barbican_default_policy_pike:
+ "admin": "role:admin"
+ "admin_or_creator": "rule:admin or rule:creator"
+ "admin_or_user": "rule:admin or project_id:%(project_id)s"
+ "admin_or_user_does_not_work": "project_id:%(project_id)s"
+ "all_but_audit": "rule:admin or rule:observer or rule:creator"
+ "all_users": "rule:admin or rule:observer or rule:creator or rule:audit or rule:service_admin"
+ "audit": "role:audit"
+ "certificate_authorities:get_all": "rule:admin"
+ "certificate_authorities:get_global_preferred_ca": "rule:service_admin"
+ "certificate_authorities:get_limited": "rule:all_users"
+ "certificate_authorities:get_preferred_ca": "rule:all_users"
+ "certificate_authorities:post": "rule:admin"
+ "certificate_authorities:unset_global_preferred": "rule:service_admin"
+ "certificate_authority:add_to_project": "rule:admin"
+ "certificate_authority:delete": "rule:admin"
+ "certificate_authority:get": "rule:all_users"
+ "certificate_authority:get_ca_cert_chain": "rule:all_users"
+ "certificate_authority:get_cacert": "rule:all_users"
+ "certificate_authority:get_projects": "rule:service_admin"
+ "certificate_authority:remove_from_project": "rule:admin"
+ "certificate_authority:set_global_preferred": "rule:service_admin"
+ "certificate_authority:set_preferred": "rule:admin"
+ "consumer:get": "rule:admin or rule:observer or rule:creator or rule:audit or rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read"
+ "consumers:delete": "rule:admin or rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read"
+ "consumers:get": "rule:admin or rule:observer or rule:creator or rule:audit or rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read"
+ "consumers:post": "rule:admin or rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read"
+ "container:delete": "rule:container_project_admin or rule:container_project_creator"
+ "container:get": "rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read"
+ "container_acl_read": "'read':%(target.container.read)s"
+ "container_acls:delete": "rule:container_project_admin or rule:container_project_creator"
+ "container_acls:get": "rule:all_but_audit and rule:container_project_match"
+ "container_acls:put_patch": "rule:container_project_admin or rule:container_project_creator"
+ "container_creator_user": "user:%(target.container.creator_id)s"
+ "container_non_private_read": "rule:all_users and rule:container_project_match and not rule:container_private_read"
+ "container_private_read": "'False':%(target.container.read_project_access)s"
+ "container_project_admin": "rule:admin and rule:container_project_match"
+ "container_project_creator": "rule:creator and rule:container_project_match and rule:container_creator_user"
+ "container_project_match": "project:%(target.container.project_id)s"
+ "container_secret:delete": "rule:admin"
+ "container_secret:post": "rule:admin"
+ "containers:get": "rule:all_but_audit"
+ "containers:post": "rule:admin_or_creator"
+ "creator": "role:creator"
+ "observer": "role:observer"
+ "order:delete": "rule:admin"
+ "order:get": "rule:all_users"
+ "order:put": "rule:admin_or_creator"
+ "orders:get": "rule:all_but_audit"
+ "orders:post": "rule:admin_or_creator"
+ "project_quotas:delete": "rule:service_admin"
+ "project_quotas:get": "rule:service_admin"
+ "project_quotas:put": "rule:service_admin"
+ "quotas:get": "rule:all_users"
+ "secret:decrypt": "rule:secret_decrypt_non_private_read or rule:secret_project_creator or rule:secret_project_admin or rule:secret_acl_read"
+ "secret:delete": "rule:secret_project_admin or rule:secret_project_creator"
+ "secret:get": "rule:secret_non_private_read or rule:secret_project_creator or rule:secret_project_admin or rule:secret_acl_read"
+ "secret:put": "rule:admin_or_creator and rule:secret_project_match"
+ "secret_acl_read": "'read':%(target.secret.read)s"
+ "secret_acls:delete": "rule:secret_project_admin or rule:secret_project_creator"
+ "secret_acls:get": "rule:all_but_audit and rule:secret_project_match"
+ "secret_acls:put_patch": "rule:secret_project_admin or rule:secret_project_creator"
+ "secret_creator_user": "user:%(target.secret.creator_id)s"
+ "secret_decrypt_non_private_read": "rule:all_but_audit and rule:secret_project_match and not rule:secret_private_read"
+ "secret_meta:delete": "rule:admin_or_creator"
+ "secret_meta:get": "rule:all_but_audit"
+ "secret_meta:post": "rule:admin_or_creator"
+ "secret_meta:put": "rule:admin_or_creator"
+ "secret_non_private_read": "rule:all_users and rule:secret_project_match and not rule:secret_private_read"
+ "secret_private_read": "'False':%(target.secret.read_project_access)s"
+ "secret_project_admin": "rule:admin and rule:secret_project_match"
+ "secret_project_creator": "rule:creator and rule:secret_project_match and rule:secret_creator_user"
+ "secret_project_match": "project:%(target.secret.project_id)s"
+ "secrets:get": "rule:all_but_audit"
+ "secrets:post": "rule:admin_or_creator"
+ "secretstore:get": "rule:admin"
+ "secretstore_preferred:delete": "rule:admin"
+ "secretstore_preferred:post": "rule:admin"
+ "secretstores:get": "rule:admin"
+ "secretstores:get_global_default": "rule:admin"
+ "secretstores:get_preferred": "rule:admin"
+ "service_admin": "role:key-manager:service-admin"
+ "transport_key:delete": "rule:admin"
+ "transport_key:get": "rule:all_users"
+ "transport_keys:get": "rule:all_users"
+ "transport_keys:post": "rule:admin"
+ "version:get": "@"
+ barbican_default_policy_queens: ${_param:barbican_default_policy_pike}
+ bgppvn_default_policy_ocata: {}
+ bgppvn_default_policy_pike:
+ "create_bgpvpn": "rule:admin_only"
+ "create_bgpvpn_network_association": "rule:admin_or_owner"
+ "create_bgpvpn_port_association": "rule:admin_or_owner"
+ "create_bgpvpn_router_association": "rule:admin_or_owner"
+ "delete_bgpvpn": "rule:admin_only"
+ "delete_bgpvpn_network_association": "rule:admin_or_owner"
+ "delete_bgpvpn_port_association": "rule:admin_or_owner"
+ "delete_bgpvpn_router_association": "rule:admin_or_owner"
+ "get_bgpvpn": "rule:admin_or_owner"
+ "get_bgpvpn:export_targets": "rule:admin_only"
+ "get_bgpvpn:import_targets": "rule:admin_only"
+ "get_bgpvpn:route_distinguishers": "rule:admin_only"
+ "get_bgpvpn:route_targets": "rule:admin_only"
+ "get_bgpvpn:tenant_id": "rule:admin_only"
+ "get_bgpvpn_network_association": "rule:admin_or_owner"
+ "get_bgpvpn_network_association:tenant_id": "rule:admin_only"
+ "get_bgpvpn_network_associations": "rule:admin_or_owner"
+ "get_bgpvpn_port_association": "rule:admin_or_owner"
+ "get_bgpvpn_port_association:tenant_id": "rule:admin_only"
+ "get_bgpvpn_port_associations": "rule:admin_or_owner"
+ "get_bgpvpn_router_association": "rule:admin_or_owner"
+ "get_bgpvpn_router_association:tenant_id": "rule:admin_only"
+ "get_bgpvpn_router_associations": "rule:admin_or_owner"
+ "update_bgpvpn": "rule:admin_or_owner"
+ "update_bgpvpn:export_targets": "rule:admin_only"
+ "update_bgpvpn:import_targets": "rule:admin_only"
+ "update_bgpvpn:route_distinguishers": "rule:admin_only"
+ "update_bgpvpn:route_targets": "rule:admin_only"
+ "update_bgpvpn:tenant_id": "rule:admin_only"
+ "update_bgpvpn_network_association": "rule:admin_or_owner"
+ "update_bgpvpn_port_association": "rule:admin_or_owner"
+ "update_bgpvpn_router_association": "rule:admin_or_owner"
+ bgpvpn_default_policy_queens: ${_param:bgppvn_default_policy_pike}
+ cinder_default_policy_ocata: {}
+ cinder_default_policy_pike:
+ "admin_api": "is_admin:True or (role:admin and is_admin_project:True)"
+ "admin_or_owner": "is_admin:True or (role:admin and is_admin_project:True) or project_id:%(project_id)s"
+ "backup:backup-export": "rule:admin_api"
+ "backup:backup-import": "rule:admin_api"
+ "backup:backup_project_attribute": "rule:admin_api"
+ "backup:create": ""
+ "backup:delete": "rule:admin_or_owner"
+ "backup:get_all": "rule:admin_or_owner"
+ "backup:get": "rule:admin_or_owner"
+ "backup:restore": "rule:admin_or_owner"
+ "backup:update": "rule:admin_or_owner"
+ "clusters:get_all": "rule:admin_api"
+ "clusters:get": "rule:admin_api"
+ "clusters:update": "rule:admin_api"
+ "consistencygroup:create_cgsnapshot": "group:nobody"
+ "consistencygroup:create": "group:nobody"
+ "consistencygroup:delete_cgsnapshot": "group:nobody"
+ "consistencygroup:delete": "group:nobody"
+ "consistencygroup:get_all_cgsnapshots": "group:nobody"
+ "consistencygroup:get_all": "group:nobody"
+ "consistencygroup:get_cgsnapshot": "group:nobody"
+ "consistencygroup:get": "group:nobody"
+ "consistencygroup:update": "group:nobody"
+ "default": "rule:admin_or_owner"
+ "group:access_group_types_specs": "rule:admin_api"
+ "group:create": ""
+ "group:create_group_snapshot": ""
+ "group:delete_group_snapshot": "rule:admin_or_owner"
+ "group:delete": "rule:admin_or_owner"
+ "group:disable_replication": "rule:admin_or_owner"
+ "group:enable_replication": "rule:admin_or_owner"
+ "group:failover_replication": "rule:admin_or_owner"
+ "group:get_all_group_snapshots": "rule:admin_or_owner"
+ "group:get_all": "rule:admin_or_owner"
+ "group:get_group_snapshot": "rule:admin_or_owner"
+ "group:get": "rule:admin_or_owner"
+ "group:group_type_access": "rule:admin_or_owner"
+ "group:group_types_manage": "rule:admin_api"
+ "group:group_types_specs": "rule:admin_api"
+ "group:list_replication_targets": "rule:admin_or_owner"
+ "group:reset_group_snapshot_status": "rule:admin_api"
+ "group:reset_status": "rule:admin_api"
+ "group:update_group_snapshot": "rule:admin_or_owner"
+ "group:update": "rule:admin_or_owner"
+ "message:delete": "rule:admin_or_owner"
+ "message:get_all": "rule:admin_or_owner"
+ "message:get": "rule:admin_or_owner"
+ "scheduler_extension:scheduler_stats:get_pools": "rule:admin_api"
+ "snapshot_extension:list_manageable": "rule:admin_api"
+ "snapshot_extension:snapshot_actions:update_snapshot_status": ""
+ "snapshot_extension:snapshot_manage": "rule:admin_api"
+ "snapshot_extension:snapshot_unmanage": "rule:admin_api"
+ "volume:accept_transfer": ""
+ "volume:attachment_create": ""
+ "volume:attachment_delete": "rule:admin_or_owner"
+ "volume:attachment_update": "rule:admin_or_owner"
+ "volume:create": ""
+ "volume:create_from_image": ""
+ "volume:create_snapshot": "rule:admin_or_owner"
+ "volume:create_transfer": "rule:admin_or_owner"
+ "volume:create_volume_metadata": "rule:admin_or_owner"
+ "volume:delete": "rule:admin_or_owner"
+ "volume:delete_snapshot_metadata": "rule:admin_or_owner"
+ "volume:delete_snapshot": "rule:admin_or_owner"
+ "volume:delete_transfer": "rule:admin_or_owner"
+ "volume:delete_volume_metadata": "rule:admin_or_owner"
+ "volume:extend_attached_volume": "rule:admin_or_owner"
+ "volume:extend": "rule:admin_or_owner"
+ "volume_extension:access_types_extra_specs": "rule:admin_api"
+ "volume_extension:access_types_qos_specs_id": "rule:admin_api"
+ "volume_extension:backup_admin_actions:force_delete": "rule:admin_api"
+ "volume_extension:backup_admin_actions:reset_status": "rule:admin_api"
+ "volume_extension:capabilities": "rule:admin_api"
+ "volume_extension:extended_snapshot_attributes": "rule:admin_or_owner"
+ "volume_extension:hosts": "rule:admin_api"
+ "volume_extension:list_manageable": "rule:admin_api"
+ "volume_extension:qos_specs_manage:create": "rule:admin_api"
+ "volume_extension:qos_specs_manage:delete": "rule:admin_api"
+ "volume_extension:qos_specs_manage:get_all": "rule:admin_api"
+ "volume_extension:qos_specs_manage:get": "rule:admin_api"
+ "volume_extension:qos_specs_manage:update": "rule:admin_api"
+ "volume_extension:quota_classes": "rule:admin_api"
+ "volume_extension:quota_classes:validate_setup_for_nested_quota_use": "rule:admin_api"
+ "volume_extension:quotas:delete": "rule:admin_api"
+ "volume_extension:quotas:show": ""
+ "volume_extension:quotas:update": "rule:admin_api"
+ "volume_extension:services:index": "rule:admin_api"
+ "volume_extension:services:update": "rule:admin_api"
+ "volume_extension:snapshot_admin_actions:force_delete": "rule:admin_api"
+ "volume_extension:snapshot_admin_actions:reset_status": "rule:admin_api"
+ "volume_extension:types_extra_specs:create": "rule:admin_api"
+ "volume_extension:types_extra_specs:delete": "rule:admin_api"
+ "volume_extension:types_extra_specs:index": "rule:admin_api"
+ "volume_extension:types_extra_specs:show": "rule:admin_api"
+ "volume_extension:types_extra_specs:update": "rule:admin_api"
+ "volume_extension:types_manage": "rule:admin_api"
+ "volume_extension:volume_actions:upload_image": "rule:admin_or_owner"
+ "volume_extension:volume_actions:upload_public": "rule:admin_api"
+ "volume_extension:volume_admin_actions:force_delete": "rule:admin_api"
+ "volume_extension:volume_admin_actions:force_detach": "rule:admin_api"
+ "volume_extension:volume_admin_actions:migrate_volume_completion": "rule:admin_api"
+ "volume_extension:volume_admin_actions:migrate_volume": "rule:admin_api"
+ "volume_extension:volume_admin_actions:reset_status": "rule:admin_api"
+ "volume_extension:volume_encryption_metadata": "rule:admin_or_owner"
+ "volume_extension:volume_host_attribute": "rule:admin_api"
+ "volume_extension:volume_image_metadata": "rule:admin_or_owner"
+ "volume_extension:volume_manage": "rule:admin_api"
+ "volume_extension:volume_mig_status_attribute": "rule:admin_api"
+ "volume_extension:volume_tenant_attribute": "rule:admin_or_owner"
+ "volume_extension:volume_type_access:addProjectAccess": "rule:admin_api"
+ "volume_extension:volume_type_access:removeProjectAccess": "rule:admin_api"
+ "volume_extension:volume_type_access": "rule:admin_or_owner"
+ "volume_extension:volume_type_encryption": "rule:admin_api"
+ "volume_extension:volume_unmanage": "rule:admin_api"
+ "volume:failover_host": "rule:admin_api"
+ "volume:force_delete": "rule:admin_api"
+ "volume:freeze_host": "rule:admin_api"
+ "volume:get_all": "rule:admin_or_owner"
+ "volume:get_all_snapshots": "rule:admin_or_owner"
+ "volume:get_all_transfers": "rule:admin_or_owner"
+ "volume:get": "rule:admin_or_owner"
+ "volume:get_snapshot_metadata": "rule:admin_or_owner"
+ "volume:get_snapshot": "rule:admin_or_owner"
+ "volume:get_transfer": "rule:admin_or_owner"
+ "volume:get_volume_admin_metadata": "rule:admin_api"
+ "volume:get_volume_metadata": "rule:admin_or_owner"
+ "volume:retype": "rule:admin_or_owner"
+ "volume:revert_to_snapshot": "rule:admin_or_owner"
+ "volume:thaw_host": "rule:admin_api"
+ "volume:update_readonly_flag": "rule:admin_or_owner"
+ "volume:update": "rule:admin_or_owner"
+ "volume:update_snapshot_metadata": "rule:admin_or_owner"
+ "volume:update_snapshot": "rule:admin_or_owner"
+ "volume:update_volume_admin_metadata": "rule:admin_api"
+ "volume:update_volume_metadata": "rule:admin_or_owner"
+ "workers:cleanup": "rule:admin_api"
+ cinder_default_policy_queens: ${_param:cinder_default_policy_pike}
+ designate_default_policy_ocata: {}
+ designate_default_policy_pike: &designate_default_policy_pike
+ "abandon_zone": "rule:admin"
+ "admin": "role:admin or is_admin:True"
+ "admin_or_owner": "rule:admin or rule:owner"
+ "admin_or_owner_or_target": "rule:owner_or_target or rule:admin"
+ "admin_or_target": "rule:admin or rule:target"
+ "all_tenants": "rule:admin"
+ "count_records": "rule:admin_or_owner"
+ "count_recordset": "rule:admin_or_owner"
+ "count_tenants": "rule:admin"
+ "count_zones": "rule:admin_or_owner"
+ "count_zones_pending_notify": "rule:admin_or_owner"
+ "create_blacklist": "rule:admin"
+ "create_pool": "rule:admin"
+ "create_record": "rule:admin_or_owner"
+ "create_recordset": "rule:zone_primary_or_admin"
+ "create_tld": "rule:admin"
+ "create_tsigkey": "rule:admin"
+ "create_zone": "rule:admin_or_owner"
+ "create_zone_export": "rule:admin_or_owner"
+ "create_zone_import": "rule:admin_or_owner"
+ "create_zone_transfer_accept": "rule:admin_or_owner or tenant:%(target_tenant_id)s or None:%(target_tenant_id)s"
+ "create_zone_transfer_request": "rule:admin_or_owner"
+ "default": "rule:admin_or_owner"
+ "delete_blacklist": "rule:admin"
+ "delete_pool": "rule:admin"
+ "delete_record": "rule:admin_or_owner"
+ "delete_recordset": "rule:zone_primary_or_admin"
+ "delete_tld": "rule:admin"
+ "delete_tsigkey": "rule:admin"
+ "delete_zone": "rule:admin_or_owner"
+ "delete_zone_import": "rule:admin_or_owner"
+ "delete_zone_transfer_accept": "rule:admin"
+ "delete_zone_transfer_request": "rule:admin_or_owner"
+ "diagnostics_ping": "rule:admin"
+ "diagnostics_sync_record": "rule:admin"
+ "diagnostics_sync_zone": "rule:admin"
+ "diagnostics_sync_zones": "rule:admin"
+ "edit_managed_records": "rule:admin"
+ "find_blacklist": "rule:admin"
+ "find_blacklists": "rule:admin"
+ "find_pool": "rule:admin"
+ "find_pools": "rule:admin"
+ "find_record": "rule:admin_or_owner"
+ "find_records": "rule:admin_or_owner"
+ "find_recordset": "rule:admin_or_owner"
+ "find_recordsets": "rule:admin_or_owner"
+ "find_service_status": "rule:admin"
+ "find_service_statuses": "rule:admin"
+ "find_tenants": "rule:admin"
+ "find_tlds": "rule:admin"
+ "find_tsigkeys": "rule:admin"
+ "find_zone": "rule:admin_or_owner"
+ "find_zone_exports": "rule:admin_or_owner"
+ "find_zone_imports": "rule:admin_or_owner"
+ "find_zone_transfer_accept": "rule:admin"
+ "find_zone_transfer_accepts": "rule:admin"
+ "find_zone_transfer_request": "@"
+ "find_zone_transfer_requests": "@"
+ "find_zones": "rule:admin_or_owner"
+ "get_blacklist": "rule:admin"
+ "get_pool": "rule:admin"
+ "get_quota": "rule:admin_or_owner"
+ "get_quotas": "rule:admin_or_owner"
+ "get_record": "rule:admin_or_owner"
+ "get_records": "rule:admin_or_owner"
+ "get_recordset": "rule:admin_or_owner"
+ "get_recordsets": "rule:admin_or_owner"
+ "get_tenant": "rule:admin"
+ "get_tld": "rule:admin"
+ "get_tsigkey": "rule:admin"
+ "get_zone": "rule:admin_or_owner"
+ "get_zone_export": "rule:admin_or_owner"
+ "get_zone_import": "rule:admin_or_owner"
+ "get_zone_servers": "rule:admin_or_owner"
+ "get_zone_transfer_accept": "rule:admin_or_owner"
+ "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"
+ "get_zones": "rule:admin_or_owner"
+ "owner": "tenant:%(tenant_id)s"
+ "owner_or_target": "rule:target or rule:owner"
+ "primary_zone": "target.zone_type:SECONDARY"
+ "purge_zones": "rule:admin"
+ "reset_quotas": "rule:admin"
+ "set_quota": "rule:admin"
+ "target": "tenant:%(target_tenant_id)s"
+ "touch_zone": "rule:admin_or_owner"
+ "update_blacklist": "rule:admin"
+ "update_pool": "rule:admin"
+ "update_record": "rule:admin_or_owner"
+ "update_recordset": "rule:zone_primary_or_admin"
+ "update_service_service_status": "rule:admin"
+ "update_tld": "rule:admin"
+ "update_tsigkey": "rule:admin"
+ "update_zone": "rule:admin_or_owner"
+ "update_zone_export": "rule:admin_or_owner"
+ "update_zone_import": "rule:admin_or_owner"
+ "update_zone_transfer_accept": "rule:admin"
+ "update_zone_transfer_request": "rule:admin_or_owner"
+ "use_blacklisted_zone": "rule:admin"
+ "use_low_ttl": "rule:admin"
+ "use_sudo": "rule:admin"
+ "xfr_zone": "rule:admin_or_owner"
+ "zone_create_forced_pool": "rule:admin"
+ "zone_export": "rule:admin_or_owner"
+ "zone_primary_or_admin": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
+ designate_default_policy_queens:
+ << : *designate_default_policy_pike
+ "create_record":
+ "create_recordset": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
+ "create_zone_transfer_accept": "rule:admin_or_owner OR tenant:%(target_tenant_id)s OR None:%(target_tenant_id)s"
+ "delete_record":
+ "delete_recordset": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
+ "find_record":
+ "find_records": "rule:admin_or_owner"
+ "find_recordset":
+ "find_recordsets":
+ "find_zone":
+ "get_record":
+ "get_records":
+ "get_zone_transfer_request": "rule:admin_or_owner OR tenant:%(target_tenant_id)s OR None:%(target_tenant_id)s"
+ "update_record":
+ "update_recordset": "('PRIMARY':%(zone_type)s and rule:admin_or_owner) OR ('SECONDARY':%(zone_type)s AND is_admin:True)"
+ "update_service_status": "rule:admin"
+ "update_service_service_status":
+ glance_default_policy_ocata: {}
+ glance_default_policy_pike:
+ "add_image": ""
+ "add_member": ""
+ "add_metadef_namespace": ""
+ "add_metadef_object": ""
+ "add_metadef_property": ""
+ "add_metadef_resource_type_association": ""
+ "add_metadef_tag": ""
+ "add_metadef_tags": ""
+ "add_task": ""
+ "communitize_image": ""
+ "context_is_admin": "role:admin"
+ "copy_from": ""
+ "deactivate": ""
+ "default": "role:admin"
+ "delete_image": ""
+ "delete_image_location": ""
+ "delete_member": ""
+ "download_image": ""
+ "get_image": ""
+ "get_image_location": ""
+ "get_images": ""
+ "get_member": ""
+ "get_members": ""
+ "get_metadef_namespace": ""
+ "get_metadef_namespaces": ""
+ "get_metadef_object": ""
+ "get_metadef_objects": ""
+ "get_metadef_properties": ""
+ "get_metadef_property": ""
+ "get_metadef_resource_type": ""
+ "get_metadef_tag": ""
+ "get_metadef_tags": ""
+ "get_task": ""
+ "get_tasks": ""
+ "list_metadef_resource_types": ""
+ "manage_image_cache": "role:admin"
+ "modify_image": ""
+ "modify_member": ""
+ "modify_metadef_namespace": ""
+ "modify_metadef_object": ""
+ "modify_metadef_property": ""
+ "modify_metadef_tag": ""
+ "modify_task": ""
+ "publicize_image": "role:admin"
+ "reactivate": ""
+ "set_image_location": ""
+ "tasks_api_access": "role:admin"
+ "upload_image": ""
+ glance_default_policy_queens: ${_param:glance_default_policy_pike}
+ heat_default_policy_ocata: {}
+ heat_default_policy_pike:
+ "actions:action": "rule:deny_stack_user"
+ "build_info:build_info": "rule:deny_stack_user"
+ "cloudformation:CancelUpdateStack": "rule:deny_stack_user"
+ "cloudformation:CreateStack": "rule:deny_stack_user"
+ "cloudformation:DeleteStack": "rule:deny_stack_user"
+ "cloudformation:DescribeStackEvents": "rule:deny_stack_user"
+ "cloudformation:DescribeStackResource": ""
+ "cloudformation:DescribeStackResources": "rule:deny_stack_user"
+ "cloudformation:DescribeStacks": "rule:deny_stack_user"
+ "cloudformation:EstimateTemplateCost": "rule:deny_stack_user"
+ "cloudformation:GetTemplate": "rule:deny_stack_user"
+ "cloudformation:ListStackResources": "rule:deny_stack_user"
+ "cloudformation:ListStacks": "rule:deny_stack_user"
+ "cloudformation:UpdateStack": "rule:deny_stack_user"
+ "cloudformation:ValidateTemplate": "rule:deny_stack_user"
+ "cloudwatch:DeleteAlarms": "rule:deny_stack_user"
+ "cloudwatch:DescribeAlarmHistory": "rule:deny_stack_user"
+ "cloudwatch:DescribeAlarms": "rule:deny_stack_user"
+ "cloudwatch:DescribeAlarmsForMetric": "rule:deny_stack_user"
+ "cloudwatch:DisableAlarmActions": "rule:deny_stack_user"
+ "cloudwatch:EnableAlarmActions": "rule:deny_stack_user"
+ "cloudwatch:GetMetricStatistics": "rule:deny_stack_user"
+ "cloudwatch:ListMetrics": "rule:deny_stack_user"
+ "cloudwatch:PutMetricAlarm": "rule:deny_stack_user"
+ "cloudwatch:PutMetricData": ""
+ "cloudwatch:SetAlarmState": "rule:deny_stack_user"
+ "context_is_admin": "role:admin and is_admin_project:True"
+ "deny_everybody": "!"
+ "deny_stack_user": "not role:heat_stack_user"
+ "events:index": "rule:deny_stack_user"
+ "events:show": "rule:deny_stack_user"
+ "project_admin": "role:admin"
+ "resource:index": "rule:deny_stack_user"
+ "resource:mark_unhealthy": "rule:deny_stack_user"
+ "resource:metadata": ""
+ "resource:show": "rule:deny_stack_user"
+ "resource:signal": ""
+ "resource_types:OS::Cinder::EncryptedVolumeType": "rule:project_admin"
+ "resource_types:OS::Cinder::QoSAssociation": "rule:project_admin"
+ "resource_types:OS::Cinder::QoSSpecs": "rule:project_admin"
+ "resource_types:OS::Cinder::Quota": "rule:project_admin"
+ "resource_types:OS::Cinder::VolumeType": "rule:project_admin"
+ "resource_types:OS::Keystone::*": "rule:project_admin"
+ "resource_types:OS::Manila::ShareType": "rule:project_admin"
+ "resource_types:OS::Neutron::ProviderNet": "rule:project_admin"
+ "resource_types:OS::Neutron::QoSBandwidthLimitRule": "rule:project_admin"
+ "resource_types:OS::Neutron::QoSPolicy": "rule:project_admin"
+ "resource_types:OS::Neutron::Quota": "rule:project_admin"
+ "resource_types:OS::Neutron::Segment": "rule:project_admin"
+ "resource_types:OS::Nova::Flavor": "rule:project_admin"
+ "resource_types:OS::Nova::HostAggregate": "rule:project_admin"
+ "resource_types:OS::Nova::Quota": "rule:project_admin"
+ "service:index": "rule:context_is_admin"
+ "software_configs:create": "rule:deny_stack_user"
+ "software_configs:delete": "rule:deny_stack_user"
+ "software_configs:global_index": "rule:deny_everybody"
+ "software_configs:index": "rule:deny_stack_user"
+ "software_configs:show": "rule:deny_stack_user"
+ "software_deployments:create": "rule:deny_stack_user"
+ "software_deployments:delete": "rule:deny_stack_user"
+ "software_deployments:index": "rule:deny_stack_user"
+ "software_deployments:metadata": ""
+ "software_deployments:show": "rule:deny_stack_user"
+ "software_deployments:update": "rule:deny_stack_user"
+ "stacks:abandon": "rule:deny_stack_user"
+ "stacks:create": "rule:deny_stack_user"
+ "stacks:delete": "rule:deny_stack_user"
+ "stacks:delete_snapshot": "rule:deny_stack_user"
+ "stacks:detail": "rule:deny_stack_user"
+ "stacks:environment": "rule:deny_stack_user"
+ "stacks:export": "rule:deny_stack_user"
+ "stacks:files": "rule:deny_stack_user"
+ "stacks:generate_template": "rule:deny_stack_user"
+ "stacks:global_index": "rule:deny_everybody"
+ "stacks:index": "rule:deny_stack_user"
+ "stacks:list_outputs": "rule:deny_stack_user"
+ "stacks:list_resource_types": "rule:deny_stack_user"
+ "stacks:list_snapshots": "rule:deny_stack_user"
+ "stacks:list_template_functions": "rule:deny_stack_user"
+ "stacks:list_template_versions": "rule:deny_stack_user"
+ "stacks:lookup": ""
+ "stacks:preview": "rule:deny_stack_user"
+ "stacks:preview_update": "rule:deny_stack_user"
+ "stacks:preview_update_patch": "rule:deny_stack_user"
+ "stacks:resource_schema": "rule:deny_stack_user"
+ "stacks:restore_snapshot": "rule:deny_stack_user"
+ "stacks:show": "rule:deny_stack_user"
+ "stacks:show_output": "rule:deny_stack_user"
+ "stacks:show_snapshot": "rule:deny_stack_user"
+ "stacks:snapshot": "rule:deny_stack_user"
+ "stacks:template": "rule:deny_stack_user"
+ "stacks:update": "rule:deny_stack_user"
+ "stacks:update_patch": "rule:deny_stack_user"
+ "stacks:validate_template": "rule:deny_stack_user"
+ heat_default_policy_queens: ${_param:heat_default_policy_pike}
+ keystone_default_policy_ocata: {}
+ keystone_default_policy_pike: &keystone_default_policy_pike
+ "admin_or_owner": "rule:admin_required or rule:owner"
+ "admin_or_token_subject": "rule:admin_required or rule:token_subject"
+ "admin_required": "role:admin or is_admin:1"
+ "identity:add_endpoint_group_to_project": "rule:admin_required"
+ "identity:add_endpoint_to_project": "rule:admin_required"
+ "identity:add_user_to_group": "rule:admin_required"
+ "identity:authorize_request_token": "rule:admin_required"
+ "identity:check_endpoint_in_project": "rule:admin_required"
+ "identity:check_grant": "rule:admin_required"
+ "identity:check_implied_role": "rule:admin_required"
+ "identity:check_policy_association_for_endpoint": "rule:admin_required"
+ "identity:check_policy_association_for_region_and_service": "rule:admin_required"
+ "identity:check_policy_association_for_service": "rule:admin_required"
+ "identity:check_token": "rule:admin_or_token_subject"
+ "identity:check_user_in_group": "rule:admin_required"
+ "identity:create_consumer": "rule:admin_required"
+ "identity:create_credential": "rule:admin_required"
+ "identity:create_domain": "rule:admin_required"
+ "identity:create_domain_config": "rule:admin_required"
+ "identity:create_domain_role": "rule:admin_required"
+ "identity:create_endpoint": "rule:admin_required"
+ "identity:create_endpoint_group": "rule:admin_required"
+ "identity:create_grant": "rule:admin_required"
+ "identity:create_group": "rule:admin_required"
+ "identity:create_identity_provider": "rule:admin_required"
+ "identity:create_implied_role": "rule:admin_required"
+ "identity:create_mapping": "rule:admin_required"
+ "identity:create_policy": "rule:admin_required"
+ "identity:create_policy_association_for_endpoint": "rule:admin_required"
+ "identity:create_policy_association_for_region_and_service": "rule:admin_required"
+ "identity:create_policy_association_for_service": "rule:admin_required"
+ "identity:create_project": "rule:admin_required"
+ "identity:create_protocol": "rule:admin_required"
+ "identity:create_region": "rule:admin_required"
+ "identity:create_role": "rule:admin_required"
+ "identity:create_service": "rule:admin_required"
+ "identity:create_service_provider": "rule:admin_required"
+ "identity:create_trust": "user_id:%(trust.trustor_user_id)s"
+ "identity:create_user": "rule:admin_required"
+ "identity:delete_access_token": "rule:admin_required"
+ "identity:delete_consumer": "rule:admin_required"
+ "identity:delete_credential": "rule:admin_required"
+ "identity:delete_domain": "rule:admin_required"
+ "identity:delete_domain_config": "rule:admin_required"
+ "identity:delete_domain_role": "rule:admin_required"
+ "identity:delete_endpoint": "rule:admin_required"
+ "identity:delete_endpoint_group": "rule:admin_required"
+ "identity:delete_group": "rule:admin_required"
+ "identity:delete_identity_provider": "rule:admin_required"
+ "identity:delete_implied_role": "rule:admin_required"
+ "identity:delete_mapping": "rule:admin_required"
+ "identity:delete_policy": "rule:admin_required"
+ "identity:delete_policy_association_for_endpoint": "rule:admin_required"
+ "identity:delete_policy_association_for_region_and_service": "rule:admin_required"
+ "identity:delete_policy_association_for_service": "rule:admin_required"
+ "identity:delete_project": "rule:admin_required"
+ "identity:delete_protocol": "rule:admin_required"
+ "identity:delete_region": "rule:admin_required"
+ "identity:delete_role": "rule:admin_required"
+ "identity:delete_service": "rule:admin_required"
+ "identity:delete_service_provider": "rule:admin_required"
+ "identity:delete_trust": ""
+ "identity:delete_user": "rule:admin_required"
+ "identity:ec2_create_credential": "rule:admin_or_owner"
+ "identity:ec2_delete_credential": "rule:admin_required or (rule:owner and user_id:%(target.credential.user_id)s)"
+ "identity:ec2_get_credential": "rule:admin_required or (rule:owner and user_id:%(target.credential.user_id)s)"
+ "identity:ec2_list_credentials": "rule:admin_or_owner"
+ "identity:get_access_token": "rule:admin_required"
+ "identity:get_access_token_role": "rule:admin_required"
+ "identity:get_auth_catalog": ""
+ "identity:get_auth_domains": ""
+ "identity:get_auth_projects": ""
+ "identity:get_consumer": "rule:admin_required"
+ "identity:get_credential": "rule:admin_required"
+ "identity:get_domain": "rule:admin_required or token.project.domain.id:%(target.domain.id)s"
+ "identity:get_domain_config": "rule:admin_required"
+ "identity:get_domain_config_default": "rule:admin_required"
+ "identity:get_domain_role": "rule:admin_required"
+ "identity:get_endpoint": "rule:admin_required"
+ "identity:get_endpoint_group": "rule:admin_required"
+ "identity:get_endpoint_group_in_project": "rule:admin_required"
+ "identity:get_group": "rule:admin_required"
+ "identity:get_identity_provider": "rule:admin_required"
+ "identity:get_implied_role": "rule:admin_required"
+ "identity:get_mapping": "rule:admin_required"
+ "identity:get_policy": "rule:admin_required"
+ "identity:get_policy_for_endpoint": "rule:admin_required"
+ "identity:get_project": "rule:admin_required or project_id:%(target.project.id)s"
+ "identity:get_protocol": "rule:admin_required"
+ "identity:get_region": ""
+ "identity:get_role": "rule:admin_required"
+ "identity:get_role_for_trust": ""
+ "identity:get_security_compliance_domain_config": ""
+ "identity:get_service": "rule:admin_required"
+ "identity:get_service_provider": "rule:admin_required"
+ "identity:get_trust": ""
+ "identity:get_user": "rule:admin_or_owner"
+ "identity:list_access_token_roles": "rule:admin_required"
+ "identity:list_access_tokens": "rule:admin_required"
+ "identity:list_consumers": "rule:admin_required"
+ "identity:list_credentials": "rule:admin_required"
+ "identity:list_domain_roles": "rule:admin_required"
+ "identity:list_domains": "rule:admin_required"
+ "identity:list_domains_for_user": ""
+ "identity:list_endpoint_groups": "rule:admin_required"
+ "identity:list_endpoint_groups_for_project": "rule:admin_required"
+ "identity:list_endpoints": "rule:admin_required"
+ "identity:list_endpoints_associated_with_endpoint_group": "rule:admin_required"
+ "identity:list_endpoints_for_policy": "rule:admin_required"
+ "identity:list_endpoints_for_project": "rule:admin_required"
+ "identity:list_grants": "rule:admin_required"
+ "identity:list_groups": "rule:admin_required"
+ "identity:list_groups_for_user": "rule:admin_or_owner"
+ "identity:list_identity_providers": "rule:admin_required"
+ "identity:list_implied_roles": "rule:admin_required"
+ "identity:list_mappings": "rule:admin_required"
+ "identity:list_policies": "rule:admin_required"
+ "identity:list_projects": "rule:admin_required"
+ "identity:list_projects_associated_with_endpoint_group": "rule:admin_required"
+ "identity:list_projects_for_endpoint": "rule:admin_required"
+ "identity:list_projects_for_user": ""
+ "identity:list_protocols": "rule:admin_required"
+ "identity:list_regions": ""
+ "identity:list_revoke_events": "rule:service_or_admin"
+ "identity:list_role_assignments": "rule:admin_required"
+ "identity:list_role_assignments_for_tree": "rule:admin_required"
+ "identity:list_role_inference_rules": "rule:admin_required"
+ "identity:list_roles": "rule:admin_required"
+ "identity:list_roles_for_trust": ""
+ "identity:list_service_providers": "rule:admin_required"
+ "identity:list_services": "rule:admin_required"
+ "identity:list_trusts": ""
+ "identity:list_user_projects": "rule:admin_or_owner"
+ "identity:list_users": "rule:admin_required"
+ "identity:list_users_in_group": "rule:admin_required"
+ "identity:remove_endpoint_from_project": "rule:admin_required"
+ "identity:remove_endpoint_group_from_project": "rule:admin_required"
+ "identity:remove_user_from_group": "rule:admin_required"
+ "identity:revocation_list": "rule:service_or_admin"
+ "identity:revoke_grant": "rule:admin_required"
+ "identity:revoke_token": "rule:admin_or_token_subject"
+ "identity:update_consumer": "rule:admin_required"
+ "identity:update_credential": "rule:admin_required"
+ "identity:update_domain": "rule:admin_required"
+ "identity:update_domain_config": "rule:admin_required"
+ "identity:update_domain_role": "rule:admin_required"
+ "identity:update_endpoint": "rule:admin_required"
+ "identity:update_endpoint_group": "rule:admin_required"
+ "identity:update_group": "rule:admin_required"
+ "identity:update_identity_provider": "rule:admin_required"
+ "identity:update_mapping": "rule:admin_required"
+ "identity:update_policy": "rule:admin_required"
+ "identity:update_project": "rule:admin_required"
+ "identity:update_protocol": "rule:admin_required"
+ "identity:update_region": "rule:admin_required"
+ "identity:update_role": "rule:admin_required"
+ "identity:update_service": "rule:admin_required"
+ "identity:update_service_provider": "rule:admin_required"
+ "identity:update_user": "rule:admin_required"
+ "identity:validate_token": "rule:service_admin_or_token_subject"
+ "identity:validate_token_head": "rule:service_or_admin"
+ "owner": "user_id:%(user_id)s"
+ "service_admin_or_token_subject": "rule:service_or_admin or rule:token_subject"
+ "service_or_admin": "rule:admin_required or rule:service_role"
+ "service_role": "role:service"
+ "token_subject": "user_id:%(target.token.user_id)s"
+ keystone_default_policy_queens:
+ << : *keystone_default_policy_pike
+ "identity:check_system_grant_for_group": "rule:admin_required"
+ "identity:check_system_grant_for_user": "rule:admin_required"
+ "identity:create_application_credential": "rule:admin_or_owner"
+ "identity:create_limits": "rule:admin_required"
+ "identity:create_project_tag": "rule:admin_required"
+ "identity:create_registered_limits": "rule:admin_required"
+ "identity:create_system_grant_for_group": "rule:admin_required"
+ "identity:create_system_grant_for_user": "rule:admin_required"
+ "identity:delete_application_credential": "rule:admin_or_owner"
+ "identity:delete_limit": "rule:admin_required"
+ "identity:delete_project_tag": "rule:admin_required"
+ "identity:delete_project_tags": "rule:admin_required"
+ "identity:delete_registered_limit": "rule:admin_required"
+ "identity:get_application_credential": "rule:admin_or_owner"
+ "identity:get_auth_system": ""
+ "identity:get_limit": ""
+ "identity:get_project_tag": "rule:admin_required or project_id:%(target.project.id)s"
+ "identity:get_registered_limit": ""
+ "identity:list_application_credentials": "rule:admin_or_owner"
+ "identity:list_limits": ""
+ "identity:list_project_tags": "rule:admin_required or project_id:%(target.project.id)s"
+ "identity:list_registered_limits": ""
+ "identity:list_system_grants_for_group": "rule:admin_required"
+ "identity:list_system_grants_for_user": "rule:admin_required"
+ "identity:revoke_system_grant_for_group": "rule:admin_required"
+ "identity:revoke_system_grant_for_user": "rule:admin_required"
+ "identity:update_limits": "rule:admin_required"
+ "identity:update_project_tags": "rule:admin_required"
+ "identity:update_registered_limits": "rule:admin_required"
+ "identity:validate_token_head":
+ manila_default_policy_ocata: {}
+ manila_default_policy_pike:
+ "admin_api": "is_admin:True"
+ "admin_or_owner": "is_admin:True or project_id:%(project_id)s"
+ "availability_zone:index": "rule:default"
+ "context_is_admin": "role:admin"
+ "default": "rule:admin_or_owner"
+ "message:delete": "rule:default"
+ "message:get_all": "rule:default"
+ "message:get": "rule:default"
+ "quota_class_set:show": "rule:default"
+ "quota_class_set:update": "rule:admin_api"
+ "quota_set:delete": "rule:admin_api"
+ "quota_set:show": "rule:default"
+ "quota_set:update": "rule:admin_api"
+ "scheduler_stats:pools:detail": "rule:admin_api"
+ "scheduler_stats:pools:index": "rule:admin_api"
+ "security_service:create": "rule:default"
+ "security_service:delete": "rule:default"
+ "security_service:detail": "rule:default"
+ "security_service:get_all_security_services": "rule:admin_api"
+ "security_service:index": "rule:default"
+ "security_service:show": "rule:default"
+ "security_service:update": "rule:default"
+ "service:index": "rule:admin_api"
+ "service:update": "rule:admin_api"
+ "share:access_get_all": "rule:default"
+ "share:access_get": "rule:default"
+ "share:allow_access": "rule:default"
+ "share:create": ""
+ "share:create_snapshot": "rule:default"
+ "share:delete": "rule:default"
+ "share:delete_share_metadata": "rule:default"
+ "share:delete_snapshot": "rule:default"
+ "share:deny_access": "rule:default"
+ "share_export_location:index": "rule:default"
+ "share_export_location:show": "rule:default"
+ "share:extend": "rule:default"
+ "share:force_delete": "rule:admin_api"
+ "share:get_all": "rule:default"
+ "share:get": "rule:default"
+ "share:get_share_metadata": "rule:default"
+ "share_group:create": "rule:default"
+ "share_group:delete": "rule:default"
+ "share_group:force_delete": "rule:admin_api"
+ "share_group:get_all": "rule:default"
+ "share_group:get": "rule:default"
+ "share_group:reset_status": "rule:admin_api"
+ "share_group_snapshot:create": "rule:default"
+ "share_group_snapshot:delete": "rule:default"
+ "share_group_snapshot:force_delete": "rule:admin_api"
+ "share_group_snapshot:get_all": "rule:default"
+ "share_group_snapshot:get": "rule:default"
+ "share_group_snapshot:reset_status": "rule:admin_api"
+ "share_group_snapshot:update": "rule:default"
+ "share_group_type:add_project_access": "rule:admin_api"
+ "share_group_type:create": "rule:admin_api"
+ "share_group_type:default": "rule:default"
+ "share_group_type:delete": "rule:admin_api"
+ "share_group_type:index": "rule:default"
+ "share_group_type:list_project_access": "rule:admin_api"
+ "share_group_type:remove_project_access": "rule:admin_api"
+ "share_group_type:show": "rule:default"
+ "share_group_types_spec:create": "rule:admin_api"
+ "share_group_types_spec:delete": "rule:admin_api"
+ "share_group_types_spec:index": "rule:admin_api"
+ "share_group_types_spec:show": "rule:admin_api"
+ "share_group_types_spec:update": "rule:admin_api"
+ "share_group:update": "rule:default"
+ "share_instance_export_location:index": "rule:admin_api"
+ "share_instance_export_location:show": "rule:admin_api"
+ "share_instance:force_delete": "rule:admin_api"
+ "share_instance:index": "rule:admin_api"
+ "share_instance:reset_status": "rule:admin_api"
+ "share_instance:show": "rule:admin_api"
+ "share:list_by_host": "rule:admin_api"
+ "share:list_by_share_server_id": "rule:admin_api"
+ "share:manage": "rule:admin_api"
+ "share:migration_cancel": "rule:admin_api"
+ "share:migration_complete": "rule:admin_api"
+ "share:migration_get_progress": "rule:admin_api"
+ "share:migration_start": "rule:admin_api"
+ "share_network:add_security_service": "rule:default"
+ "share_network:create": "rule:default"
+ "share_network:delete": "rule:default"
+ "share_network:detail": "rule:default"
+ "share_network:get_all_share_networks": "rule:admin_api"
+ "share_network:index": "rule:default"
+ "share_network:remove_security_service": "rule:default"
+ "share_network:show": "rule:default"
+ "share_network:update": "rule:default"
+ "share_replica:create": "rule:default"
+ "share_replica:delete": "rule:default"
+ "share_replica:force_delete": "rule:admin_api"
+ "share_replica:get_all": "rule:default"
+ "share_replica:promote": "rule:default"
+ "share_replica:reset_replica_state": "rule:admin_api"
+ "share_replica:reset_status": "rule:admin_api"
+ "share_replica:resync": "rule:admin_api"
+ "share_replica:show": "rule:default"
+ "share:reset_status": "rule:admin_api"
+ "share:reset_task_state": "rule:admin_api"
+ "share:revert_to_snapshot": "rule:default"
+ "share_server:delete": "rule:admin_api"
+ "share_server:details": "rule:admin_api"
+ "share_server:index": "rule:admin_api"
+ "share_server:show": "rule:admin_api"
+ "share:shrink": "rule:default"
+ "share_snapshot:access_list": "rule:default"
+ "share_snapshot:allow_access": "rule:default"
+ "share_snapshot:deny_access": "rule:default"
+ "share_snapshot_export_location:index": "rule:default"
+ "share_snapshot_export_location:show": "rule:default"
+ "share_snapshot:force_delete": "rule:admin_api"
+ "share_snapshot:get_all_snapshots": "rule:default"
+ "share_snapshot:get_snapshot": "rule:default"
+ "share_snapshot_instance:detail": "rule:admin_api"
+ "share_snapshot_instance_export_location:index": "rule:admin_api"
+ "share_snapshot_instance_export_location:show": "rule:admin_api"
+ "share_snapshot_instance:index": "rule:admin_api"
+ "share_snapshot_instance:reset_status": "rule:admin_api"
+ "share_snapshot_instance:show": "rule:admin_api"
+ "share_snapshot:manage_snapshot": "rule:admin_api"
+ "share_snapshot:reset_status": "rule:admin_api"
+ "share_snapshot:unmanage_snapshot": "rule:admin_api"
+ "share:snapshot_update": "rule:default"
+ "share_type:add_project_access": "rule:admin_api"
+ "share_type:create": "rule:admin_api"
+ "share_type:default": "rule:default"
+ "share_type:delete": "rule:admin_api"
+ "share_type:index": "rule:default"
+ "share_type:list_project_access": "rule:admin_api"
+ "share_type:remove_project_access": "rule:admin_api"
+ "share_types_extra_spec:create": "rule:admin_api"
+ "share_types_extra_spec:delete": "rule:admin_api"
+ "share_types_extra_spec:index": "rule:admin_api"
+ "share_types_extra_spec:show": "rule:admin_api"
+ "share_types_extra_spec:update": "rule:admin_api"
+ "share_type:show": "rule:default"
+ "share:unmanage": "rule:admin_api"
+ "share:update": "rule:default"
+ "share:update_share_metadata": "rule:default"
+ manila_default_policy_queens: ${_param:manila_default_policy_pike}
+ neutron_default_policy_ocata: {}
+ neutron_default_policy_pike: &neutron_default_policy_pike
+ "add_router_interface": "rule:admin_or_owner"
+ "add_subports": "rule:admin_or_owner"
+ "admin_only": "rule:context_is_admin"
+ "admin_or_data_plane_int": "rule:context_is_admin or role:data_plane_integrator"
+ "admin_or_network_owner": "rule:context_is_admin or tenant_id:%(network:tenant_id)s"
+ "admin_or_owner": "rule:context_is_admin or rule:owner"
+ "admin_owner_or_network_owner": "rule:owner or rule:admin_or_network_owner"
+ "context_is_admin": "role:admin"
+ "context_is_advsvc": "role:advsvc"
+ "create_address_scope": ""
+ "create_address_scope:shared": "rule:admin_only"
+ "create_dhcp-network": "rule:admin_only"
+ "create_flavor": "rule:admin_only"
+ "create_flavor_service_profile": "rule:admin_only"
+ "create_floatingip": "rule:regular_user"
+ "create_floatingip:floating_ip_address": "rule:admin_only"
+ "create_l3-router": "rule:admin_only"
+ "create_log": "rule:admin_only"
+ "create_lsn": "rule:admin_only"
+ "create_metering_label": "rule:admin_only"
+ "create_metering_label_rule": "rule:admin_only"
+ "create_network": ""
+ "create_network:is_default": "rule:admin_only"
+ "create_network:provider:network_type": "rule:admin_only"
+ "create_network:provider:physical_network": "rule:admin_only"
+ "create_network:provider:segmentation_id": "rule:admin_only"
+ "create_network:router:external": "rule:admin_only"
+ "create_network:segments": "rule:admin_only"
+ "create_network:shared": "rule:admin_only"
+ "create_network_profile": "rule:admin_only"
+ "create_policy": "rule:admin_only"
+ "create_policy_bandwidth_limit_rule": "rule:admin_only"
+ "create_policy_dscp_marking_rule": "rule:admin_only"
+ "create_policy_minimum_bandwidth_rule": "rule:admin_only"
+ "create_port": ""
+ "create_port:allowed_address_pairs": "rule:admin_or_network_owner"
+ "create_port:binding:host_id": "rule:admin_only"
+ "create_port:binding:profile": "rule:admin_only"
+ "create_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner"
+ "create_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "create_port:mac_address": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "create_port:mac_learning_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "create_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "create_qos_queue": "rule:admin_only"
+ "create_rbac_policy": ""
+ "create_rbac_policy:target_tenant": "rule:restrict_wildcard"
+ "create_router": "rule:regular_user"
+ "create_router:distributed": "rule:admin_only"
+ "create_router:external_gateway_info:enable_snat": "rule:admin_only"
+ "create_router:external_gateway_info:external_fixed_ips": "rule:admin_only"
+ "create_router:ha": "rule:admin_only"
+ "create_security_group": "rule:admin_or_owner"
+ "create_security_group_rule": "rule:admin_or_owner"
+ "create_segment": "rule:admin_only"
+ "create_service_profile": "rule:admin_only"
+ "create_subnet": "rule:admin_or_network_owner"
+ "create_subnet:segment_id": "rule:admin_only"
+ "create_subnet:service_types": "rule:admin_only"
+ "create_subnetpool": ""
+ "create_subnetpool:is_default": "rule:admin_only"
+ "create_subnetpool:shared": "rule:admin_only"
+ "create_trunk": "rule:regular_user"
+ "default": "rule:admin_or_owner"
+ "delete_address_scope": "rule:admin_or_owner"
+ "delete_agent": "rule:admin_only"
+ "delete_dhcp-network": "rule:admin_only"
+ "delete_flavor": "rule:admin_only"
+ "delete_flavor_service_profile": "rule:admin_only"
+ "delete_floatingip": "rule:admin_or_owner"
+ "delete_l3-router": "rule:admin_only"
+ "delete_log": "rule:admin_only"
+ "delete_metering_label": "rule:admin_only"
+ "delete_metering_label_rule": "rule:admin_only"
+ "delete_network": "rule:admin_or_owner"
+ "delete_network_profile": "rule:admin_only"
+ "delete_policy": "rule:admin_only"
+ "delete_policy_bandwidth_limit_rule": "rule:admin_only"
+ "delete_policy_dscp_marking_rule": "rule:admin_only"
+ "delete_policy_minimum_bandwidth_rule": "rule:admin_only"
+ "delete_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner"
+ "delete_rbac_policy": "rule:admin_or_owner"
+ "delete_router": "rule:admin_or_owner"
+ "delete_security_group": "rule:admin_or_owner"
+ "delete_security_group_rule": "rule:admin_or_owner"
+ "delete_segment": "rule:admin_only"
+ "delete_service_profile": "rule:admin_only"
+ "delete_subnet": "rule:admin_or_network_owner"
+ "delete_subnetpool": "rule:admin_or_owner"
+ "delete_trunk": "rule:admin_or_owner"
+ "external": "field:networks:router:external=True"
+ "get_address_scope": "rule:admin_or_owner or rule:shared_address_scopes"
+ "get_agent": "rule:admin_only"
+ "get_agent-loadbalancers": "rule:admin_only"
+ "get_auto_allocated_topology": "rule:admin_or_owner"
+ "get_dhcp-agents": "rule:admin_only"
+ "get_dhcp-networks": "rule:admin_only"
+ "get_flavor": "rule:regular_user"
+ "get_flavor_service_profile": "rule:regular_user"
+ "get_flavors": "rule:regular_user"
+ "get_floatingip": "rule:admin_or_owner"
+ "get_l3-agents": "rule:admin_only"
+ "get_l3-routers": "rule:admin_only"
+ "get_loadbalancer-agent": "rule:admin_only"
+ "get_loadbalancer-hosting-agent": "rule:admin_only"
+ "get_loadbalancer-pools": "rule:admin_only"
+ "get_log": "rule:admin_only"
+ "get_loggable_resources": "rule:admin_only"
+ "get_logs": "rule:admin_only"
+ "get_lsn": "rule:admin_only"
+ "get_metering_label": "rule:admin_only"
+ "get_metering_label_rule": "rule:admin_only"
+ "get_network": "rule:admin_or_owner or rule:shared or rule:external or rule:context_is_advsvc"
+ "get_network:provider:network_type": "rule:admin_only"
+ "get_network:provider:physical_network": "rule:admin_only"
+ "get_network:provider:segmentation_id": "rule:admin_only"
+ "get_network:queue_id": "rule:admin_only"
+ "get_network:router:external": "rule:regular_user"
+ "get_network:segments": "rule:admin_only"
+ "get_network_ip_availabilities": "rule:admin_only"
+ "get_network_ip_availability": "rule:admin_only"
+ "get_network_profile": ""
+ "get_network_profiles": ""
+ "get_policy": "rule:regular_user"
+ "get_policy_bandwidth_limit_rule": "rule:regular_user"
+ "get_policy_dscp_marking_rule": "rule:regular_user"
+ "get_policy_minimum_bandwidth_rule": "rule:regular_user"
+ "get_policy_profile": ""
+ "get_policy_profiles": ""
+ "get_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner"
+ "get_port:binding:host_id": "rule:admin_only"
+ "get_port:binding:profile": "rule:admin_only"
+ "get_port:binding:vif_details": "rule:admin_only"
+ "get_port:binding:vif_type": "rule:admin_only"
+ "get_port:queue_id": "rule:admin_only"
+ "get_qos_queue": "rule:admin_only"
+ "get_rbac_policy": "rule:admin_or_owner"
+ "get_router": "rule:admin_or_owner"
+ "get_router:distributed": "rule:admin_only"
+ "get_router:ha": "rule:admin_only"
+ "get_rule_type": "rule:regular_user"
+ "get_security_group": "rule:admin_or_owner"
+ "get_security_group_rule": "rule:admin_or_owner"
+ "get_security_group_rules": "rule:admin_or_owner"
+ "get_security_groups": "rule:admin_or_owner"
+ "get_segment": "rule:admin_only"
+ "get_service_profile": "rule:admin_only"
+ "get_service_profiles": "rule:admin_only"
+ "get_service_provider": "rule:regular_user"
+ "get_subnet": "rule:admin_or_owner or rule:shared"
+ "get_subnet:segment_id": "rule:admin_only"
+ "get_subnetpool": "rule:admin_or_owner or rule:shared_subnetpools"
+ "get_subports": ""
+ "get_trunk": "rule:admin_or_owner"
+ "network_device": "field:port:device_owner=~^network:"
+ "owner": "tenant_id:%(tenant_id)s"
+ "regular_user": ""
+ "remove_router_interface": "rule:admin_or_owner"
+ "remove_subports": "rule:admin_or_owner"
+ "restrict_wildcard": "(not field:rbac_policy:target_tenant=*) or rule:admin_only"
+ "shared": "field:networks:shared=True"
+ "shared_address_scopes": "field:address_scopes:shared=True"
+ "shared_subnetpools": "field:subnetpools:shared=True"
+ "update_address_scope": "rule:admin_or_owner"
+ "update_address_scope:shared": "rule:admin_only"
+ "update_agent": "rule:admin_only"
+ "update_flavor": "rule:admin_only"
+ "update_floatingip": "rule:admin_or_owner"
+ "update_log": "rule:admin_only"
+ "update_network": "rule:admin_or_owner"
+ "update_network:provider:network_type": "rule:admin_only"
+ "update_network:provider:physical_network": "rule:admin_only"
+ "update_network:provider:segmentation_id": "rule:admin_only"
+ "update_network:router:external": "rule:admin_only"
+ "update_network:segments": "rule:admin_only"
+ "update_network:shared": "rule:admin_only"
+ "update_network_profile": "rule:admin_only"
+ "update_policy": "rule:admin_only"
+ "update_policy_bandwidth_limit_rule": "rule:admin_only"
+ "update_policy_dscp_marking_rule": "rule:admin_only"
+ "update_policy_minimum_bandwidth_rule": "rule:admin_only"
+ "update_policy_profiles": "rule:admin_only"
+ "update_port": "rule:admin_or_owner or rule:context_is_advsvc"
+ "update_port:allowed_address_pairs": "rule:admin_or_network_owner"
+ "update_port:binding:host_id": "rule:admin_only"
+ "update_port:binding:profile": "rule:admin_only"
+ "update_port:data_plane_status": "rule:admin_or_data_plane_int"
+ "update_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner"
+ "update_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "update_port:mac_address": "rule:admin_only or rule:context_is_advsvc"
+ "update_port:mac_learning_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "update_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "update_rbac_policy": "rule:admin_or_owner"
+ "update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin_or_owner"
+ "update_router": "rule:admin_or_owner"
+ "update_router:distributed": "rule:admin_only"
+ "update_router:external_gateway_info": "rule:admin_or_owner"
+ "update_router:external_gateway_info:enable_snat": "rule:admin_only"
+ "update_router:external_gateway_info:external_fixed_ips": "rule:admin_only"
+ "update_router:external_gateway_info:network_id": "rule:admin_or_owner"
+ "update_router:ha": "rule:admin_only"
+ "update_security_group": "rule:admin_or_owner"
+ "update_segment": "rule:admin_only"
+ "update_service_profile": "rule:admin_only"
+ "update_subnet": "rule:admin_or_network_owner"
+ "update_subnet:service_types": "rule:admin_only"
+ "update_subnetpool": "rule:admin_or_owner"
+ "update_subnetpool:is_default": "rule:admin_only"
+ neutron_default_policy_queens:
+ << : *neutron_default_policy_pike
+ "create_port:allowed_address_pairs:ip_address": "rule:admin_or_network_owner"
+ "create_port:allowed_address_pairs:mac_address": "rule:admin_or_network_owner"
+ "create_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared"
+ "create_port:fixed_ips:ip_address": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "create_port:fixed_ips:subnet_id": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared"
+ "create_router:external_gateway_info": "rule:admin_or_owner"
+ "create_router:external_gateway_info:network_id": "rule:admin_or_owner"
+ "update_port:allowed_address_pairs:ip_address": "rule:admin_or_network_owner"
+ "update_port:allowed_address_pairs:mac_address": "rule:admin_or_network_owner"
+ "update_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared"
+ "update_port:fixed_ips:ip_address": "rule:context_is_advsvc or rule:admin_or_network_owner"
+ "update_port:fixed_ips:subnet_id": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared"
+ nova_default_policy_ocata: {}
+ nova_default_policy_pike: &nova_default_policy_pike
+ "admin_api": "is_admin:True"
+ "admin_or_owner": "is_admin:True or project_id:%(project_id)s"
+ "cells_scheduler_filter:DifferentCellFilter": "is_admin:True"
+ "cells_scheduler_filter:TargetCellFilter": "is_admin:True"
+ "context_is_admin": "role:admin"
+ "network:attach_external_network": "is_admin:True"
+ "os_compute_api:extensions": "rule:admin_or_owner"
+ "os_compute_api:flavors": "rule:admin_or_owner"
+ "os_compute_api:image-size": "rule:admin_or_owner"
+ "os_compute_api:ips:index": "rule:admin_or_owner"
+ "os_compute_api:ips:show": "rule:admin_or_owner"
+ "os_compute_api:limits": "rule:admin_or_owner"
+ "os_compute_api:os-admin-actions:inject_network_info": "rule:admin_api"
+ "os_compute_api:os-admin-actions:reset_network": "rule:admin_api"
+ "os_compute_api:os-admin-actions:reset_state": "rule:admin_api"
+ "os_compute_api:os-admin-password": "rule:admin_or_owner"
+ "os_compute_api:os-agents": "rule:admin_api"
+ "os_compute_api:os-aggregates:add_host": "rule:admin_api"
+ "os_compute_api:os-aggregates:create": "rule:admin_api"
+ "os_compute_api:os-aggregates:delete": "rule:admin_api"
+ "os_compute_api:os-aggregates:index": "rule:admin_api"
+ "os_compute_api:os-aggregates:remove_host": "rule:admin_api"
+ "os_compute_api:os-aggregates:set_metadata": "rule:admin_api"
+ "os_compute_api:os-aggregates:show": "rule:admin_api"
+ "os_compute_api:os-aggregates:update": "rule:admin_api"
+ "os_compute_api:os-assisted-volume-snapshots:create": "rule:admin_api"
+ "os_compute_api:os-assisted-volume-snapshots:delete": "rule:admin_api"
+ "os_compute_api:os-attach-interfaces": "rule:admin_or_owner"
+ "os_compute_api:os-attach-interfaces:create": "rule:admin_or_owner"
+ "os_compute_api:os-attach-interfaces:delete": "rule:admin_or_owner"
+ "os_compute_api:os-availability-zone:detail": "rule:admin_api"
+ "os_compute_api:os-availability-zone:list": "rule:admin_or_owner"
+ "os_compute_api:os-baremetal-nodes": "rule:admin_api"
+ "os_compute_api:os-cells": "rule:admin_api"
+ "os_compute_api:os-cells:create": "rule:admin_api"
+ "os_compute_api:os-cells:delete": "rule:admin_api"
+ "os_compute_api:os-cells:sync_instances": "rule:admin_api"
+ "os_compute_api:os-cells:update": "rule:admin_api"
+ "os_compute_api:os-config-drive": "rule:admin_or_owner"
+ "os_compute_api:os-console-auth-tokens": "rule:admin_api"
+ "os_compute_api:os-console-output": "rule:admin_or_owner"
+ "os_compute_api:os-consoles:create": "rule:admin_or_owner"
+ "os_compute_api:os-consoles:delete": "rule:admin_or_owner"
+ "os_compute_api:os-consoles:index": "rule:admin_or_owner"
+ "os_compute_api:os-consoles:show": "rule:admin_or_owner"
+ "os_compute_api:os-create-backup": "rule:admin_or_owner"
+ "os_compute_api:os-deferred-delete": "rule:admin_or_owner"
+ "os_compute_api:os-evacuate": "rule:admin_api"
+ "os_compute_api:os-extended-availability-zone": "rule:admin_or_owner"
+ "os_compute_api:os-extended-server-attributes": "rule:admin_api"
+ "os_compute_api:os-extended-status": "rule:admin_or_owner"
+ "os_compute_api:os-extended-volumes": "rule:admin_or_owner"
+ "os_compute_api:os-fixed-ips": "rule:admin_api"
+ "os_compute_api:os-flavor-access": "rule:admin_or_owner"
+ "os_compute_api:os-flavor-access:add_tenant_access": "rule:admin_api"
+ "os_compute_api:os-flavor-access:remove_tenant_access": "rule:admin_api"
+ "os_compute_api:os-flavor-extra-specs:create": "rule:admin_api"
+ "os_compute_api:os-flavor-extra-specs:delete": "rule:admin_api"
+ "os_compute_api:os-flavor-extra-specs:index": "rule:admin_or_owner"
+ "os_compute_api:os-flavor-extra-specs:show": "rule:admin_or_owner"
+ "os_compute_api:os-flavor-extra-specs:update": "rule:admin_api"
+ "os_compute_api:os-flavor-manage": "rule:admin_api"
+ "os_compute_api:os-flavor-manage:create": "rule:os_compute_api:os-flavor-manage"
+ "os_compute_api:os-flavor-manage:delete": "rule:os_compute_api:os-flavor-manage"
+ "os_compute_api:os-flavor-rxtx": "rule:admin_or_owner"
+ "os_compute_api:os-floating-ip-dns": "rule:admin_or_owner"
+ "os_compute_api:os-floating-ip-dns:domain:delete": "rule:admin_api"
+ "os_compute_api:os-floating-ip-dns:domain:update": "rule:admin_api"
+ "os_compute_api:os-floating-ip-pools": "rule:admin_or_owner"
+ "os_compute_api:os-floating-ips": "rule:admin_or_owner"
+ "os_compute_api:os-floating-ips-bulk": "rule:admin_api"
+ "os_compute_api:os-fping": "rule:admin_or_owner"
+ "os_compute_api:os-fping:all_tenants": "rule:admin_api"
+ "os_compute_api:os-hide-server-addresses": "is_admin:False"
+ "os_compute_api:os-hosts": "rule:admin_api"
+ "os_compute_api:os-hypervisors": "rule:admin_api"
+ "os_compute_api:os-instance-actions": "rule:admin_or_owner"
+ "os_compute_api:os-instance-actions:events": "rule:admin_api"
+ "os_compute_api:os-instance-usage-audit-log": "rule:admin_api"
+ "os_compute_api:os-keypairs": "rule:admin_or_owner"
+ "os_compute_api:os-keypairs:create": "rule:admin_api or user_id:%(user_id)s"
+ "os_compute_api:os-keypairs:delete": "rule:admin_api or user_id:%(user_id)s"
+ "os_compute_api:os-keypairs:index": "rule:admin_api or user_id:%(user_id)s"
+ "os_compute_api:os-keypairs:show": "rule:admin_api or user_id:%(user_id)s"
+ "os_compute_api:os-lock-server:lock": "rule:admin_or_owner"
+ "os_compute_api:os-lock-server:unlock": "rule:admin_or_owner"
+ "os_compute_api:os-lock-server:unlock:unlock_override": "rule:admin_api"
+ "os_compute_api:os-migrate-server:migrate": "rule:admin_api"
+ "os_compute_api:os-migrate-server:migrate_live": "rule:admin_api"
+ "os_compute_api:os-migrations:index": "rule:admin_api"
+ "os_compute_api:os-multinic": "rule:admin_or_owner"
+ "os_compute_api:os-networks": "rule:admin_api"
+ "os_compute_api:os-networks-associate": "rule:admin_api"
+ "os_compute_api:os-networks:view": "rule:admin_or_owner"
+ "os_compute_api:os-pause-server:pause": "rule:admin_or_owner"
+ "os_compute_api:os-pause-server:unpause": "rule:admin_or_owner"
+ "os_compute_api:os-quota-class-sets:show": "is_admin:True or quota_class:%(quota_class)s"
+ "os_compute_api:os-quota-class-sets:update": "rule:admin_api"
+ "os_compute_api:os-quota-sets:defaults": "@"
+ "os_compute_api:os-quota-sets:delete": "rule:admin_api"
+ "os_compute_api:os-quota-sets:detail": "rule:admin_or_owner"
+ "os_compute_api:os-quota-sets:show": "rule:admin_or_owner"
+ "os_compute_api:os-quota-sets:update": "rule:admin_api"
+ "os_compute_api:os-remote-consoles": "rule:admin_or_owner"
+ "os_compute_api:os-rescue": "rule:admin_or_owner"
+ "os_compute_api:os-security-group-default-rules": "rule:admin_api"
+ "os_compute_api:os-security-groups": "rule:admin_or_owner"
+ "os_compute_api:os-server-diagnostics": "rule:admin_api"
+ "os_compute_api:os-server-external-events:create": "rule:admin_api"
+ "os_compute_api:os-server-groups": "rule:admin_or_owner"
+ "os_compute_api:os-server-groups:create": "rule:os_compute_api:os-server-groups"
+ "os_compute_api:os-server-groups:delete": "rule:os_compute_api:os-server-groups"
+ "os_compute_api:os-server-groups:index": "rule:os_compute_api:os-server-groups"
+ "os_compute_api:os-server-groups:show": "rule:os_compute_api:os-server-groups"
+ "os_compute_api:os-server-password": "rule:admin_or_owner"
+ "os_compute_api:os-server-tags:delete": "rule:admin_or_owner"
+ "os_compute_api:os-server-tags:delete_all": "rule:admin_or_owner"
+ "os_compute_api:os-server-tags:index": "rule:admin_or_owner"
+ "os_compute_api:os-server-tags:show": "rule:admin_or_owner"
+ "os_compute_api:os-server-tags:update": "rule:admin_or_owner"
+ "os_compute_api:os-server-tags:update_all": "rule:admin_or_owner"
+ "os_compute_api:os-server-usage": "rule:admin_or_owner"
+ "os_compute_api:os-services": "rule:admin_api"
+ "os_compute_api:os-shelve:shelve": "rule:admin_or_owner"
+ "os_compute_api:os-shelve:shelve_offload": "rule:admin_api"
+ "os_compute_api:os-shelve:unshelve": "rule:admin_or_owner"
+ "os_compute_api:os-simple-tenant-usage:list": "rule:admin_api"
+ "os_compute_api:os-simple-tenant-usage:show": "rule:admin_or_owner"
+ "os_compute_api:os-suspend-server:resume": "rule:admin_or_owner"
+ "os_compute_api:os-suspend-server:suspend": "rule:admin_or_owner"
+ "os_compute_api:os-tenant-networks": "rule:admin_or_owner"
+ "os_compute_api:os-used-limits": "rule:admin_api"
+ "os_compute_api:os-virtual-interfaces": "rule:admin_or_owner"
+ "os_compute_api:os-volumes": "rule:admin_or_owner"
+ "os_compute_api:os-volumes-attachments:create": "rule:admin_or_owner"
+ "os_compute_api:os-volumes-attachments:delete": "rule:admin_or_owner"
+ "os_compute_api:os-volumes-attachments:index": "rule:admin_or_owner"
+ "os_compute_api:os-volumes-attachments:show": "rule:admin_or_owner"
+ "os_compute_api:os-volumes-attachments:update": "rule:admin_api"
+ "os_compute_api:server-metadata:create": "rule:admin_or_owner"
+ "os_compute_api:server-metadata:delete": "rule:admin_or_owner"
+ "os_compute_api:server-metadata:index": "rule:admin_or_owner"
+ "os_compute_api:server-metadata:show": "rule:admin_or_owner"
+ "os_compute_api:server-metadata:update": "rule:admin_or_owner"
+ "os_compute_api:server-metadata:update_all": "rule:admin_or_owner"
+ "os_compute_api:servers:confirm_resize": "rule:admin_or_owner"
+ "os_compute_api:servers:create": "rule:admin_or_owner"
+ "os_compute_api:servers:create:attach_network": "rule:admin_or_owner"
+ "os_compute_api:servers:create:attach_volume": "rule:admin_or_owner"
+ "os_compute_api:servers:create:forced_host": "rule:admin_api"
+ "os_compute_api:servers:create:zero_disk_flavor": "rule:admin_or_owner"
+ "os_compute_api:servers:create_image": "rule:admin_or_owner"
+ "os_compute_api:servers:create_image:allow_volume_backed": "rule:admin_or_owner"
+ "os_compute_api:servers:delete": "rule:admin_or_owner"
+ "os_compute_api:servers:detail": "rule:admin_or_owner"
+ "os_compute_api:servers:detail:get_all_tenants": "rule:admin_api"
+ "os_compute_api:servers:index": "rule:admin_or_owner"
+ "os_compute_api:servers:index:get_all_tenants": "rule:admin_api"
+ "os_compute_api:servers:migrations:delete": "rule:admin_api"
+ "os_compute_api:servers:migrations:force_complete": "rule:admin_api"
+ "os_compute_api:servers:migrations:index": "rule:admin_api"
+ "os_compute_api:servers:migrations:show": "rule:admin_api"
+ "os_compute_api:servers:reboot": "rule:admin_or_owner"
+ "os_compute_api:servers:rebuild": "rule:admin_or_owner"
+ "os_compute_api:servers:resize": "rule:admin_or_owner"
+ "os_compute_api:servers:revert_resize": "rule:admin_or_owner"
+ "os_compute_api:servers:show": "rule:admin_or_owner"
+ "os_compute_api:servers:show:host_status": "rule:admin_api"
+ "os_compute_api:servers:start": "rule:admin_or_owner"
+ "os_compute_api:servers:stop": "rule:admin_or_owner"
+ "os_compute_api:servers:trigger_crash_dump": "rule:admin_or_owner"
+ "os_compute_api:servers:update": "rule:admin_or_owner"
+ nova_default_policy_queens:
+ << : *nova_default_policy_pike
+ "os_compute_api:os-flavor-manage:update": "rule:admin_api"
+ octavia_default_policy_ocata: {}
+ octavia_default_policy_pike: &octavia_default_policy_pike
+ "context_is_admin": "role:admin or role:load-balancer_admin"
+ "load-balancer:owner": "project_id:%(project_id)s"
+ "load-balancer:observer_and_owner": "role:load-balancer_observer and rule:load-balancer:owner"
+ "load-balancer:global_observer": "role:load-balancer_global_observer"
+ "load-balancer:member_and_owner": "role:load-balancer_member and rule:load-balancer:owner"
+ "load-balancer:read": "rule:load-balancer:observer_and_owner or rule:load-balancer:global_observer or rule:load-balancer:member_and_owner or is_admin:True"
+ "load-balancer:read-global": "rule:load-balancer:global_observer or is_admin:True"
+ "load-balancer:write": "rule:load-balancer:member_and_owner or is_admin:True"
+ "load-balancer:read-quota": "rule:load-balancer:observer_and_owner or rule:load-balancer:global_observer or rule:load-balancer:member_and_owner or role:load-balancer_quota_admin or is_admin:True"
+ "load-balancer:read-quota-global": "rule:load-balancer:global_observer or role:load-balancer_quota_admin or is_admin:True"
+ "load-balancer:write-quota": "role:load-balancer_quota_admin or is_admin:True"
+ "os_load-balancer_api:healthmonitor:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:healthmonitor:get_all-global": "rule:load-balancer:read-global"
+ "os_load-balancer_api:healthmonitor:post": "rule:load-balancer:write"
+ "os_load-balancer_api:healthmonitor:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:healthmonitor:put": "rule:load-balancer:write"
+ "os_load-balancer_api:healthmonitor:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:l7policy:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:l7policy:get_all-global": "rule:load-balancer:read-global"
+ "os_load-balancer_api:l7policy:post": "rule:load-balancer:write"
+ "os_load-balancer_api:l7policy:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:l7policy:put": "rule:load-balancer:write"
+ "os_load-balancer_api:l7policy:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:l7rule:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:l7rule:post": "rule:load-balancer:write"
+ "os_load-balancer_api:l7rule:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:l7rule:put": "rule:load-balancer:write"
+ "os_load-balancer_api:l7rule:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:listener:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:listener:get_all-global": "rule:load-balancer:read-global"
+ "os_load-balancer_api:listener:post": "rule:load-balancer:write"
+ "os_load-balancer_api:listener:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:listener:put": "rule:load-balancer:write"
+ "os_load-balancer_api:listener:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:listener:get_stats": "rule:load-balancer:read"
+ "os_load-balancer_api:loadbalancer:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:loadbalancer:get_all-global": "rule:load-balancer:read-global"
+ "os_load-balancer_api:loadbalancer:post": "rule:load-balancer:write"
+ "os_load-balancer_api:loadbalancer:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:loadbalancer:put": "rule:load-balancer:write"
+ "os_load-balancer_api:loadbalancer:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:loadbalancer:get_stats": "rule:load-balancer:read"
+ "os_load-balancer_api:loadbalancer:get_status": "rule:load-balancer:read"
+ "os_load-balancer_api:member:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:member:post": "rule:load-balancer:write"
+ "os_load-balancer_api:member:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:member:put": "rule:load-balancer:write"
+ "os_load-balancer_api:member:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:pool:get_all": "rule:load-balancer:read"
+ "os_load-balancer_api:pool:get_all-global": "rule:load-balancer:read-global"
+ "os_load-balancer_api:pool:post": "rule:load-balancer:write"
+ "os_load-balancer_api:pool:get_one": "rule:load-balancer:read"
+ "os_load-balancer_api:pool:put": "rule:load-balancer:write"
+ "os_load-balancer_api:pool:delete": "rule:load-balancer:write"
+ "os_load-balancer_api:quota:get_all": "rule:load-balancer:read-quota"
+ "os_load-balancer_api:quota:get_all-global": "rule:load-balancer:read-quota-global"
+ "os_load-balancer_api:quota:get_one": "rule:load-balancer:read-quota"
+ "os_load-balancer_api:quota:put": "rule:load-balancer:write-quota"
+ "os_load-balancer_api:quota:delete": "rule:load-balancer:write-quota"
+ "os_load-balancer_api:quota:get_defaults": "rule:load-balancer:read-quota"
+ octavia_default_policy_queens:
+ << : *octavia_default_policy_pike
+ "load-balancer:admin": "is_admin:True or role:admin or role:load-balancer_admin"
+ "load-balancer:read": "rule:load-balancer:observer_and_owner or rule:load-balancer:global_observer or rule:load-balancer:member_and_owner or rule:load-balancer:admin"
+ "load-balancer:read-global": "rule:load-balancer:global_observer or rule:load-balancer:admin"
+ "load-balancer:write": "rule:load-balancer:member_and_owner or rule:load-balancer:admin"
+ "load-balancer:read-quota": "rule:load-balancer:observer_and_owner or rule:load-balancer:global_observer or rule:load-balancer:member_and_owner or role:load-balancer_quota_admin or rule:load-balancer:admin"
+ "load-balancer:read-quota-global": "rule:load-balancer:global_observer or role:load-balancer_quota_admin or rule:load-balancer:admin"
+ "load-balancer:write-quota": "role:load-balancer_quota_admin or rule:load-balancer:admin"
+ "os_load-balancer_api:loadbalancer:put_failover": "rule:load-balancer:admin"
+ telemetry_default_policy_ocata: {}
+ telemetry_default_policy_pike:
+ "context_is_admin": "role:admin"
+ "segregation": "rule:context_is_admin"
+ "telemetry:compute_statistics": ""
+ "telemetry:create_samples": ""
+ "telemetry:get_meters": ""
+ "telemetry:get_resource": ""
+ "telemetry:get_resources": ""
+ "telemetry:get_sample": ""
+ "telemetry:get_samples": ""
+ "telemetry:query_sample": ""
+ telemetry_default_policy_queens: ${_param:telemetry_default_policy_pike}
diff --git a/defaults/openstack/policy/barbican.yml b/defaults/openstack/policy/barbican.yml
new file mode 100644
index 0000000..dc723af
--- /dev/null
+++ b/defaults/openstack/policy/barbican.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ barbican:
+ server:
+ policy: ${_param:barbican_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/bgpvpn.yml b/defaults/openstack/policy/bgpvpn.yml
new file mode 100644
index 0000000..1693b60
--- /dev/null
+++ b/defaults/openstack/policy/bgpvpn.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ neutron:
+ server:
+ bgpvpn_policy: ${_param:bgppvn_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/cinder.yml b/defaults/openstack/policy/cinder.yml
new file mode 100644
index 0000000..22b48a0
--- /dev/null
+++ b/defaults/openstack/policy/cinder.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ cinder:
+ controller:
+ policy: ${_param:cinder_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/designate.yml b/defaults/openstack/policy/designate.yml
new file mode 100644
index 0000000..1a71709
--- /dev/null
+++ b/defaults/openstack/policy/designate.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ designate:
+ server:
+ policy: ${_param:designate_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/glance.yml b/defaults/openstack/policy/glance.yml
new file mode 100644
index 0000000..e8d656c
--- /dev/null
+++ b/defaults/openstack/policy/glance.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ glance:
+ server:
+ policy: ${_param:glance_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/heat.yml b/defaults/openstack/policy/heat.yml
new file mode 100644
index 0000000..926943a
--- /dev/null
+++ b/defaults/openstack/policy/heat.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ heat:
+ server:
+ policy: ${_param:heat_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/horizon.yml b/defaults/openstack/policy/horizon.yml
new file mode 100644
index 0000000..fcca818
--- /dev/null
+++ b/defaults/openstack/policy/horizon.yml
@@ -0,0 +1,30 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ horizon:
+ server:
+ policy:
+ compute:
+ source: pillar
+ pillar: ${_param:nova_default_policy_${_param:openstack_version}}
+ enabled: true
+ identity:
+ source: pillar
+ pillar: ${_param:keystone_default_policy_${_param:openstack_version}}
+ enabled: true
+ image:
+ source: pillar
+ pillar: ${_param:glance_default_policy_${_param:openstack_version}}
+ enabled: true
+ network:
+ source: pillar
+ pillar: ${_param:neutron_default_policy_${_param:openstack_version}}
+ enabled: true
+ orchestration:
+ source: pillar
+ pillar: ${_param:heat_default_policy_${_param:openstack_version}}
+ enabled: true
+ volume:
+ source: pillar
+ pillar: ${_param:cinder_default_policy_${_param:openstack_version}}
+ enabled: true
diff --git a/defaults/openstack/policy/init.yml b/defaults/openstack/policy/init.yml
new file mode 100644
index 0000000..c351ed4
--- /dev/null
+++ b/defaults/openstack/policy/init.yml
@@ -0,0 +1,13 @@
+classes:
+#- system.defaults.openstack.policy.barbican
+#- system.defaults.openstack.policy.bgpvpn
+- system.defaults.openstack.policy.cinder
+#- system.defaults.openstack.policy.designate
+- system.defaults.openstack.policy.glance
+- system.defaults.openstack.policy.heat
+- system.defaults.openstack.policy.keystone
+#- system.defaults.openstack.policy.manila
+- system.defaults.openstack.policy.neutron
+- system.defaults.openstack.policy.nova
+#- system.defaults.openstack.policy.octavia
+#- system.defaults.openstack.policy.telemetry
diff --git a/defaults/openstack/policy/keystone.yml b/defaults/openstack/policy/keystone.yml
new file mode 100644
index 0000000..0b0f9c2
--- /dev/null
+++ b/defaults/openstack/policy/keystone.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ keystone:
+ server:
+ policy: ${_param:keystone_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/manila.yml b/defaults/openstack/policy/manila.yml
new file mode 100644
index 0000000..164603a
--- /dev/null
+++ b/defaults/openstack/policy/manila.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ manila:
+ api:
+ policy: ${_param:manila_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/neutron.yml b/defaults/openstack/policy/neutron.yml
new file mode 100644
index 0000000..8b7d2ec
--- /dev/null
+++ b/defaults/openstack/policy/neutron.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ neutron:
+ server:
+ policy: ${_param:neutron_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/nova.yml b/defaults/openstack/policy/nova.yml
new file mode 100644
index 0000000..1b81f53
--- /dev/null
+++ b/defaults/openstack/policy/nova.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ nova:
+ controller:
+ policy: ${_param:nova_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/octavia.yml b/defaults/openstack/policy/octavia.yml
new file mode 100644
index 0000000..8d9cbaa
--- /dev/null
+++ b/defaults/openstack/policy/octavia.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ octavia:
+ api:
+ policy: ${_param:octavia_default_policy_${_param:openstack_version}}
diff --git a/defaults/openstack/policy/telemetry.yml b/defaults/openstack/policy/telemetry.yml
new file mode 100644
index 0000000..d97b541
--- /dev/null
+++ b/defaults/openstack/policy/telemetry.yml
@@ -0,0 +1,6 @@
+classes:
+- system.defaults.openstack.policy.all
+parameters:
+ ceilometer:
+ server:
+ policy: ${_param:telemetry_default_policy_${_param:openstack_version}}