Azure密钥保管库数据平面的CLI客户端

azkv的Python项目详细描述


AzKV公司

Python 3.6+Code style: blackLicense: MIT

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

这是example configuration file

### 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

使用

版本控制

我们使用Semantic Versioning Specification作为版本编号约定。在

发布历史记录

有关可用版本,请参阅tags on this repository。每个版本的具体更改记录在CHANGELOG.md中。在

另外,git commit消息的约定记录在CONTRIBUTING.md中。在

作者

致谢

  • 通过在文章、博客和论坛中分享他们的知识,向所有塑造这个项目设计的个人提供帽子提示。在

许可证

除非另有说明,否则所有作者(参见提交日志)都会在MIT License下发布他们的作品。有关详细信息,请参见LICENSE.md。在

贡献

有很多方法可以为这个项目做贡献。请随意:

  • 提交错误报告和功能请求
  • 概述、修复和扩展文档
  • 同行评审错误报告和请求请求
  • 实施新功能或修复错误

请参阅CONTRIBUTING.md以获取有关此项目使用的代码格式、linting和测试框架的详细信息。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
数据库java操作符是如何工作的?   带有JSON迭代器的java类型安全警告   java@NotNull类型注释Solrj   JDBC无法将19y旧Java连接到新的SQL Server。它在旧服务器上运行良好   java两个线程获得相同的值   java阶乘方法工作不好!   java Android体系结构决策   java如何使用JSON中的@RequestBody绑定自定义对象的映射   java Android ActionBarSherlock定制topbar?   java自定义DozerConverter仅在SpringBoot测试中调用   java为什么Hibernate试图映射@Transient方法?   MongoDB Java自己的编解码器不工作   java无法从MySQL中的存储引擎读取自动增量值   java使用SwingFXUtils将BuffereImage(awt)转换为Image(JavaFx)   java Camel hdfs2到文件协议文件传输   java什么是GZIP JSFSeam web应用程序页面的最佳方法