nova/nova/policies
Matt Riedemann 8392c7f265 Add policy rule to block image-backed servers with 0 root disk flavor
This adds a new policy rule which defaults to behave in a
backward compatible way, but will allow operators to enforce
that servers created with a zero disk flavor must also be
volume-backed servers.

Allowing users to upload their own images and create image-backed
servers on local disk with zero root disk size flavors can be
potentially hazardous if the size of the image is unexpectedly
large, since it can consume the local disk (or shared storage pool).

It should be noted that disabling the new policy rule will
result in a non-backward compatible API behavior change and no
microversion is being introduced for this because enforcement via
a new microversion would not close the security gap on any previous
microversions.

Related compute API reference and user documentation is updated
to mention the policy rule along with a release note since
this is tied to a security bug, which will be backported to stable
branches.

Conflicts:
      api-ref/source/parameters.yaml
      doc/source/admin/flavors2.rst
      nova/policies/servers.py
      nova/tests/functional/wsgi/test_servers.py

NOTE(mriedem): The api-ref/source/parameters.yaml conflict is due
to If646149efb7eec8c90bf7d07c39ff4c495349941 not being in Pike.
The doc/source/admin/flavors2.rst conflict is due to the doc
not being in Ocata - it was migrated from the central admin-guide
in Ifa0039e270e54ea2fb58ab18ce6724e5e8e061a1.
The nova/policies/servers.py conflict is due to two changes in Pike:
I17b6ca6e17c777ae7d337bf70ec4774ffe5187a8 and
I050c4f5f19aa79a682e076cc3e47eba597f272dd. The DocumentedRuleDefault
class was added to oslo.policy starting in 1.21.1 in Pike which is
newer than what stable/ocata supports in global-requirements so we
can't use it in this backport.
The nova/tests/functional/wsgi/test_servers.py conflict is due to
Ifcaaf285c8f98a1d0e8bbbc87b2f57fbce057346 and
I294c54e5a22dd6e5b226a4b00e7cd116813f0704 not being in Ocata.

Change-Id: Id67e1285a0522474844de130c9263e11868f67fb
Closes-Bug: #1739646
(cherry picked from commit 763fd62464)
(cherry picked from commit 7bcd581c78)
(cherry picked from commit 0bf75621bb)
2018-06-18 14:16:11 -04:00
..
__init__.py policy: clean-up 2016-06-30 19:56:14 +00:00
admin_actions.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
admin_password.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
agents.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
aggregates.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
assisted_volume_snapshots.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
attach_interfaces.py Add separate create/delete policies to attach_interface 2016-08-09 11:01:26 -04:00
availability_zone.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
baremetal_nodes.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
base.py policy: clean-up 2016-06-30 19:56:14 +00:00
block_device_mapping.py policy: clean-up 2016-06-30 19:56:14 +00:00
block_device_mapping_v1.py policy: Add defaults in code (part 1) 2016-06-23 19:53:29 +03:00
cells.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
cells_scheduler.py policy: clean-up 2016-06-30 19:56:14 +00:00
certificates.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
cloudpipe.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
config_drive.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
console_auth_tokens.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
console_output.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
consoles.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
create_backup.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
deferred_delete.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
evacuate.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
extended_availability_zone.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
extended_server_attributes.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
extended_status.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
extended_volumes.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
extension_info.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
extensions.py policy: Add defaults in code (part 2) 2016-06-23 12:10:03 -07:00
fixed_ips.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
flavor_access.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
flavor_extra_specs.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
flavor_manage.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
flavor_rxtx.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
flavors.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
floating_ip_dns.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
floating_ip_pools.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
floating_ips.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
floating_ips_bulk.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
fping.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
hide_server_addresses.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
hosts.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
hypervisors.py policy: Add defaults in code (part 3) 2016-06-23 19:22:53 +00:00
image_metadata.py policy: clean-up 2016-06-30 19:56:14 +00:00
image_size.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
images.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
instance_actions.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
instance_usage_audit_log.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
ips.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
keypairs.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
limits.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
lock_server.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
migrate_server.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
migrations.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
multinic.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
multiple_create.py policy: clean-up 2016-06-30 19:56:14 +00:00
networks.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
networks_associate.py policy: Add defaults in code (part 4) 2016-06-23 19:25:06 +00:00
pause_server.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
pci.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
quota_class_sets.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
quota_sets.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
remote_consoles.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
rescue.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
scheduler_hints.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
security_group_default_rules.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
security_groups.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
server_diagnostics.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
server_external_events.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
server_groups.py Separate CRUD policy for server_groups 2016-11-21 11:43:13 -05:00
server_metadata.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
server_password.py policy: Add defaults in code (part 5) 2016-06-23 19:25:29 +00:00
server_tags.py policy: clean-up 2016-06-30 19:56:14 +00:00
server_usage.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
servers.py Add policy rule to block image-backed servers with 0 root disk flavor 2018-06-18 14:16:11 -04:00
servers_migrations.py policy: clean-up 2016-06-30 19:56:14 +00:00
services.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
shelve.py policy: clean-up 2016-06-30 19:56:14 +00:00
simple_tenant_usage.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
suspend_server.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
tenant_networks.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
used_limits.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
user_data.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
versions.py policy: clean-up 2016-06-30 19:56:14 +00:00
virtual_interfaces.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
volumes.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00
volumes_attachments.py policy: Add defaults in code (part 6) 2016-06-24 06:18:37 -04:00