If an endpoint requests a policy file and none is specified for it or for its service, return a default policy file.
When an endpoint needs to enforce policy, it has to get the policy rules file from somewhere. Currently, the OpenStack projects maintain a policy file in their own git repository. In order to make it possible for an endpoint to fetch its policy from Keystone, Keystone needs to have an appropriate policy file available. With the specification to merge the existing policy files into a single, namespaced policy file, there will be an obvious default policy file to return for services requesting policy from Keystone. This specification is https://review.openstack.org/#/c/134656/
Allow the definition of a default policy file to be returned from the Keystone policy GET API if there is no policy file that explicitly matches the service or endpoint.
The Policy rules are all namespaced. For example, the identity services has “identity:create_user”. This means that multiple services can work off a single, unified policy file. If the service requires a rule that does not match and explicit rule, it will use the default rule.
Keep the policy files split into their component parts by service and require each service have a default policy file specified.
Describe any potential security impact on the system. Some of the items to consider include:
Existing notifications for changes of policy should remain unchanged.
Aside from the API, are there other ways a user will interact with this feature?
This change alone should have no performance impact. The larger policy files might lead to longer processing times of RBAC, but the changes should be immaterial.
Discuss things that will affect how you deploy and configure OpenStack that have not already been mentioned, such as:
Additional workflow is going to be required to maintain the default configuration file in the face of a growing set of services.
Should be performed in a single commit * Create config option * Add code to endpoint_policy extension to return default policy as needed
Configuration value will need to be documented.