参考

客户端

barbicanclient.client.Client(version=None, session=None, *args, **kwargs)

用于与 barbican 服务交互的 Barbican 客户端。

参数:
  • session – 可以已认证,也可以未认证的 keystoneauth1.session.Session 实例。在使用未认证的 Session 时,必须提供一些额外的参数。如果不提供 session,则默认使用未认证的 Session。(可选)

  • endpoint – Barbican endpoint url 覆盖。当未提供 session,或使用未认证的 session 时,必需。在使用已认证的 session 时,客户端将尝试从 Keystone 服务目录获取 endpoint。(可选)

  • project_id – 用于 Barbican 上下文的项目 ID。当未提供 session,或使用未认证的 session 时,必需。在使用已认证的 session 时,项目 ID 将由认证机制提供,此参数将被忽略。(可选)

  • verify – 当未提供 session 时,客户端将创建一个未认证的 session。此参数传递给创建的 session。如果设置为 False,则允许 barbicanclient 执行“不安全”TLS (https) 请求。服务器的证书将不会针对任何证书颁发机构进行验证。(可选)警告:应谨慎使用此选项。

  • version – 在使用已认证的 keystone session 时,用作 endpoint 过滤器。在使用未认证的 keystone session 时,此值将附加到必需的 endpoint url 覆盖。默认为 ‘v1’。

  • service_type – 在使用已认证的 keystone session 时,用作 endpoint 过滤器。默认为 ‘key-manager’。

  • service_name – 在使用已认证的 keystone session 时,用作 endpoint 过滤器。

  • interface – 在使用已认证的 keystone session 时,用作 endpoint 过滤器。默认为 ‘public’。

  • region_name – 在使用已认证的 keystone session 时,用作 endpoint 过滤器。

  • microversion – 指定要使用的 API Microversion。默认为 ‘1.1’。

密钥

class barbicanclient.v1.secrets.SecretManager(api)

密钥实体的实体管理器

create(name=None, payload=None, payload_content_type=None, payload_content_encoding=None, algorithm=None, bit_length=None, secret_type=None, mode=None, expiration=None)

创建新的 Secret 对象的工厂方法

此方法返回的密钥尚未存储在 Barbican 服务中。

参数:
  • name – 密钥的友好名称

  • payload – 未加密的密钥数据

  • payload_content_type – 已弃用:密钥数据的格式/类型。设置此项可能导致意外结果。请参阅 Launchpad Bug #1419166。

  • payload_content_encoding – 已弃用:密钥数据的编码。设置此项可能导致意外结果。请参阅 Launchpad Bug #1419166。

  • algorithm – 与此密钥关联的算法

  • bit_length – 此密钥的位长度

  • mode – 此密钥使用的算法模式

  • secret_type – 此密钥的密钥类型

  • expiration – 密钥的到期时间,ISO 8601 格式

返回值:

一个新的 Secret 对象

返回类型:

barbicanclient.v1.secrets.Secret

引发:
delete(secret_ref, force=False)

从 Barbican 删除密钥

参数:
  • secret_ref – 密钥的完整 HATEOAS 引用,或 UUID

  • force – 如果为 true,则强制删除具有消费者的密钥

引发:
get(secret_ref, payload_content_type=None)

从 Barbican 检索现有密钥

参数:
  • secret_ref (str) – 密钥的完整 HATEOAS 引用,或 UUID

  • payload_content_type (str) – 已弃用:用于 payload 解密的 content type。设置此项可能导致意外结果。请参阅 Launchpad Bug #1419166。

返回值:

从 Barbican 检索的 Secret 对象

返回类型:

barbicanclient.v1.secrets.Secret

引发:
list(limit=10, offset=0, name=None, algorithm=None, mode=None, bits=0, secret_type=None, created=None, updated=None, expiration=None, sort=None)

列出项目的密钥

此方法使用 limit 和 offset 参数进行分页,并支持过滤。

