2023.1 系列发布说明

2023.1-eom-2

弃用说明

  • 选项 [p11_crypto_plugin]hmac_keywrap_mechanism 已被 [p11_crypto_plugin]hmac_mechanism 替换。此选项已重命名以避免混淆,因为此机制仅用于签名加密数据,而从未使用于密钥包装加密。

安全问题

  • PKCS#11 后端驱动程序已更新,以支持较新的密钥包装机制。新部署应使用 CKM_AES_KEY_WRAP_KWP,但 CKM_AES_KEY_WRAP_PAD 和 CKM_AES_CBC_PAD 也受支持,以与尚未实现 PKCS#11 版本 3.0 的旧设备兼容。

错误修复

  • 修复了 Bug #2036506 - 此补丁将用于包装 pKEK 的硬编码 CKM_AES_CBC_PAD 机制替换为配置此机制的选项。已在配置文件的 [p11_crypto_plugin] 部分添加了两个新选项:key_wrap_mechanismkey_wrap_generate_iv。这些选项分别默认为 CKM_AES_CBC_PADTrue,以保持向后兼容性。

16.0.1

安全问题

14.0.0

安全问题

  • 修复 Story 2009664 的一部分内容需要将容器消费者策略从“consumers:get”重命名为“container_consumers:get”,将“consumers:post”重命名为“container_consumers:post”,将“consumers:delete”重命名为“container_consumers:delete”。如果您正在使用自定义策略来覆盖默认策略,则需要更新它们以使用新名称。

  • 修复 Story #2009791:现在,拥有项目“creator”角色的用户即使不是最初创建密钥的用户,也可以删除属于该项目的密钥。在此修复之前,拥有“creator”角色的用户只能删除他们自己最初创建的属于该项目的密钥,这与 Barbican 集成的其他 OpenStack 项目处理删除的方式不一致。此更改不影响私有密钥(即“project-access”标志设置为“false”的密钥)。

错误修复

  • 修复 Story #2009247 - 修复了 POST /v1/secrets/{secret-id}/metadata 的响应,使其与文档行为相符。

  • 修复 Story 2009664 - 修复了 Consumer 控制器,使其能够在策略检查中使用关联容器的所有权信息。

  • 修复 Story #2009672 - 修复了容器消费者验证器,以防止 500 错误。

13.0.0

新特性

  • 默认最大密钥大小已从 10 kB 增加到 20 kb,默认最大请求大小已从 15 kB 增加到 25 kB。

错误修复

  • 修复了 Story 2008335:修复了 Hashicorp Vault 后端中的数据编码问题,该问题在使用 Castellan 中的 Vault 密钥管理器生成的密钥时导致错误。

12.0.0.0rc1

新功能

  • 为 PKCS#11 加密插件添加了两个选项:[p11_crypto_plugin]/token_serial_number[p11_crypto_plugin]/token_label。两者都是可选的,可以用作 [p11_crypto_plugin]/slot_id 的替代方案来标识 PKCS#11 插件要使用的 Token。当定义了其中一个新选项时,插件将在 PKCS#11 设备的各个插槽中搜索与给定值匹配的 token。token_serial_number 具有最高的优先级,当设置此值时,其他值将被忽略。如果未设置 token_serial_number,则 token_label 具有下一个最高的优先级,并且将忽略 slot_id。当未设置任何一个新选项时,将使用 slot_id

  • 为 PKCS#11 后端添加了一个新的布尔选项:os_locking_ok。如果设置为 True,则 CKF_OS_LOCKING_OK 标志将传递给 C_Initialize 函数。新选项默认为 False。

  • 一个名为“token_labels”的新选项已添加到 PKCS#11 驱动程序中,它取代了以前的“token_label”选项。新选项用于指定可以由 Barbican 使用的 token 列表。这对于使用单独的 token 进行负载平衡的某些 HSM 设备是必需的。在大多数情况下,新选项将只有一个 token。旧选项已被弃用,但如果存在,仍将使用。

  • 实现 ACL 的安全 rbac 策略。

  • 为消费者资源实现安全 rbac。

  • 为容器资源实现安全 rbac。

  • 为订单资源实现安全 rbac。

  • 为配额资源实现安全 rbac。

  • 为 secretmeta 资源实现安全 rbac。

  • 为密钥资源实现安全 rbac。

  • 为密钥存储资源实现安全 rbac。

  • 为传输密钥资源实现安全 rbac。

  • barbican-manage 命令行工具的 hsm 子命令不再需要在运行时使用任何参数。如果需要 PKCS#11 值,它将从 /etc/barbican/barbican.conf 中获取。您仍然可以在命令行上指定任何值,这些值将优先于 barbican.conf 中指定的值,因此任何使用 barbican-manage 的现有脚本都应按预期继续工作。

