Update paste, policy and rootwrap configurations 2016-10-13
Barbican's default API pipeline is noauth, a variable to toggle between noauth and keystone, 'barbican__keystone_auth' has been added. keystone_authtoken information has been moved to a better home in barbican.conf. python-memcached has also been added to the pip package list since it's a requirement when using keystone authentication with token caching. Change-Id: I5e731d63f442edf970845f2b821b98ce57176e48
This commit is contained in:
parent
221560b759
commit
c5f93b19bf
@ -20,6 +20,9 @@ debug: False
|
|||||||
# Options are 'present' and 'latest'
|
# Options are 'present' and 'latest'
|
||||||
barbican_package_state: "latest"
|
barbican_package_state: "latest"
|
||||||
|
|
||||||
|
# Toggle keystone authentication for barbican
|
||||||
|
barbican_keystone_auth: no
|
||||||
|
|
||||||
## System info
|
## System info
|
||||||
barbican_system_group_name: barbican
|
barbican_system_group_name: barbican
|
||||||
barbican_system_user_name: barbican
|
barbican_system_user_name: barbican
|
||||||
@ -97,8 +100,8 @@ barbican_rabbitmq_vhost: /barbican
|
|||||||
|
|
||||||
# Keystone AuthToken/Middleware
|
# Keystone AuthToken/Middleware
|
||||||
barbican_keystone_auth_plugin: password
|
barbican_keystone_auth_plugin: password
|
||||||
barbican_service_project_domain_name: Default
|
barbican_service_project_domain_id: default
|
||||||
barbican_service_user_domain_name: default
|
barbican_service_user_domain_id: default
|
||||||
barbican_service_project_name: service
|
barbican_service_project_name: service
|
||||||
|
|
||||||
# Apache configuration vars
|
# Apache configuration vars
|
||||||
@ -155,6 +158,7 @@ barbican_pip_packages:
|
|||||||
- pecan
|
- pecan
|
||||||
- pycadf
|
- pycadf
|
||||||
- pycrypto
|
- pycrypto
|
||||||
|
- python-memcached
|
||||||
- PyMySQL
|
- PyMySQL
|
||||||
- pyOpenSSL
|
- pyOpenSSL
|
||||||
- ldap3
|
- ldap3
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
# Disable stderr logging
|
|
||||||
use_stderr = False
|
|
||||||
# default target endpoint type
|
# default target endpoint type
|
||||||
# should match the endpoint type defined in service catalog
|
# should match the endpoint type defined in service catalog
|
||||||
target_endpoint_type = key-manager
|
target_endpoint_type = key-manager
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[composite:main]
|
[composite:main]
|
||||||
use = egg:Paste#urlmap
|
use = egg:Paste#urlmap
|
||||||
/: barbican_version
|
/: barbican_version
|
||||||
/v1: barbican-api-keystone
|
/v1: {{ (barbican_keystone_auth | bool) | ternary('barbican-api-keystone', 'barbican_api') }}
|
||||||
|
|
||||||
# Use this pipeline for Barbican API - versions no authentication
|
# Use this pipeline for Barbican API - versions no authentication
|
||||||
[pipeline:barbican_version]
|
[pipeline:barbican_version]
|
||||||
@ -18,11 +18,11 @@ pipeline = cors unauthenticated-context egg:Paste#cgitb egg:Paste#httpexceptions
|
|||||||
|
|
||||||
#Use this pipeline for keystone auth
|
#Use this pipeline for keystone auth
|
||||||
[pipeline:barbican-api-keystone]
|
[pipeline:barbican-api-keystone]
|
||||||
pipeline = cors keystone_authtoken context apiapp
|
pipeline = cors authtoken context apiapp
|
||||||
|
|
||||||
#Use this pipeline for keystone auth with audit feature
|
#Use this pipeline for keystone auth with audit feature
|
||||||
[pipeline:barbican-api-keystone-audit]
|
[pipeline:barbican-api-keystone-audit]
|
||||||
pipeline = keystone_authtoken context audit apiapp
|
pipeline = authtoken context audit apiapp
|
||||||
|
|
||||||
[app:apiapp]
|
[app:apiapp]
|
||||||
paste.app_factory = barbican.api.app:create_main_app
|
paste.app_factory = barbican.api.app:create_main_app
|
||||||
@ -43,21 +43,8 @@ paste.filter_factory = barbican.api.middleware.context:ContextMiddleware.factory
|
|||||||
paste.filter_factory = keystonemiddleware.audit:filter_factory
|
paste.filter_factory = keystonemiddleware.audit:filter_factory
|
||||||
audit_map_file = /etc/barbican/api_audit_map.conf
|
audit_map_file = /etc/barbican/api_audit_map.conf
|
||||||
|
|
||||||
[filter:keystone_authtoken]
|
[filter:authtoken]
|
||||||
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
|
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
|
||||||
#need ability to re-auth a token, thus admin url
|
|
||||||
identity_uri = {{ keystone_service_adminuri }}
|
|
||||||
admin_tenant_name = {{ barbican_service_project_name }}
|
|
||||||
admin_user = {{ barbican_service_user_name }}
|
|
||||||
admin_password = {{ barbican_service_password }}
|
|
||||||
auth_version = v3.0
|
|
||||||
#delay failing perhaps to log the unauthorized request in barbican ..
|
|
||||||
#delay_auth_decision = true
|
|
||||||
# signing_dir is configurable, but the default behavior of the authtoken
|
|
||||||
# middleware should be sufficient. It will create a temporary directory
|
|
||||||
# for the user the barbican process is running as.
|
|
||||||
#signing_dir = /var/barbican/keystone-signing
|
|
||||||
|
|
||||||
|
|
||||||
[filter:profile]
|
[filter:profile]
|
||||||
use = egg:repoze.profile
|
use = egg:repoze.profile
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
# Disable stderr logging
|
# Disable stderr logging
|
||||||
use_stderr = False
|
use_stderr = False
|
||||||
@ -137,6 +139,33 @@ rabbit_hosts={{ rabbitmq_servers }}
|
|||||||
# notification_driver = messagingv2
|
# notification_driver = messagingv2
|
||||||
# notification_driver = log
|
# notification_driver = log
|
||||||
|
|
||||||
|
{% if barbican_keystone_auth | bool %}
|
||||||
|
[keystone_authtoken]
|
||||||
|
insecure = {{ keystone_service_internaluri_insecure | bool }}
|
||||||
|
auth_type = {{ barbican_keystone_auth_plugin }}
|
||||||
|
signing_dir = {{ barbican_system_user_home }}/cache/api
|
||||||
|
auth_url = {{ keystone_service_adminurl }}
|
||||||
|
auth_uri = {{ keystone_service_internaluri }}
|
||||||
|
project_domain_id = {{ barbican_service_project_domain_id }}
|
||||||
|
user_domain_id = {{ barbican_service_user_domain_id }}
|
||||||
|
project_name = {{ barbican_service_project_name }}
|
||||||
|
username = {{ barbican_service_user_name }}
|
||||||
|
password = {{ barbican_service_password }}
|
||||||
|
region_name = {{ keystone_service_region }}
|
||||||
|
|
||||||
|
memcached_servers = {{ memcached_servers }}
|
||||||
|
|
||||||
|
token_cache_time = 300
|
||||||
|
revocation_cache_time = 60
|
||||||
|
|
||||||
|
# if your memcached server is shared, use these settings to avoid cache poisoning
|
||||||
|
memcache_security_strategy = ENCRYPT
|
||||||
|
memcache_secret_key = {{ memcached_encryption_key }}
|
||||||
|
|
||||||
|
# if your keystone deployment uses PKI, and you value security over performance:
|
||||||
|
check_revocations_for_cached = False
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
# ======== OpenStack policy - oslo_policy ===============
|
# ======== OpenStack policy - oslo_policy ===============
|
||||||
|
|
||||||
[oslo_policy]
|
[oslo_policy]
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
"secret:decrypt": "rule:secret_decrypt_non_private_read or rule:secret_project_creator or rule:secret_project_admin or rule:secret_acl_read",
|
"secret:decrypt": "rule:secret_decrypt_non_private_read or rule:secret_project_creator or rule:secret_project_admin or rule:secret_acl_read",
|
||||||
"secret:get": "rule:secret_non_private_read or rule:secret_project_creator or rule:secret_project_admin or rule:secret_acl_read",
|
"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:put": "rule:admin_or_creator and rule:secret_project_match",
|
||||||
"secret:delete": "rule:admin and rule:secret_project_match",
|
"secret:delete": "rule:secret_project_admin or rule:secret_project_creator",
|
||||||
"secrets:post": "rule:admin_or_creator",
|
"secrets:post": "rule:admin_or_creator",
|
||||||
"secrets:get": "rule:all_but_audit",
|
"secrets:get": "rule:all_but_audit",
|
||||||
"orders:post": "rule:admin_or_creator",
|
"orders:post": "rule:admin_or_creator",
|
||||||
@ -38,14 +38,16 @@
|
|||||||
"order:get": "rule:all_users",
|
"order:get": "rule:all_users",
|
||||||
"order:put": "rule:admin_or_creator",
|
"order:put": "rule:admin_or_creator",
|
||||||
"order:delete": "rule:admin",
|
"order:delete": "rule:admin",
|
||||||
"consumer:get": "rule:all_users",
|
"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:get": "rule:all_users",
|
"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",
|
"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",
|
||||||
"consumers:delete": "rule:admin",
|
"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",
|
||||||
"containers:post": "rule:admin_or_creator",
|
"containers:post": "rule:admin_or_creator",
|
||||||
"containers:get": "rule:all_but_audit",
|
"containers:get": "rule:all_but_audit",
|
||||||
"container:get": "rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read",
|
"container:get": "rule:container_non_private_read or rule:container_project_creator or rule:container_project_admin or rule:container_acl_read",
|
||||||
"container:delete": "rule:admin",
|
"container:delete": "rule:container_project_admin or rule:container_project_creator",
|
||||||
|
"container_secret:post": "rule:admin",
|
||||||
|
"container_secret:delete": "rule:admin",
|
||||||
"transport_key:get": "rule:all_users",
|
"transport_key:get": "rule:all_users",
|
||||||
"transport_key:delete": "rule:admin",
|
"transport_key:delete": "rule:admin",
|
||||||
"transport_keys:get": "rule:all_users",
|
"transport_keys:get": "rule:all_users",
|
||||||
@ -78,5 +80,11 @@
|
|||||||
"secret_meta:get": "rule:all_but_audit",
|
"secret_meta:get": "rule:all_but_audit",
|
||||||
"secret_meta:post": "rule:admin_or_creator",
|
"secret_meta:post": "rule:admin_or_creator",
|
||||||
"secret_meta:put": "rule:admin_or_creator",
|
"secret_meta:put": "rule:admin_or_creator",
|
||||||
"secret_meta:delete": "rule:admin_or_creator"
|
"secret_meta:delete": "rule:admin_or_creator",
|
||||||
|
"secretstores:get": "rule:admin",
|
||||||
|
"secretstores:get_global_default": "rule:admin",
|
||||||
|
"secretstores:get_preferred": "rule:admin",
|
||||||
|
"secretstore_preferred:post": "rule:admin",
|
||||||
|
"secretstore_preferred:delete": "rule:admin",
|
||||||
|
"secretstore:get": "rule:admin"
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ barbican_developer_mode: true
|
|||||||
barbican_galera_address: "{{ hostvars[groups['galera_all'][0]]['ansible_host'] }}"
|
barbican_galera_address: "{{ hostvars[groups['galera_all'][0]]['ansible_host'] }}"
|
||||||
barbican_galera_database: barbican
|
barbican_galera_database: barbican
|
||||||
barbican_git_install_branch: master
|
barbican_git_install_branch: master
|
||||||
|
barbican_keystone_auth: yes
|
||||||
barbican_rabbitmq_password: secrete
|
barbican_rabbitmq_password: secrete
|
||||||
barbican_rabbitmq_userid: barbican
|
barbican_rabbitmq_userid: barbican
|
||||||
barbican_rabbitmq_vhost: /barbican
|
barbican_rabbitmq_vhost: /barbican
|
||||||
|
Loading…
x
Reference in New Issue
Block a user