时间过滤器(created、updated 和 expiration)预计是 ISO 8601 格式的字符串,可以以比较运算符为前缀:‘gt:’(大于)、‘gte:’(大于或等于)、‘lt:’(小于)或 ‘lte:’(小于或等于)。

参数:
  • limit – 返回的最大密钥数

  • offset – 开始列出的密钥偏移量

  • name – 列表的名称过滤器

  • algorithm – 列表的算法过滤器

  • mode – 列表的模式过滤器

  • bits – 列表的位过滤器

  • secret_type – 列表的密钥类型过滤器

  • created – 列表的创建时间过滤器,ISO 8601 格式的字符串,可以选择以 ‘gt:’、‘gte:’、‘lt:’ 或 ‘lte:’ 为前缀

  • updated – 列表的更新时间过滤器,ISO 8601 格式的字符串,可以选择以 ‘gt:’、‘gte:’、‘lt:’ 或 ‘lte:’ 为前缀

  • expiration – 列表的到期时间过滤器,ISO 8601 格式的字符串,可以选择以 ‘gt:’、‘gte:’、‘lt:’ 或 ‘lte:’ 为前缀

  • sort – 确定返回列表的排序顺序,一个以逗号分隔的排序键字符串(‘created’、‘expiration’、‘mode’、‘name’、‘secret_type’、‘status’ 或 ‘updated’),每个键后附加方向(‘:asc’ 或 ‘:desc’)

返回值:

满足提供的过滤条件的 Secret 对象列表。

返回类型:

列表

引发:
list_consumers(secret_ref, limit=10, offset=0)

列出密钥的消费者

参数:
  • secret_ref – 密钥的完整 HATEOAS 引用,或 UUID

  • limit – 返回的最大消费者数

  • offset – 开始列出的密钥偏移量

引发:
register_consumer(secret_ref, service, resource_type, resource_id)

将消费者添加到密钥

参数:
  • secret_ref – 密钥的完整 HATEOAS 引用,或 UUID

  • service – 消费服务的名称

  • resource_type – 消费资源的类型

  • resource_id – 消费资源的 ID

返回值:

get() 方法的密钥对象

引发:
remove_consumer(secret_ref, service, resource_type, resource_id)

从密钥中删除消费者

参数:
  • secret_ref – 密钥的完整 HATEOAS 引用,或 UUID

  • service – 之前消费服务的名称

  • resource_type – 之前消费资源的类型

  • resource_id – 之前消费资源的 ID

引发:
update(secret_ref, payload=None)

更新 Barbican 中的现有密钥

参数:
  • secret_ref (str) – 密钥的完整 HATEOAS 引用,或 UUID

  • payload (str) – 要添加到密钥的新 payload

引发:
class barbicanclient.v1.secrets.Secret(api, name=None, expiration=None, algorithm=None, bit_length=None, mode=None, payload=None, payload_content_type=None, payload_content_encoding=None, secret_ref=None, created=None, updated=None, content_types=None, status=None, secret_type=None, creator_id=None, consumers=None)

Barbican 管理的密钥

密钥代表存储在 Barbican 服务中的密钥、凭证和其他敏感数据。

不应直接实例化密钥对象。

应使用 createget 方法 barbicanclient.secrets.SecretManager 代替。

property acls

获取此密钥的 ACL 设置。

delete()

从 Barbican 删除密钥

property payload

延迟加载的属性,保存未加密的数据

store()

将密钥存储在 Barbican 中。

新的密钥对象在调用此方法之前不会持久化到 Barbican 中。

引发:

PayloadException

update()

更新 Barbican 中的密钥。

订单

class barbicanclient.v1.orders.OrderManager(api)

订单实体的实体管理器

create_asymmetric(name=None, algorithm=None, bit_length=None, pass_phrase=None, payload_content_type=None, expiration=None)

用于 AsymmetricOrder 对象的工厂方法

AsymmetricOrder 对象在此方法返回后尚未提交到 Barbican 服务。

