使用保险库在awscli中保持身份验证
vault-aws-login的Python项目详细描述
vault aws登录
使用保险库在awscli中保持身份验证 不影响其他配置文件,你希望保持非管理。在
安装和运行
- 请确保consul-template已安装并位于您的
$PATH
中 - 运行
pip3 install --upgrade vault-aws-login
- 运行
wget -O - https://nhtzr.github.io/vault-aws-login/vault-aws-config.tgz | tar -C "$HOME" -zxf -
- 将
~/.vault-aws/config
更新为:
在[default] vault_addr = https://vault.engineering.armory.io # (overrides your current VAULT_ADDR env var.) # (leave it empty if you dont want such thing to happen) vault_login_method = <your auth type to vault> # Type of authentication to use such as "userpass" or "ldap". Note this # corresponds to the TYPE, not the enabled path. Use -path to specify the # path where the authentication is enabled. The default is token. # (leave it empty if you dont want this parameter) # (use extra_vl_flags = ["-path", "/your/path"] fort the given example above) vault_login_username = <your vault username> # The -method flag allows using other auth methods, such as userpass, github, or # cert. For these, additional "K=V" pairs may be required. For example, to # authenticate to the userpass auth method: # $ vault login -method=userpass username=my-username # (vault_login_<K> = <V> is also valid for K=V pairs other than username)
假设您在保险库密码/aws/dev/sts/admin
下拥有aws凭证,并且您
想要在aws配置文件dev
下使用它们,请运行以下命令:
这将使consur模板在后台运行,保留您的dev
aws配置文件凭据
更新有效。aws --profile dev sts get-caller-identity
可以帮助您再次检查此项。在
覆盖、模板和配置
如您所见,-l
/--login
标志(登录名)将生成的aws配置文件名和
源保险库秘密这是一个方便的约定,但并不总是理想的。
您可以重写aws概要文件和保险库密码,它们将对应于给定的登录名
在~/.vault-aws-login/confg
文件中添加login_override
部分:
[login_override dev_as_default]
aws_profile_name = default
vault_secret_path = /aws/dev/sts/admin
同样,login_template
描述了与每个登录标识相对应的泛型值:
[login_template]
aws_profile_name = %(login_id)s
vault_secret_path = /aws/%(login_id)s/sts/admin
模板和重写都是由python3的ConfigParser.BasicInterpolation和{a3}实现的
以上两者都意味着
login_template
中的属性可以依赖于login_override
中的属性,反之亦然。在- 如果名称冲突,
login_override
中的属性具有更高的优先级
这允许模板在任意数据上呈现,而不仅仅是相应的登录名
(注意:login_id
由脚本本身填充,因此不能重写)
[default]
配置配置文件部分包含主脚本将使用的属性。
最重要的是给定的参数vault login
,以及默认情况下需要的-l
/--login
/登录名。
您可以选择使用-p
/--profile
标志从任何其他部分获取这些属性,
您还可以使用带有-c
/--config
标志的完全不同的配置文件。在
对于consur模板特定的配置,您可以修改~/.vault-aws-config/credentials.hcl
如果你想调整它的行为。还有一个名为~/.vault-aws-config/config
选项
extra_ct_flags
在配置配置文件部分(.i.e[default]
)中,以防添加额外的标志,如-once
。
如果要保留多个credentials.hcl
文件,则可能需要设置consul_template_hcl
不同配置配置文件节中的不同值
代码概述
此脚本的一般工作流程是:
0如果vault token lookup
失败,请登录vault。在
- 生成以下json并调用consult模板:
在[{ 'aws_profile_name': 'dev' 'vault_secret_path': '/aws/sts/admin' }, .. ]
- consur模板生成以下凭证文件并调用aws_credentials_merge:
在[dev] aws_access_key_id = <info from vault> aws_secret_access_key = <info from vault> aws_session_token = <info from vault>
- aws\u credentials\u merge接受这个新凭证并将它们合并到
~/.aws/credentials
。在
- 项目
标签: