Policy configuration

Warning

JSON formatted policy file is deprecated since Barbican 12.0.0 (Wallaby). This oslopolicy-convert-json-to-yaml tool will migrate your existing JSON-formatted policy file to YAML in a backward-compatible way.

Configuration

Note

The auto-generated configuration reference may show the default values of enforce_new_defaults and enforce_scope as True (the oslo.policy library default). However, Barbican overrides both to False at runtime. To opt in to the new secure RBAC defaults, explicitly set both options to True in the [oslo_policy] section of barbican.conf.

The following is an overview of all available policies in Barbican. For a sample configuration file.

barbican

secret_project_match
Default:

project_id:%(target.secret.project_id)s

(no description provided)

secret_project_reader
Default:

role:reader and rule:secret_project_match

(no description provided)

secret_project_member
Default:

role:member and rule:secret_project_match

(no description provided)

secret_project_admin
Default:

role:admin and rule:secret_project_match

(no description provided)

secret_owner
Default:

user_id:%(target.secret.creator_id)s

(no description provided)

secret_is_not_private
Default:

True:%(target.secret.read_project_access)s

(no description provided)

secret_acl_read
Default:

'read':%(target.secret.read)s

(no description provided)

container_project_match
Default:

project_id:%(target.container.project_id)s

(no description provided)

container_project_member
Default:

role:member and rule:container_project_match

(no description provided)

container_project_admin
Default:

role:admin and rule:container_project_match

(no description provided)

container_owner
Default:

user_id:%(target.container.creator_id)s

(no description provided)

container_is_not_private
Default:

True:%(target.container.read_project_access)s

(no description provided)

container_acl_read
Default:

'read':%(target.container.read)s

(no description provided)

order_project_match
Default:

project_id:%(target.order.project_id)s

(no description provided)

order_project_member
Default:

role:member and rule:order_project_match

(no description provided)

audit
Default:

role:audit

(no description provided)

observer
Default:

role:observer

(no description provided)

creator
Default:

role:creator

(no description provided)

admin
Default:

role:admin

(no description provided)

service_admin
Default:

role:key-manager:service-admin

(no description provided)

all_users
Default:

rule:admin or rule:observer or rule:creator or rule:audit or rule:service_admin

(no description provided)

all_but_audit
Default:

rule:admin or rule:observer or rule:creator

(no description provided)

admin_or_creator
Default:

rule:admin or rule:creator

(no description provided)

secret_creator_user
Default:

user_id:%(target.secret.creator_id)s

(no description provided)

secret_private_read
Default:

'False':%(target.secret.read_project_access)s

(no description provided)

secret_non_private_read
Default:

rule:all_users and rule:secret_project_match and not rule:secret_private_read

(no description provided)

secret_decrypt_non_private_read
Default:

rule:all_but_audit and rule:secret_project_match and not rule:secret_private_read

(no description provided)

secret_project_creator
Default:

rule:creator and rule:secret_project_match and rule:secret_creator_user

(no description provided)

secret_project_creator_role
Default:

rule:creator and rule:secret_project_match

(no description provided)

container_private_read
Default:

'False':%(target.container.read_project_access)s

(no description provided)

container_creator_user
Default:

user_id:%(target.container.creator_id)s

(no description provided)

container_non_private_read
Default:

rule:all_users and rule:container_project_match and not rule:container_private_read

(no description provided)

container_project_creator
Default:

rule:creator and rule:container_project_match and rule:container_creator_user

(no description provided)

container_project_creator_role
Default:

rule:creator and rule:container_project_match

(no description provided)

secret_acls:get
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • GET /v1/secrets/{secret-id}/acl

Scope Types:
  • project

Retrieve the ACL settings for a given secret.If no ACL is defined for that secret, then Default ACL is returned.

secret_acls:delete
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • DELETE /v1/secrets/{secret-id}/acl

Scope Types:
  • project

Delete the ACL settings for a given secret.

secret_acls:put_patch
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • PUT /v1/secrets/{secret-id}/acl

  • PATCH /v1/secrets/{secret-id}/acl

