提高研发团队使用AWS服务的效率x100--高效使用aws-vault工具

2020-03-10| aws-vault工具, 研发效率提升, devops, cicd, 云计算, cloudcomputing

在DevOps的世界里有太多工具需要掌握,命令行工具就是其中之一。企业在打造DevOps的过程中会经常使用命令行工具访问AWS服务。一名研发人员每天可能要在命令行里反复(平均50~60次)输入登录AWS的凭证才能创建资源,如果为每一名账号引入安全机制,那么这个登录流程耗时更长!为了减轻这种重复登录所带来的痛苦,则需要一个更加友好的命令行工具来辅助,这个工具就是:aws-vault。

  1. 什么是aws-vault工具
  2. aws-vault工具的使用指南
  3. 总结

什么是aws-vault工具

aws-vault是一个命令行工具,这个工具的主要作用在于帮助研发人员以命令行的方式快速访问AWS服务,最终减轻了每一名研发人员因反复登录而带来的负担,从而提高企业整体的研发效率。

aws-vault是一款用go语言编写且开源的命令行工具,其项目地址在这里。aws-vault主要解决安全和自动设置凭证的问题。

初次运行aws-vault时,只需要在命令行里输入如下指令:

aws-vault add slz

根据提示输入AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY信息。如果这个凭证具有操作AWS资源的权限,那么研发人员就能通过aws-vault工具高效访问AWS服务。此外,这2个登录信息是以密文的形式存储的,因此aws-vault进一步保护了登录凭证。如果该用户需要使用MFA,那么只需要在文件~/.aws/config加入以下内容:

# config文件
[profile slz]
mfa_serial = arn:aws:iam::120699691161:mfa/Tony

aws-vault工具会自动到这个文件中读取该MFA地址,并提示研发人员键入6位安全码。如果研发人员需要用到AWS所提供的role,那么也可以按照类似的方式在该文件中添加以下内容:

# config文件
[profile slz]
role_arn = arn:aws:iam::120699691161:role/update_role

aws-vault工具会自动读取这个role,并自动获取该role所拥有的权限来访问AWS服务。

设置好以上登录凭证之后,研发人员只需要执行以下命令就能自动访问AWS资源:

aws-vault exec slz -- aws iam list-users

以上命令分两部分:aws-vault exec slzaws iam list-users。前者会根据slz去找到对应的登录凭证,并自动设置好登录凭证,后者则是使用aws命令行工具列出所有用户信息。后半部分可以是支持AWS凭证登录的任何工具(比如:Terraform工具)。如下例子将aws-vault工具和terraform工具结合在一起使用:

aws-vault exec slz -- terraform apply

aws-vault工具的使用指南

完成以上配置之后,接下来看看aws-vault工具如何结合terraform工具使用的。

假设我们使用aws-vault添加了以下具有相同登录凭证,但是不同登录方式的登录选择:

  • slz:直接通过登录凭证操作AWS服务
  • slz_mfa:除了需要登录凭证,还需要输入6位安全码才能操作AWS服务
  • slz_mfa_role:获取临时登录凭证,并以role的方式访问AWS服务

以下命令说明了如何使用aws-vault工具和terraform plan命令生成资源创建的详细信息:

  1. 以下命令直接通过登录凭证使terraform能够访问AWS服务
aws-vault exec slz -- terraform plan
  1. 以下命令与第一种类似,但是在执行访问AWS服务之前需要输入6位安全码
aws-vault exec slz_mfa -- terraform plan
  1. 以下命令的登录凭证是临时生成的,所拥有的权限由role来确定,这个role有可能是其它账号的。
aws-vault exec slz_mfa_role -- terraform plan

通过以上命令,研发人员可以快速切换登录场景,并且只需要一行命令就能操作AWS服务。因此对于拥有上百人的研发团队而言,这种便捷能够以100x的系数来提高团队的工作效率!

总结

研发团队每天都会用到各种工具,登录各种系统。如果这些重复而且没有价值的任务没有得到有效解决,那么后果自然是会影响团队的研发效率!本文提到的aws-vault工具适用于需要命令行操作AWS服务的各种工具,这些工具有:aws、terraform等。aws-vault工具能够安全存储登录凭证,而且根据配置自动设置登录凭证,从而减少了研发人员反复设置登录凭证的步骤。如果你所在的企业或团队依然被登录AWS服务的过程困扰,那么实践本文所提到的aws-vault工具以及例子将会帮助你扫清这个障碍。

2cloudlab.com为企业准备产品的运行环境,只需要1天!

听起来还不错 ?

如果你所在的企业遇到了以下问题:
研发流程混乱不堪或者效率低下、经历了持续上升的运维成本、无法及时向用户发布新的服务或产品以及想使用云计算技术但缺乏经验!
那么,请毫不犹疑地

联系我们