将凭据安全地存储为密文,并使用aws kms动态解密

credkeep的Python项目详细描述


credkeep

credkeep是一个python包,有助于减轻存储敏感凭据的痛苦。安全的凭据 使用aws的密钥管理服务(kms)加密的文件可以存储在版本控制系统中 在没有访问KMS上的用户加密密钥的情况下解密。

安装

pip安装credkeep

用法

credkeep要求您配置自己的kms主密钥。此密钥用于加密/解密数据,并且 由AWS安全存储。您的kms主密钥可以在https://console.aws.amazon.com/iam/home#encryptionKeys查看。 有关创建新主密钥的信息,请参见http://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html

明文API机密不应存储在明文中。例如,developer_secrets.json

{"SECRET_API_KEY":"thisismysecretkey","ANOTHER_API_KEY":"anotherkey"}

通过调用credkeep.encrypt_文件

{"SECRET_API_KEY":"CiAr4gKwrApZNibuqh1YKjlIGMj4A4GSHArF+0lCqBnqOxKfAQEBAgB4K+ICsKwKWTYm7qodWCo5SBjI+AOBkhwKxftJQqgZ6jsAAAB2MHQGCSqGSIb3DQEHBqBnMGUCAQAwYAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAzGyPmdgqEbxzvnjKICARCAMzOd+DIaI/rUbc8dYQTxGS8aQQNjgXPt6Or0rxo7fFn0rA5/Kf6zpnui0q9XXtUatL4D3Q==","ANOTHER_API_KEY":"CiAr4gKwrApZNibuqh1YKjlIGMj4A4GSHArF+0lCqBnqOxKXAQEBAgB4K+ICsKwKWTYm7qodWCo5SBjI+AOBkhwKxftJQqgZ6jsAAABuMGwGCSqGSIb3DQEHBqBfMF0CAQAwWAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAxgB3p/zbVarLd/5a4CARCAK4w48/dCK7EvwTDELb11bpBe8TpaIhcCalfOqACQzoLoqgciAY8DuczOvRs="}

这个加密的json文件可以通过版本控制安全地分发,因为它需要访问kms上的主密钥。什么时候? 文件中的机密是必需的,可以使用credkeep.decrypt_file对文件进行解密。此函数可以选择 使用解密的机密设置本地环境变量。这些环境变量不会在shell之间持久化 或者重新启动。

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

推荐PyPI第三方库


热门话题
检查java中两个链表之间的子集   java仅在findViewById()下显示一个ImageButton   在Java Graphics2D中,文本如何在矩形上居中对齐?   java需要一个用于电子表格计算器的正则表达式   ^java中的运算符   java通过一些属性配置文件根据环境动态更改wsdl端点URL   java Ebean/Play框架关系未更新   集合如何将POJO列表转换为Java流中的映射<String,List>?   java为什么JFrame不显示整个图像?   java如何将调用静态导入的泛型方法的结果传递给另一个方法?   迭代器或foreach中的java延迟   需要java socket logback日志接收器   在Java中初始化Map的静态数组   雅加达邮件Java MimeMail:解码后获得额外字符   java为什么这个xmldom解析器不能正确解析rtept、name和cmt标记?   java如何刷新Log4J2中的异步记录器(带中断器)   java使用构建插件pom生成的jar。xml作为同一pom中的依赖项   java基于位置的序列ADT如何在O(1)时间内插入元素?   java ORM实体与DDD实体   Java对象分配