升级说明

  • 配置选项 [oslo_policy] policy_file 的默认值已从 policy.json 更改为 policy.yaml。正在使用自定义或先前生成的静态策略 JSON 文件的操作员应生成新的策略文件或将其转换为 YAML 格式。使用 oslopolicy-convert-json-to-yaml 工具以向后兼容的方式将 JSON 策略文件转换为 YAML 格式。

弃用说明

  • PKCS#11 驱动程序中的“token_label”选项已被弃用。应使用新的“token_labels”选项。如果存在,“token_label”仍然会通过将其附加到“token_labels”来使用。

  • JSON 策略文件在 Victoria 开发周期中被 oslo.policy 库弃用。因此,此弃用在 Wallaby 周期中被注意到,预计 oslo.policy 将在未来删除对它的支持。因此,操作员需要转换为 YAML 策略文件。请参阅升级说明以获取有关迁移任何自定义策略文件的详细信息。

安全问题

  • 新的安全 rbac 策略不允许列出私有密钥或私有容器的 ACL。这是与以前的策略不同的,以前的策略允许项目上具有某些角色分配的用户列出私有密钥或私有容器的 ACL。以前的策略已被弃用,但在未来的版本中删除之前,它将继续使用。

  • 新的安全 rbac 策略允许项目成员修改或删除 ACL。这是与以前的策略不同的,以前的策略仅允许项目管理员或密钥或容器创建者执行这些操作。

  • 新的安全 rbac 策略允许成员添加和删除消费者。这是与以前的策略不同的,以前的策略仅允许密钥的创建者或管理员或那些对密钥具有读取 acl 的用户执行这些操作。

  • 新的安全 rbac 策略允许成员将密钥添加到容器并从容器中删除密钥。这是与以前的策略不同的,以前的策略仅允许管理员添加和删除密钥。

  • 新的安全 rbac 策略允许成员删除容器。这是与以前的策略不同的,以前的策略仅允许创建者或项目管理员删除容器。

  • 当前策略允许除具有 audit 角色之外的所有用户列出订单或检索订单元数据。新的期望策略将将其限制为成员。为了保持向后兼容性,旧策略仍然有效,但它们已被弃用,将在未来删除,留下更严格的新策略。

  • 新的安全 rbac 策略允许成员删除密钥。这是与以前的策略不同的,以前的策略仅允许项目管理员删除密钥。

  • 当前策略仅允许具有 key-manager:service-admin 角色的用户列出、获取、添加、更新或删除项目配额。新策略允许系统读取者列出配额并获取特定项目的配额,以及系统管理员(角色:admin 和 system_scope:all)添加、更新和删除项目配额。

  • 当前策略允许除具有 audit 角色之外的所有用户列出密钥元数据键并获取元数据值。新的期望策略将将其限制为成员。为了保持向后兼容性,旧策略仍然有效,但它们已被弃用,将在未来删除,留下更严格的新策略。

  • 新的安全 rbac 策略允许成员添加、修改和删除密钥元数据。这是与以前的策略不同的,以前的策略仅允许项目管理员或密钥创建者删除密钥元数据。

  • 新的安全 rbac 策略允许任何成员执行两步密钥创建。这是与以前的策略不同的,以前的策略仅允许创建者执行第二步。

  • 新的安全 rbac 策略允许成员删除密钥。这是与以前的策略不同的,以前的策略仅允许创建者或项目管理员删除密钥。

  • 当前策略仅允许具有 admin 角色的用户列出和获取 secretstore 资源。新策略允许所有用户执行这些操作。

  • 当前策略允许具有 admin 角色的用户添加或删除传输密钥。该接口仅供系统管理员使用,因此新策略已将其限制为仅系统管理员(具有 system_scope:all 的管理员)。