参数:
  • name – 要创建的容器的友好名称

  • algorithm – 与此密钥关联的算法

  • bit_length – 此密钥的位长度

  • pass_phrase – 可选密码短语

  • payload_content_type – 密钥数据的格式/类型

  • expiration – 密钥的到期时间,ISO 8601 格式

返回值:

AsymmetricOrder

返回类型:

barbicanclient.v1.orders.AsymmetricOrder

引发:
create_key(name=None, algorithm=None, bit_length=None, mode=None, payload_content_type=None, expiration=None)

用于 KeyOrder 对象的工厂方法

KeyOrder 对象在此方法返回后尚未提交到 Barbican 服务。

参数:
  • name – 要创建的密钥的友好名称

  • algorithm – 与此密钥关联的算法

  • bit_length – 此密钥的位长度

  • mode – 此密钥使用的算法模式

  • payload_content_type – 密钥数据的格式/类型

  • expiration – 密钥的到期时间,ISO 8601 格式

返回值:

KeyOrder

返回类型:

barbicanclient.v1.orders.KeyOrder

引发:
delete(order_ref)

从 Barbican 删除订单

参数:

order_ref – 订单的完整 HATEOAS 引用,或 UUID

get(order_ref)

从 Barbican 检索现有订单

参数:

order_ref – 订单的完整 HATEOAS 引用,或 UUID

返回值:

订单的适当子类型的实例

引发:
list(limit=10, offset=0)

列出项目的订单

此方法使用 limit 和 offset 参数进行分页。

参数:
  • limit – 返回的最大订单数

  • offset – 开始列出的订单偏移量

返回值:

订单对象列表

引发:
class barbicanclient.v1.orders.Order(api, type, status=None, created=None, updated=None, meta=None, order_ref=None, error_status_code=None, error_reason=None, sub_status=None, sub_status_message=None, creator_id=None)

包含通用功能的基类订单对象

应将此视为不应直接实例化的抽象类。

delete()

从 Barbican 删除订单

submit()

将订单提交到 Barbican。

新的订单对象在调用此方法之前不会持久化到 Barbican 中。

class barbicanclient.v1.orders.KeyOrder(api, name=None, algorithm=None, bit_length=None, mode=None, expiration=None, payload_content_type=None, status=None, created=None, updated=None, order_ref=None, secret_ref=None, error_status_code=None, error_reason=None, sub_status=None, sub_status_message=None, creator_id=None)

KeyOrder 可用于从 Barbican 请求随机密钥材料

property mode

此密钥使用的加密模式

例如,当请求将在 CBC 模式下用于 AES 加密的密钥时,可以将模式设置为“CBC”。

class barbicanclient.v1.orders.AsymmetricOrder(api, name=None, algorithm=None, bit_length=None, mode=None, passphrase=None, pass_phrase=None, expiration=None, payload_content_type=None, status=None, created=None, updated=None, order_ref=None, container_ref=None, error_status_code=None, error_reason=None, sub_status=None, sub_status_message=None, creator_id=None)
property pass_phrase

用于密码保护的非对称密钥的密码短语

容器

class barbicanclient.v1.containers.ContainerManager(api)

容器实体的EntityManager

您应该使用客户端暴露的ContainerManager,而不必自己实例化。

create(name=None, secrets=None)

用于Container对象的工厂方法

Container对象通过此方法返回后,尚未存储在Barbican中。

参数:
  • name – 容器的友好名称

  • secrets – 创建容器时填充的密钥

返回值:

容器

返回类型:

barbicanclient.v1.containers.Container

引发:
create_certificate(name=None, certificate=None, intermediates=None, private_key=None, private_key_passphrase=None)

用于CertificateContainer对象的工厂方法

CertificateContainer对象通过此方法返回后,尚未存储在Barbican中。

参数:
  • name – CertificateContainer的友好名称

  • certificate – 包含证书的密钥对象

  • intermediates – 包含中间证书的密钥对象

  • private_key – 包含私钥的密钥对象

  • private_key_passphrase – 包含密码短语的密钥对象

返回值:

CertificateContainer

返回类型:

barbicanclient.v1.containers.CertificateContainer

引发:
create_rsa(name=None, public_key=None, private_key=None, private_key_passphrase=None)

用于RSAContainer对象的工厂方法

RSAContainer对象通过此方法返回后,尚未存储在Barbican中。

参数:
  • name – RSAContainer的友好名称

  • public_key – 包含公钥的密钥对象

  • private_key – 包含私钥的密钥对象

  • private_key_passphrase – 包含密码短语的密钥对象

返回值:

RSAContainer

返回类型:

barbicanclient.v1.containers.RSAContainer

引发:
delete(container_ref)

从Barbican删除容器

参数:

container_ref – 容器的完整HATEOAS引用,或UUID

引发:
get(container_ref)

从Barbican检索现有容器

参数:

container_ref – 容器的完整HATEOAS引用,或UUID

返回值:

容器对象或适当类型的子类

list(limit=10, offset=0, name=None, type=None)

列出项目的容器。

此方法使用 limit 和 offset 参数进行分页。

参数:
  • limit – 返回的最大容器数

  • offset – 从哪个容器开始列出

  • name – 列表的名称过滤器

  • type – 列表的类型过滤器

返回值:

容器元数据对象列表

引发:
register_consumer(container_ref, name, url)

将消费者添加到容器

参数:
  • container_ref – 容器的完整HATEOAS引用,或UUID

  • name – 消耗服务的名称

  • url – 消耗资源的URL

返回值:

get()方法返回的容器对象

引发:
remove_consumer(container_ref, name, url)

从容器中删除消费者

参数:
  • container_ref – 容器的完整HATEOAS引用,或UUID

  • name – 之前消耗服务的名称

  • url – 之前消耗资源的URL

引发:
class barbicanclient.v1.containers.Container(api, name=None, secrets=None, consumers=None, container_ref=None, created=None, updated=None, status=None, secret_refs=None)

容器是密钥的通用分组

property acls

获取此容器的ACL设置。

delete()

从Barbican删除容器

property secrets

容器中的密钥列表

store()

将容器存储在Barbican中

class barbicanclient.v1.containers.RSAContainer(api, name=None, public_key=None, private_key=None, private_key_passphrase=None, consumers=[], container_ref=None, created=None, updated=None, status=None, public_key_ref=None, private_key_ref=None, private_key_passphrase_ref=None)
property private_key

包含私钥的密钥

property private_key_passphrase

包含密码短语的密钥

property public_key

包含公钥的密钥

class barbicanclient.v1.containers.CertificateContainer(api, name=None, certificate=None, intermediates=None, private_key=None, private_key_passphrase=None, consumers=[], container_ref=None, created=None, updated=None, status=None, certificate_ref=None, intermediates_ref=None, private_key_ref=None, private_key_passphrase_ref=None)
property certificate

包含证书的密钥

property intermediates

包含中间证书的密钥

property private_key

包含私钥的密钥

property private_key_passphrase

包含密码的密钥

证书颁发机构

class barbicanclient.v1.cas.CAManager(api)

密钥实体的实体管理器

get(ca_ref)

从 Barbican 检索现有的 CA

参数:

ca_ref (str) – CA 的完整 HATEOAS 引用

返回值:

从 Barbican 检索的 CA 对象

返回类型:

barbicanclient.v1.cas.CA

引发:
list(limit=10, offset=0, name=None)

列出项目的 CA

此方法使用 limit 和 offset 参数进行分页,并支持过滤。

参数:
  • limit – 返回的 CA 的最大数量

  • offset – 开始列出的密钥偏移量

  • name – 列表的名称过滤器

返回值:

满足所提供筛选条件的 CA 对象列表。

返回类型:

列表

引发:
class barbicanclient.v1.cas.CA(api, meta=None, expiration=None, plugin_name=None, plugin_ca_id=None, ca_ref=None, created=None, updated=None, status=None, creator_id=None)

证书颁发机构