Scope Types:
  • project

Create new, replaces, or updates existing ACL for a given secret.

container_acls:get
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private))

Operations:
  • GET /v1/containers/{container-id}/acl

Scope Types:
  • project

Retrieve the ACL settings for a given container.

container_acls:delete
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private))

Operations:
  • DELETE /v1/containers/{container-id}/acl

Scope Types:
  • project

Delete ACL for a given container. No content is returned in the case of successful deletion.

container_acls:put_patch
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private))

Operations:
  • PUT /v1/containers/{container-id}/acl

  • PATCH /v1/containers/{container-id}/acl

Scope Types:
  • project

Create new or replaces existing ACL for a given container.

consumer:get
Default:

True:%(enforce_new_defaults)s and (role:admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private) or rule:container_acl_read)

Operations:
  • GET /v1/containers/{container-id}/consumers/{consumer-id}

Scope Types:
  • project

DEPRECATED: show information for a specific consumer

container_consumers:get
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private) or rule:container_acl_read)

Operations:
  • GET /v1/containers/{container-id}/consumers

Scope Types:
  • project

List a containers consumers.

container_consumers:post
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private) or rule:container_acl_read)

Operations:
  • POST /v1/containers/{container-id}/consumers

Scope Types:
  • project

Creates a consumer.

container_consumers:delete
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private) or rule:container_acl_read)

Operations:
  • DELETE /v1/containers/{container-id}/consumers

Scope Types:
  • project

Deletes a consumer.

secret_consumers:get
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private) or rule:secret_acl_read)

Operations:
  • GET /v1/secrets/{secret-id}/consumers

Scope Types:
  • project

List consumers for a secret.

secret_consumers:post
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private) or rule:secret_acl_read)

Operations:
  • POST /v1/secrets/{secrets-id}/consumers

Scope Types:
  • project

Creates a consumer.

secret_consumers:delete
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private) or rule:secret_acl_read)

Operations:
  • DELETE /v1/secrets/{secrets-id}/consumers

Scope Types:
  • project

Deletes a consumer.

containers:post
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • POST /v1/containers

Scope Types:
  • project

Creates a container.

containers:get
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • GET /v1/containers

Scope Types:
  • project

Lists a projects containers.

container:get
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private) or rule:container_acl_read)

Operations:
  • GET /v1/containers/{container-id}

Scope Types:
  • project

Retrieves a single container.

container:delete
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private))

Operations:
  • DELETE /v1/containers/{uuid}

Scope Types:
  • project

Deletes a container.

container_secret:post
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private))

Operations:
  • POST /v1/containers/{container-id}/secrets

Scope Types:
  • project

Add a secret to an existing container.

container_secret:delete
Default:

True:%(enforce_new_defaults)s and (rule:container_project_admin or (rule:container_project_member and rule:container_owner) or (rule:container_project_member and  rule:container_is_not_private))

Operations:
  • DELETE /v1/containers/{container-id}/secrets/{secret-id}

Scope Types:
  • project

Remove a secret from a container.

orders:get
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • GET /v1/orders

Scope Types:
  • project

Gets list of all orders associated with a project.

orders:post
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • POST /v1/orders

Scope Types:
  • project

Creates an order.

orders:put
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • PUT /v1/orders

Scope Types:
  • project

Unsupported method for the orders API.

order:get
Default:

True:%(enforce_new_defaults)s and rule:order_project_member

Operations:
  • GET /v1/orders/{order-id}

Scope Types:
  • project

Retrieves an orders metadata.

order:delete
Default:

True:%(enforce_new_defaults)s and rule:order_project_member

Operations:
  • DELETE /v1/orders/{order-id}

Scope Types:
  • project

Deletes an order.

quotas:get
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/quotas

Scope Types:
  • project

List quotas for the project the user belongs to.

project_quotas:get
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • GET /v1/project-quotas

  • GET /v1/project-quotas/{uuid}

Scope Types:
  • project

List quotas for the specified project.