错误修复

  • 修复了 Story #2006978:管理员用户现在可以通过调整策略文件删除其他用户的密钥。

  • 修复了 Story #2008649:在次要故障后正确重新初始化 PKCS11 对象。

11.0.0

升级说明

  • auto_db_create 的默认值已更改为 False(以前为 True)。与以前的行为相比,这是一个变化,但为了保护生产部署免于在不受控制的情况下执行升级,这是必需的。如果您希望保留自动数据库创建/升级行为,请在您的配置中将其更改为 True。

错误修复

  • 修复了 Story # 2007732:MySQL 8.x 上的迁移已损坏。

10.0.0

新功能

  • 现在可以通过使用 oslo.messaging 的通知监听器池功能,使 barbican-keystone-listener 能够监听相同的标准通知主题,而不会干扰其他服务。要使用它,请将新的 [keystone_notifications]pool_name 选项设置为一些唯一的值(但对于 barbican-keystone-listener 服务的每个实例都相同)。此功能仅适用于支持它的 oslo.messaging 的消息传递传输。目前这些是 rabbitmq 和 kafka。有关更多详细信息,请参阅 oslo.messagind 文档

升级说明

  • 已删除 Python 2.7 支持。Barbican 支持 Python 2.7 的最后一个版本是 OpenStack Train。Barbican 现在支持的 Python 的最低版本是 Python 3.6。

8.0.0

序言

添加了新的工具 barbican-status upgrade check

新特性

  • barbican-manage hsm 添加了两个新的子命令,可以查询 HSM 以检查具有给定标签的 MKEK 或 HMAC 密钥是否已存在。有关详细信息,请参阅 barbican-manage hsm check_mkek –helpbarbican-manage hsm check_hmac –help

  • 添加了用于 barbican-status upgrade check 命令的新框架。此框架允许添加各种检查,这些检查可以在 Barbican 升级之前运行,以确保可以安全地执行升级。

  • 将现有的 PolicyRuleDefault 对象移植到更新、更详细的 DocumentedRuleDefaults。

升级说明

  • 操作员现在可以使用新的 CLI 工具 barbican-status upgrade check 来检查 Barbican 部署是否可以从 N-1 升级到 N 版本。

弃用说明

  • 弃用了 generate_iv 选项名称。它已重命名为 aes_gcm_generate_iv,以反映它仅适用于 CKM_AES_GCM 机制。

错误修复

  • 修复了 Story #2004734:管理员用户现在可以通过调整策略文件删除其他用户的密钥。

  • 修复了 Story #2004734:在次要故障后正确重新初始化 PKCS11 对象。

7.0.0

新特性

  • 为 PKCS#11 加密插件配置添加了新的选项,以启用使用不同的加密和 hmac 机制。在 PKCS#11 加密插件中添加了对 CKM_AES_CBC 加密的的支持。

  • order:put 重新映射到 orders:put,以与 orders 控制器中的语言保持一致。

升级说明

  • (对于覆盖默认策略的部署) 升级后,请查看 Barbican 策略文件,并确保将与 order:put 相关的任何规则重新映射到 orders:put

弃用说明

  • 弃用了 p11_crypto_plugin:algoritm 选项。用户应更新其配置以使用 p11_crypto_plugin:encryption_mechanism 代替。

