跳转到主要内容

由BTHLabs开发的Keep It Secret

项目描述

由BTHLabs开发的Keep It Secret

Keep It Secret 是一个小型Python库,用于声明式管理应用程序的秘密。

文档 | 源代码仓库

安装

$ pip install keep_it_secret

用法

Keep It Secret 为开发人员提供了所需的API,以声明应用程序使用的秘密并以安全、统一的方式访问它们。

考虑以下示例

from secrets_manager import (
    AbstractField, EnvField, LiteralField, Secrets, SecretsField,
)
from secrets_manager.ext.aws import AWSSecrets, AWSSecretsManagerField

class AppSecrets(Secrets):
    secret_key: str = AbstractField.new()
    db_password: str = EnvField.new('APP_DB_PASSWORD', required=True)
    pbkdf2_iterations_count: int = EnvField(
        'APP_PBKDF2_ITERATIONS_COUNT',
        default=16384,
        required=False,
        as_type=int,
    )

class DevelopmentSecrets(AppSecrets):
    secret_key: str = LiteralField.new('thisisntsecure')

class ProductionSecrets(AppSecrets):
    aws: AWSSecrets = SecretsField.new(AWSSecrets)
    secret_key: str = AWSSecretsManagerField(
        'app/production/secret_key', required=True,
    )
    db_password: str = AWSSecretsManagerField(
        'app/production/db_password', required=True,
    )

AppSecrets 类作为特定环境的基类。特定环境的类可以覆盖任何字段,添加新字段,并扩展基类以提供自定义行为。

DevelopmentSecrets 类使用环境变量和字面值来提供适合开发环境使用的秘密

>>> development_secrets = DevelopmentSecrets()
>>> development_secrets.secret_key
'thisisntsecure'
>>> development_secrets.db_password
'spam'
>>> development_secrets.pbkdf2_iterations_count
1024

ProductionSecrets 类使用环境变量和AWS Secrets Manager来提供适合生产环境使用的秘密

>>> production_secrets = ProductionSecrets()
>>> production_secrets.aws.access_key_id
'anawsaccesskey'
>>> production_secrets.secret_key
'asecuresecretkey'
>>> production_secrets.db_password
'asecuredbpassword'
>>> production_secrets.pbkdf2_iterations_count
16384

作者

Keep It SecretTomek Wójcik 开发。

许可

Keep It Secret 采用MIT许可。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

keep_it_secret-1.2.0.tar.gz (9.1 kB 查看散列值)

上传时间: 源码

构建的发行版

keep_it_secret-1.2.0-py3-none-any.whl (11.7 kB 查看散列值)

上传时间: Python 3

由以下机构支持