project_quotas:put
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • PUT /v1/project-quotas/{uuid}

Scope Types:
  • project

Create or update the configured project quotas for the project with the specified UUID.

project_quotas:delete
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • DELETE /v1/quotas}

Scope Types:
  • project

Delete the project quotas configuration for the project with the requested UUID.

secret_meta:get
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private) or rule:secret_acl_read)

Operations:
  • GET /v1/secrets/{secret-id}/metadata

  • GET /v1/secrets/{secret-id}/metadata/{meta-key}

Scope Types:
  • project

metadata/: Lists a secrets user-defined metadata. || metadata/{key}: Retrieves a secrets user-added metadata.

secret_meta:post
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • POST /v1/secrets/{secret-id}/metadata/{meta-key}

Scope Types:
  • project

Adds a new key/value pair to the secrets user-defined metadata.

secret_meta:put
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • PUT /v1/secrets/{secret-id}/metadata

  • PUT /v1/secrets/{secret-id}/metadata/{meta-key}

Scope Types:
  • project

metadata/: Sets the user-defined metadata for a secret || metadata/{key}: Updates an existing key/value pair in the secrets user-defined metadata.

secret_meta:delete
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • DELETE /v1/secrets/{secret-id}/metadata/{meta-key}

Scope Types:
  • project

Delete secret user-defined metadata by key.

secret:decrypt
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private) or rule:secret_acl_read)

Operations:
  • GET /v1/secrets/{uuid}/payload

Scope Types:
  • project

Retrieve a secrets payload.

secret:get
Default:

True:%(enforce_new_defaults)s and (role:admin or rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private) or rule:secret_acl_read)

Operations:
  • GET /v1/secrets/{secret-id}

Scope Types:
  • project

Retrieves a secrets metadata.

secret:put
Default:

True:%(enforce_new_defaults)s and (rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • PUT /v1/secrets/{secret-id}

Scope Types:
  • project

Add the payload to an existing metadata-only secret.

secret:delete
Default:

True:%(enforce_new_defaults)s and (role:admin or rule:secret_project_admin or (rule:secret_project_member and rule:secret_owner) or (rule:secret_project_member and rule:secret_is_not_private))

Operations:
  • DELETE /v1/secrets/{secret-id}

Scope Types:
  • project

Delete a secret by uuid.

secrets:post
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • POST /v1/secrets

Scope Types:
  • project

Creates a Secret entity.

secrets:get
Default:

True:%(enforce_new_defaults)s and role:member

Operations:
  • GET /v1/secrets

Scope Types:
  • project

Lists a projects secrets.

secretstores:get
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/secret-stores

Scope Types:
  • project

Get list of available secret store backends.

secretstores:get_global_default
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/secret-stores/global-default

Scope Types:
  • project

Get a reference to the secret store that is used as default secret store backend for the deployment.

secretstores:get_preferred
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/secret-stores/preferred

Scope Types:
  • project

Get a reference to the preferred secret store if assigned previously.

secretstore_preferred:post
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • POST /v1/secret-stores/{ss-id}/preferred

Scope Types:
  • project

Set a secret store backend to be preferred store backend for their project.

secretstore_preferred:delete
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • DELETE /v1/secret-stores/{ss-id}/preferred

Scope Types:
  • project

Remove preferred secret store backend setting for their project.

secretstore:get
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/secret-stores/{ss-id}

Scope Types:
  • project

Get details of secret store by its ID.

transport_key:get
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/transport_keys/{key-id}}

Scope Types:
  • project

Get a specific transport key.

transport_key:delete
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • DELETE /v1/transport_keys/{key-id}

Scope Types:
  • project

Delete a specific transport key.

transport_keys:get
Default:

True:%(enforce_new_defaults)s and role:reader

Operations:
  • GET /v1/transport_keys

Scope Types:
  • project

Get a list of all transport keys.

transport_keys:post
Default:

True:%(enforce_new_defaults)s and role:admin

Operations:
  • POST /v1/transport_keys

Scope Types:
  • project

Create a new transport key.