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

馋奶兔 提交于 2020-03-10 23:43:55

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!