* Allow deployers apply RBAC rules to setting the is_public image attribute to True * Add docs for publicize_image and manage_image_cache policies * Fixes bug 960261 Change-Id: I100a6c93377617cc0e774b6ee3a69e857a05c260
2.6 KiB
Policies
Glance's API calls may be restricted to certain sets of users using a Policy configuration file.
This document explains exactly how policies work and how the policy configuration file is constructed.
Basics
A policy is composed of a set of rules that are used by the Policy "Brain" in determining if a particular action may be performed by a particular role.
Constructing a Policy Configuration File
Policy configuration files are simply serialized JSON dictionaries that contain sets of rules. Each top-level key is the name of a rule. Each rule is a string that describes an action that may be performed in the Glance API.
The actions that may have a rule enforced on them are:
get_images
- Allowed to call theGET /images
andGET /images/detail
API callsget_image
- Allowed to call theHEAD /images/<IMAGE_ID>
andGET /images/<IMAGE_ID>
API callsadd_image
- Allowed to call thePOST /images
API callmodify_image
- Allowed to call thePUT /images/<IMAGE_ID>
API callpublicize_image
- Allowed to create or update images with attributeis_public=true
delete_image
- Allowed to call theDELETE /images/<IMAGE_ID>
API callmanage_image_cache
- Allowed to use the image cache management API
To limit an action to a particular role or roles, you list the roles like so :
{
"delete_image": ["role:admin", "role:superuser"]
}
The above would add a rule that only allowed users that had roles of either "admin" or "superuser" to delete an image.
Examples
Example 1. (The default policy configuration)
{ "default": [] }
Note that an empty JSON list means that all methods of the Glance API are callable by anyone.
Example 2. Disallow modification calls to non-admins
{ "default": [], "add_image": ["role:admin"], "modify_image": ["role:admin"], "delete_image": ["role:admin"] }