参考¶
客户端¶
- 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 对象
- 返回类型:
- 引发:
- 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 对象
- 返回类型:
- 引发:
- 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() 方法的密钥对象
- 引发:
NotImplementedError – 使用 microversion 1.0 时
- 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 服务中的密钥、凭证和其他敏感数据。
不应直接实例化密钥对象。
应使用 create 或 get 方法
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
- 返回类型:
- 引发:
- 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
- 返回类型:
- 引发:
- 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 – 创建容器时填充的密钥
- 返回值:
容器
- 返回类型:
- 引发:
- 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
- 返回类型:
- 引发:
- 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
- 返回类型:
- 引发:
- 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.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.SecretACL或barbicanclient.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.SecretACL或barbicanclient.v1.acls.ContainerACL
- get(entity_ref)¶
检索在 Barbican 中找到的 secret 或 container 的现有 ACL
- 参数:
entity_ref (str) – Secret 或 container 的完整 HATEOAS 引用。
- 返回值:
ACL 实体对象实例
- 返回类型:
barbicanclient.v1.acls.SecretACL或barbicanclient.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 版本。