CA 代表与 Barbican 服务配置为交互的证书颁发机构或子 CA。

证书颁发机构

不应直接实例化 CA 对象。您应该使用 createget 方法 barbicanclient.cas.CAManager 代替。

访问控制列表

class barbicanclient.v1.acls.ACLManager(api)

Secret 或 Container ACL 实体的实体管理器

create(entity_ref=None, users=None, project_access=None, operation_type='read')

创建 ACL 实体的工厂方法。

ACL 对象由此方法返回,尚未存储在 Barbican 中。

输入 entity_ref 用于确定 ACL 对象类型是否需要为 barbicanclient.acls.SecretACLbarbicanclient.acls.ContainerACL

参数:
  • entity_ref (str) – Secret 或 container 的完整 HATEOAS 引用

  • users (List or None) – 用于 ACL 的 Keystone 用户 ID 列表。

  • project_access (bool) – 标志,指示项目访问行为

  • operation_type (str) – 类型,指示此 ACL 定义用于 Barbican 操作的哪一类,例如“read”操作

返回值:

ACL 对象实例

返回类型:

barbicanclient.v1.acls.SecretACLbarbicanclient.v1.acls.ContainerACL

get(entity_ref)

检索在 Barbican 中找到的 secret 或 container 的现有 ACL

参数:

entity_ref (str) – Secret 或 container 的完整 HATEOAS 引用。

返回值:

ACL 实体对象实例

返回类型:

barbicanclient.v1.acls.SecretACLbarbicanclient.v1.acls.ContainerACL

引发:
class barbicanclient.v1.acls.SecretACL(api, entity_ref, users=None, project_access=None, operation_type='read', created=None, updated=None)

secret 的 ACL 实体

secret 或 container 的基本 ACL 实体实例。

提供 ACL 数据参数以设置给定 operation_type 的 ACL 设置。

要为其他 operation_type 添加 ACL 设置,请使用 add_operation_acl 方法。

参数:
  • api – 客户端实例引用

  • entity_ref (str) – Secret 或 container 的完整 HATEOAS 引用

  • users (str List or None) – 用于 ACL 的 Keystone 用户 ID 列表。

  • project_access (bool) – 标志,指示项目访问行为

  • operation_type (str) – 类型,指示此 ACL 定义用于 Barbican 操作的哪一类,例如“read”操作

  • created (str) – 时间字符串,指示 ACL 创建时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

  • updated (str) – 时间字符串,指示 ACL 上次更新时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

add_operation_acl(users=None, project_access=None, operation_type=None, created=None, updated=None)

将 ACL 设置添加到特定 operation_type 的实体。

如果匹配的 operation_type ACL 已经存在,则使用提供的输入使用新的 PerOperationACL 对象替换它。否则,它会将新的 PerOperationACL 对象附加到现有的每操作 ACL 列表。

这只是添加到本地实体,尚未将这些更改应用于服务器。

参数:
  • users (List or None) – 用于 ACL 的 Keystone 用户 ID 列表。

  • project_access (bool) – 标志,指示项目访问行为

  • operation_type (str) – 类型,指示此 ACL 定义用于 Barbican 操作的哪一类,例如“read”操作

  • created (str) – 时间字符串,指示 ACL 创建时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

  • updated (str) – 时间字符串,指示 ACL 上次更新时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

property entity_ref

实体 URI 引用。

property entity_uuid

实体 UUID

get(operation_type)

获取操作特定的 ACL 实例。

参数:

operation_type (str) – 指示需要操作的 ACL 设置的类型。

load_acls_data()

使用其 acl_ref 从 Barbican 服务器加载 ACL 实体

如果存在,则清除现有每操作 ACL 设置列表。使用从 Barbican 服务器收到的 ACL 设置填充当前的 ACL 实体。

引发:
property operation_acls

操作特定的 ACL 设置列表。

remove()

删除为 secret 或 container 定义的 Barbican ACL 设置

引发:
submit()

提交 secret 或 container 中定义的 Barbican ACL

