基于Equinox的AWS机密管理器的数据通用代码
datacoco-secretsmanager的Python项目详细描述
datacoco secretsmanager提供与Amazon Web的基本交互 服务(AWS)机密管理器服务。在
安装
datacoco secretsmanager需要Python 3.6+
python3 -m venv venv source venv/bin/activate python -m pip install datacoco_secretsmanager
快速启动
datacocosecretsmanager使用boto3库与AWS secretsmanager服务交互,需要AWS凭据配置。boto3对凭证的查找记录为here。在
根据您存储AWS凭据的方式,您可以按以下方式使用datacoco secretsmanager。
如果您在默认情况下存储了AWS凭据 ~/.aws/credentials,使用以下命令实例化SecretsManager类:
^{pr2}$您还可以直接传入AWS身份验证密钥:
from datacoco_secretsmanager import SecretsManager sm = SecretsManager( aws_access_key_id, aws_secret_access_key, aws_role_arn, # only required if you are using role based access )
否则,如果您在amazonec2实例上运行,并且凭证没有以上述任何一种方式传递,那么您可以从实例元数据服务中boto3加载凭证。 然后datacocosecretsmanager将承担与启动EC2实例时指定的相同的IAM角色。在
一个秘密
在AWS机密管理器中存储机密:
AWS Secret name
<AWS-secret-name-for-connection>
| Key | Value | | ---------- | -------------| | <db-name> | <db-name> | | <user> | <user-name> | | <host> | <host> | | <port> | <port-value> | | ... | ... |
要获取单个机密,请使用:
sm.get_secret(<aws_secret_resource_name>)
许多秘密
对于一个项目,您可能有多个机密或凭据 不止一个系统。在
您可以通过存储所有必需凭据的键/值映射来进行处理 在项目的AWS机密中,然后在 为密钥值中指示的每个凭据名称单独设置AWS secret。在
例如,存储一个AWS机密来映射或提供对所有 所需的system/db连接在我们的 模块:
AWS Secret name
<project-name>/<environment>
注意:如果使用环境,则名为^{tt2}的环境变量$ 存储和分配的环境名称应与AWS机密名称中指定的环境名称相同。在
另外,如果与多个使用AWS的团队一起工作 机密管理器,您可以使用 命名约定:
<team-name>/<project-name>/<environment>.
将cfg_store的键/值存储为以下内容:
| Key | Value | | --------------------- | ----------------------------------- | | <db-connection1-name> | <AWS-secret-name-for-db-connection1>| | <db-connection2-name> | <AWS-secret-name-for-db-connection2>|
对于cfg\u存储中的每个机密值,将完整凭据存储在 另一个AWS机密,即:
AWS Secret name
<AWS-secret-name-for-db-connection1>
| Key | Value | | ---------- | -------------| | <db-name1> | <db-name1> | | <user> | <user-name> | | <host> | <host> | | <port> | <port-value> | | ... | ... |
{str}1秘密
<AWS-secret-name-for-db-connection2>
| Key | Value | | ---------- | -------------| | <db-name2> | <db-name2> | | <user> | <user-name> | | <host> | <host> | | <port> | <port-value> | | ... | ... |
要获取整个project/cfg存储区的机密,请使用:
sm.get_config( project_name='your-project-name', team_name='your-team-name', # include only if you want to save as part of your cfg_store name )
发展
入门
建议使用以下步骤设置虚拟环境进行开发:
python3 -m venv <virtual env name> source <virtual env name>/bin/activate pip install -r requirements.txt
测试
pip install -r requirements-dev.txt
要运行测试套件,只需运行命令:tox或python -m unittest discover tests
- 项目
标签: