|
| 1 | +# This policy YAML file implements the "Advanced RBAC" rules for Octavia that |
| 2 | +# were introduced in the Pike release of the Octavia API. |
| 3 | +# |
| 4 | +# These rules require users to have a load-balancer_* role to be able to access |
| 5 | +# the Octavia v2 API. |
| 6 | +# |
| 7 | +# This is stricter than the "Keystone Default Roles" implemented in the code |
| 8 | +# as part of the "Consistent and Secure Default RBAC" OpenStack community goal. |
| 9 | + |
| 10 | +# The default is to not allow access unless the auth_strategy is 'noauth'. |
| 11 | +# Users must be a member of one of the following roles to have access to |
| 12 | +# the load-balancer API: |
| 13 | +# |
| 14 | +# role:load-balancer_observer |
| 15 | +# User has access to load-balancer read-only APIs |
| 16 | +# role:load-balancer_global_observer |
| 17 | +# User has access to load-balancer read-only APIs including resources |
| 18 | +# owned by others. |
| 19 | +# role:load-balancer_member |
| 20 | +# User has access to load-balancer read and write APIs |
| 21 | +# role:load-balancer_admin |
| 22 | +# User is considered an admin for all load-balnacer APIs including |
| 23 | +# resources owned by others. |
| 24 | +# role:admin |
| 25 | +# User is admin to all APIs |
| 26 | + |
| 27 | +"context_is_admin": "role:admin or |
| 28 | + role:load-balancer_admin" |
| 29 | + |
| 30 | +# API access roles |
| 31 | + |
| 32 | +"load-balancer:owner": "project_id:%(project_id)s" |
| 33 | + |
| 34 | +# Note: 'is_admin:True' is a policy rule that takes into account the |
| 35 | +# auth_strategy == noauth configuration setting. |
| 36 | +# It is equivalent to 'rule:context_is_admin or {auth_strategy == noauth}' |
| 37 | + |
| 38 | +"load-balancer:admin": "is_admin:True or |
| 39 | + role:admin or |
| 40 | + role:load-balancer_admin" |
| 41 | + |
| 42 | +"load-balancer:observer_and_owner": "role:load-balancer_observer and |
| 43 | + rule:load-balancer:owner" |
| 44 | + |
| 45 | +"load-balancer:global_observer": "role:load-balancer_global_observer" |
| 46 | + |
| 47 | +"load-balancer:member_and_owner": "role:load-balancer_member and |
| 48 | + rule:load-balancer:owner" |
| 49 | + |
| 50 | +# API access methods |
| 51 | + |
| 52 | +"load-balancer:read": "rule:load-balancer:observer_and_owner or |
| 53 | + rule:load-balancer:global_observer or |
| 54 | + rule:load-balancer:member_and_owner or |
| 55 | + rule:load-balancer:admin" |
| 56 | + |
| 57 | +"load-balancer:read-global": "rule:load-balancer:global_observer or |
| 58 | + rule:load-balancer:admin" |
| 59 | + |
| 60 | +"load-balancer:write": "rule:load-balancer:member_and_owner or |
| 61 | + rule:load-balancer:admin" |
| 62 | + |
| 63 | +"load-balancer:read-quota": "rule:load-balancer:observer_and_owner or |
| 64 | + rule:load-balancer:global_observer or |
| 65 | + rule:load-balancer:member_and_owner or |
| 66 | + role:load-balancer_quota_admin or |
| 67 | + rule:load-balancer:admin" |
| 68 | + |
| 69 | +"load-balancer:read-quota-global": "rule:load-balancer:global_observer or |
| 70 | + role:load-balancer_quota_admin or |
| 71 | + rule:load-balancer:admin" |
| 72 | + |
| 73 | +"load-balancer:write-quota": "role:load-balancer_quota_admin or |
| 74 | + rule:load-balancer:admin" |
0 commit comments