在现有的 ACL 情况中,这将使用提供的输入覆盖现有的 ACL 设置。如果输入的 users 为 None 或空列表,则将删除现有的 ACL users(如果有)。如果输入的 project_access 标志为 None,则启用默认项目访问行为。

返回值:

str acl_ref: Secret 或 container ACL 的完整 HATEOAS 引用。

引发:
class barbicanclient.v1.acls.ContainerACL(api, entity_ref, users=None, project_access=None, operation_type='read', created=None, updated=None)

容器的 ACL 实体

secret 或 container 的基本 ACL 实体实例。

提供 ACL 数据参数以设置给定 operation_type 的 ACL 设置。

要为其他 operation_type 添加 ACL 设置,请使用 add_operation_acl 方法。

参数:
  • api – 客户端实例引用

  • entity_ref (str) – Secret 或 container 的完整 HATEOAS 引用

  • users (str List or None) – 用于 ACL 的 Keystone 用户 ID 列表。

  • project_access (bool) – 标志,指示项目访问行为

  • operation_type (str) – 类型,指示此 ACL 定义用于 Barbican 操作的哪一类,例如“read”操作

  • created (str) – 时间字符串,指示 ACL 创建时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

  • updated (str) – 时间字符串,指示 ACL 上次更新时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

add_operation_acl(users=None, project_access=None, operation_type=None, created=None, updated=None)

将 ACL 设置添加到特定 operation_type 的实体。

如果匹配的 operation_type ACL 已经存在,则使用提供的输入使用新的 PerOperationACL 对象替换它。否则,它会将新的 PerOperationACL 对象附加到现有的每操作 ACL 列表。

这只是添加到本地实体,尚未将这些更改应用于服务器。

参数:
  • users (List or None) – 用于 ACL 的 Keystone 用户 ID 列表。

  • project_access (bool) – 标志,指示项目访问行为

  • operation_type (str) – 类型,指示此 ACL 定义用于 Barbican 操作的哪一类,例如“read”操作

  • created (str) – 时间字符串,指示 ACL 创建时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

  • updated (str) – 时间字符串,指示 ACL 上次更新时间戳。仅当从 api 响应填充数据时才填充此项。客户端输入不需要。

property entity_ref

实体 URI 引用。

property entity_uuid

实体 UUID

get(operation_type)

获取操作特定的 ACL 实例。

参数:

operation_type (str) – 指示需要操作的 ACL 设置的类型。

load_acls_data()

使用其 acl_ref 从 Barbican 服务器加载 ACL 实体

如果存在,则清除现有每操作 ACL 设置列表。使用从 Barbican 服务器收到的 ACL 设置填充当前的 ACL 实体。

引发:
property operation_acls

操作特定的 ACL 设置列表。

remove()

删除为 secret 或 container 定义的 Barbican ACL 设置

引发:
submit()

提交 secret 或 container 中定义的 Barbican ACL

在现有的 ACL 情况中,这将使用提供的输入覆盖现有的 ACL 设置。如果输入的 users 为 None 或空列表,则将删除现有的 ACL users(如果有)。如果输入的 project_access 标志为 None,则启用默认项目访问行为。

返回值:

str acl_ref: Secret 或 container ACL 的完整 HATEOAS 引用。

引发:

异常

exception barbicanclient.exceptions.BarbicanException
exception barbicanclient.exceptions.HTTPAuthError(message, status_code=401)

由服务器返回的 401 Unauthorized 响应引发。

exception barbicanclient.exceptions.HTTPClientError(message, status_code=0)

由服务器返回的 4xx 响应引发。

exception barbicanclient.exceptions.HTTPError(message, status_code=0)

HTTP 错误的基类异常。

exception barbicanclient.exceptions.HTTPServerError(message, status_code=0)

由服务器返回的 5xx 响应引发。

exception barbicanclient.exceptions.PayloadException
exception barbicanclient.exceptions.UnsupportedVersion

用户尝试使用不受支持的 API 版本。