Azure密钥保管库数据平面的CLI客户端
azkv的Python项目详细描述
AzKV公司
AzKV
是Azure密钥保险库数据平面的CLI客户端,支持冗余保险库。它解决了高可靠性场景,在这种情况下,如果由于Azure区域范围的故障而导致密钥保险库不可用,则可以从部署在另一个未受影响区域的冗余密钥保管库中检索相同的数据。在
Linux和Windows有一个native Azure VM extension,可以获取证书和相应的密钥。它还执行定期检查,以查看证书是否已更改并需要更新。在
虽然这个本机扩展可以监视证书列表,但它们都是单独获取的。因此,如果证书或密钥保管库不可用,则不会针对其他保管库重试。如果在本地文件系统上更新了数据,则没有直接的挂接功能来运行shell命令。此扩展对不同的Linux发行版的支持也有限,不支持RHEL
或{
此时,AzKV
解决了本机Azure VM扩展的这些限制。它允许从Azure密钥库获取PKCS12格式的blob,BASE64解码数据,从PKCS12包中提取证书和私钥,并以PEM格式在文件系统上保存/更新数据(如果检索到的内容与已保存的内容不同)。它还提供了更新后钩子功能,允许在成功更新时执行shell命令。更新后挂钩可用于在内容更新时重新启动使用证书/密钥的服务。在
虽然主要用于从密钥库中获取证书,但该工具的当前版本还可以用于获取密码等机密,并将其合并到服务器或应用程序配置中。在
入门
安装
AzKV
通过Python Package Index作为azkv分布。运行以下命令:
- 在
安装特定版本
pip install "azkv==0.1"
在 - 在
安装最新版本
^{pr2}$ 在 - 在
升级至最新版本
pip install --upgrade "azkv"
在 - 在
安装性能和功能测试所需的可选开发依赖项,如
pytest
框架和插件pip install "azkv[test]"
在
配置
AzKV
在以下位置查找YAML
配置文件:
/etc/azkv/azkv.yaml
~/.config/azkv/azkv.yaml
~/.azkv/config/azkv.yaml
~/.azkv.yaml
### AzKV Configuration Settings---azkv:# Toggle application level debug (does not toggle Cement framework debugging)# debug: false# Common credentials to be used for all vaults, unless some specific vaults# have `credentials` property defined that overrides the common one.credentials:# Type of Azure credentials to use for Key Vault access.# Possible values are:# * `EnvironmentVariables` - uses `EnvironmentCredential` to pickup service principal or user# credentials from environment variables.## * `SystemManagedIdentity` - uses `ManagedIdentityCredential` class configured for system-assigned# managed identity.## * `UserManagedIdentity` - uses `ManagedIdentityCredential` class configured for user-assigned# managed identity. Requires `client_id` or will be reduced to `SystemManagedIdentity`type:EnvironmentVariables# ClientID for the user-assigned managed identity; option required only for `type: UserManagedIdentity`# client_id: 2343556b-7153-470a-908a-b3837db7ec88# List of Azure Key Vaults to be referenced in AzKV operationskeyvaults:# Short name for a Key Vault (used in logs and CLI options)foo-prod-eastus:# URL for the Azure Key Vault API endpointurl:"https://foo-prod-eastus.vault.azure.net/"# Credentials specific to this Key Vault. Supersedes common credentials above.credentials:type:UserManagedIdentityclient_id:2343556b-7153-470a-908a-b3837db7ec88foo-prod-uksouth:url:"https://foo-prod-uksouth.vault.azure.net/"credentials:type:SystemManagedIdentityfoo-prod-ukwest:url:"https://foo-prod-ukwest.vault.azure.net/"# Logging configurationlog.colorlog:# Whether or not to colorize the log file.# colorize_file_log: false# Whether or not to colorize the console log.# colorize_console_log: true# Where the log file lives (no log file by default)# file: null# The level for which to log. One of: info, warning, error, fatal, debug# level: INFO# Whether or not to log to console# to_console: true# Whether or not to rotate the log file when it reaches `max_bytes`# rotate: false# Max size in bytes that a log file can grow until it is rotated.# max_bytes: 512000# The maximun number of log files to maintain when rotating# max_files: 4
使用
要求
- Python>;=3.6
使用
- Cement Framework-CLI应用程序框架
版本控制
我们使用Semantic Versioning Specification作为版本编号约定。在
发布历史记录
有关可用版本,请参阅tags on this repository。每个版本的具体更改记录在CHANGELOG.md中。在
另外,git commit
消息的约定记录在CONTRIBUTING.md中。在
作者
- oleksiykuzmenko-OK-UNDP@GitHub-初始设计和实现
致谢
- 通过在文章、博客和论坛中分享他们的知识,向所有塑造这个项目设计的个人提供帽子提示。在
许可证
除非另有说明,否则所有作者(参见提交日志)都会在MIT License下发布他们的作品。有关详细信息,请参见LICENSE.md。在
贡献
有很多方法可以为这个项目做贡献。请随意:
- 提交错误报告和功能请求
- 概述、修复和扩展文档
- 同行评审错误报告和请求请求
- 实施新功能或修复错误
请参阅CONTRIBUTING.md以获取有关此项目使用的代码格式、linting和测试框架的详细信息。在
- 项目
标签: