在多个aws帐户之间切换并更新api访问密钥

aws-tools的Python项目详细描述


PyPI

此软件包为aws平台提供工具,例如:

  • 在多个帐户之间切换
  • 更新API访问密钥

还有其他人。

aws工具出现的主要原因是,以安全和简单的方式使用带有不同访问密钥的awscli

工作原理

在AWS帐户之间切换:

$ awsenv test
<test> $ aws s3 ls
...list of S3 objects on TEST environment...

### Explanation:
### <test> $ env | grep AWS
### AWS_SECRET_ACCESS_KEY=w0bM0rucARITPOUpcyAaX3iI9lGjJo7g8UUCUxIv
### AWS_ACCESS_KEY_ID=AKIAJPVK7VGH6CBZT5EQ
### AWS_ENV=test

<test> $ awsenv prod
<prod> $ aws s3 ls
...list of S3 objects on PROD environment...

### Explanation:
### <prod> $ env | grep AWS
### AWS_SECRET_ACCESS_KEY=P8crbSIvQ/Au0jfnW8XER9eJKxpQdYqpRVz5QxKo
### AWS_ACCESS_KEY_ID=AKIAJ4F26CMBPI1HF7MQ
### AWS_ENV=prod

更新AWS API访问密钥:

$ awsenv prod

### Explanation:
### <prod> $ env | grep AWS
### AWS_SECRET_ACCESS_KEY=P8crbSIvQ/Au0jfnW8XER9eJKxpQdYqpRVz5QxKo
### AWS_ACCESS_KEY_ID=AKIAJ4F26CMBPI1HF7MQ
### AWS_ENV=prod

<prod> $ awsroll prod
Rolled key for env prod: AccessKeyId=****************ZKQFQ; CreateDate=2018-11-14 13:10:04+00:00
<prod> $ awsenv prod

### Explanation:
### <prod> $ env | grep AWS
### AWS_SECRET_ACCESS_KEY=napb9J2RKzsSiTIjLRavN09qIfFzrMo7846zr2ou
### AWS_ACCESS_KEY_ID=AKIAJTGB6EFV7F4ZKQFQ
### AWS_ENV=prod

开始

Prerequisites:

aws-tools requires gpg (version >= 2.X) to decrypt/encrypt your AWS credentials.

安装必要的软件包,并生成新的密钥对:

$ sudo apt-get install gpg gpg-agent
$ gpg --gen-key
This document covers only gpg commands required to run aws-tools! If you need to use other gpg parameters, go to gpg documentation.

如果尚未配置区域,请使用awscli配置:

$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: eu-west-1
Default output format [None]:
Do not provide any keys here!

安装

只需运行:

$ pip install --user aws-tools

配置

美国焊接学会证书

~/.aws目录中创建临时env.<environment>.conf文件 对于每个aws环境。

例如,如果您有3个aws环境:test、stage和prod,那么 应该是~/.aws目录中的3个配置文件:

env.test.conf
env.stage.conf
env.prod.conf

编辑每个文件:

[default]aws_access_key_id=<your_environment_specific_access_key_id>aws_secret_access_key=<your_environment_specific_secret_access_key>

用gpg加密每个文件:

$ gpg --encrypt --armor --output env.<environment>.conf.asc -r <your-gpg-user-id-name> env.<environment>.conf

并删除临时的env.*.conf文件!

Run ^{tt5}$ to find out what is your ^{tt6}$

外壳

aws工具附带了方便的命令完成和bash提示功能。 只需添加到您的~/.bashrc

source $HOME/.local/bin/aws_tools_completion.bash 2>/dev/nullexport PS1="\$(__awsenv_ps1 2>/dev/null)${PS1}"

SMTP凭据(可选)

如果要将更新的aws访问密钥发送到 电子邮件。

~/.aws目录中创建临时smtp.cfg文件。

编辑SMTP设置:

smtplogin=<your_full_smtp_login>smtppass=<your_password>smtphost=<smtp_host>smtpport=<smtp_port>

用gpg加密配置文件:

$ gpg --encrypt --armor --output smtp.cfg.asc -r <your-gpg-user-id-name> smtp.cfg

并删除临时的smtp.cfg文件!

用法

示例

自动完成:

$ awsenv<TAB><TAB>
prod stage test

使用测试访问键:

$ awsenv test

为当前外壳设置aws访问密钥:

$ awsenv unset

旋转产品访问键:

$ awsroll prod

旋转所有环境的访问键:

$ awsroll

使用gpg代理旋转所有环境的访问密钥,并将它们发送到电子邮件:

$ aws-roll-keys.py -a -e all -s <email@domain.org>

旋转测试环境的访问键并将信息发送到电子邮件:

$ aws-roll-keys.py -e test -i <email@domain.org>

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

推荐PyPI第三方库


热门话题
java如何让用户决定按钮的特定颜色   java Tomcat jdbc连接池,使用后不释放连接   Java泛型类可分配性   javaactivemq&如何在路由路径中创建依赖关系   java为什么没有接收到操作用户?   windows如何启动使用cmd中预编译DLL的java swing应用程序?   java JFreechart实时组合图,在未收到数据点的情况下呈现step子图表的上一个值   java排序自定义数组列表   java如何从HSLFSlideShow获取文本格式信息   java不能将片段和活动登录结合起来   java是下载位于远程存储服务中的文件的有效方法   java AS:将点数交给GameOverActivity   java如何在textView中将焦点放在新生成文本的顶部?   HashMap中特定于Java存储的类类型   java使用不同的变量类型进行计算   if语句中的Java poll()   检查匹配括号的java字符堆栈没有错误,但也没有任何作用   java Netbeans不断将应用程序部署到错误的服务器