错误修复

  • 默认情况下,barbican 仅检查创建新密钥时的算法和位长度。xts 模式将 aes 密钥减半,因此对于使用 256 位 aes 的 xts,您必须使用 512 位密钥,但 barbican 仅允许最大 256 位。在 SimpleCryptoPlugin 类的 _is_algorithm_supported 方法中添加了一个检查,以允许在此插件中使用 512 位 aes-xts 密钥。

  • 修复了针对单个密钥的无效子路由的响应代码。API 之前响应了错误的“405 - 方法不允许”代码,现在正确响应了“404 - 未找到”。

其他说明

  • ‘barbican.conf’ 中 ‘control_exchange’ 的默认值已更改为 ‘keystone’。

6.0.0

引言

此版本通知我们将从 API 中删除证书订单和 CA。

弃用说明

  • 证书订单

  • CA

其他说明

  • 为什么我们要弃用证书颁发? 经过考虑,有几个原因导致了这一决定。 首先,社区似乎对充分开发 Barbican 与证书颁发机构的集成没有太大兴趣。 我们还有一些突出的蓝图需要使证书颁发完全正常运行,但到目前为止,还没有人承诺完成这项工作。 此外,我们从公共证书颁发机构那里得到的参与度非常有限。 Symantec 和 Digicert 过去都对集成感兴趣,但这种兴趣并没有像我们希望的那样转化为强大的 CA 插件。 其次,自 Barbican 启动以来,证书颁发机构领域出现了一些新的发展。 其中最重要的是 Let’s Encrypt 公共 CA 的启动以及 ACME 协议的定义,用于证书颁发。 我们认为,未来的证书颁发机构服务应该实施 ACME 标准,这与 Barbican 团队开发的 API 有很大不同。 最后,在 Barbican 中弃用证书颁发将简化 Barbican 的架构和部署。 这将使我们能够专注于 Barbican 擅长的功能——安全存储密钥材料。

  • Barbican 仍然可以存储证书吗?是的,绝对可以!我们弃用的是与证书颁发机构和相关 API 交互的插件接口。您将无法使用 Barbican 颁发新证书,但始终可以将任何证书安全地存储在 Barbican 中,包括由公共 CA 或内部 CA 颁发的证书。

5.0.0

新特性

  • 在代码中维护策略规则,并在 tox 中添加 oslo.policy CLI 脚本以生成策略样本文件。该脚本可以像“oslopolicy-sample-generator –config-file=etc/oslo-config-generator/policy.conf”一样调用,并将生成一个 policy.yaml.sample 文件,其中包含有效的策略。

弃用说明

  • 删除了 application/pkix 媒体类型,因为 Barbican 将不会使用媒体类型进行格式转换。

其他说明

  • oslo-config-generator 现在用于生成 barbican.conf.sample 文件

4.0.0

引言

此版本在管道中添加了 http_proxy_to_wsgi 中间件。

新功能

  • ‘http_proxy_to_wsgi’ 中间件可用于帮助 Barbican 在置于 TLS 代理(如 HAProxy)之后时,以正确的 URL 引用进行响应。此中间件默认禁用,但可以通过 oslo_middleware 组中的配置选项启用。

升级说明

  • paste 管道的 barbican-api-paste.ini 配置文件已更新,以添加 http_proxy_to_wsgi 中间件。

3.0.0

序言

现在,可以在单个部署中配置和使用多个密钥存储插件后端。 更改后,项目管理员可以预定义用于存储其密钥的首选插件后端。 添加了新的 API 来管理此项目级别的密钥存储首选项。

新特性

  • 支持多个密钥存储插件后端的全新功能。 此功能默认情况下未启用。 要使用此功能,需要启用相关功能标志,并在服务配置中添加支持的配置。 启用后,项目管理员将能够指定可用的密钥存储后端之一作为其项目密钥的首选密钥存储。 此密钥存储首选项仅适用于在该项目中创建或存储的新密钥(密钥材料)。 现有密钥不受影响。 请参阅 https://docs.openstack.org/developer/barbican/setup/plugin_backends.html,了解有关如何设置 Barbican 多个后端的说明,以及 API 文档以获取更多详细信息。