担任角色后执行aws cli命令
awsassume的Python项目详细描述
担任角色后执行aws cli命令
先决条件
- python 3.6或更高版本
- aws cli或等效的aws支持的cli
安装
使用pip安装
$ pip install awsassume
使用安装脚本安装
$ python setup.py install
用法
usage: awsassume [-h] -a ROLE_ARN -n ROLE_SESSION_NAME [--no-cache] [-r REGION] [-c COMMAND [COMMAND ...]] Execute AWS CLI commands after assuming role optional arguments: -h, --help show this help message and exit --no-cache Disable caching of the assumed role response -r REGION, --region REGION The region to be associated with the client -c COMMAND [COMMAND ...], --command COMMAND [COMMAND ...] The AWS CLI command to execute after assuming role required arguments: -a ROLE_ARN, --role-arn ROLE_ARN The ARN of the role to assume -n ROLE_SESSION_NAME, --role-session-name ROLE_SESSION_NAME An identifier for the assumed role session
缓存
默认情况下,假定的角色响应将缓存到~/.awsassume/cache,并一直使用到过期为止。 在假定角色请求成功后一小时,缓存将过期。
如果不希望缓存假定角色响应,请使用--no-cache标志来禁用对假定角色响应的缓存。
示例
$ awsassume -a arn:aws:iam::0123456789012:role/assume_role_test -n sessionname --no-cache
区域
可以使用-r或--region选项设置AWS_DEFAULT_REGION环境变量。
示例
$ awsassume -a arn:aws:iam::0123456789012:role/assume_role_test -n sessionname -r ap-southeast-1
命令
可以使用-c或--command选项来传递aws cli,aws cli将在成功承担角色后执行。 该命令将在以下环境变量设置为假定角色响应返回的凭据的情况下执行。
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN
- AWS_DEFAULT_REGION(仅当设置了-r或--region选项时)
示例
$ awsassume -a arn:aws:iam::0123456789012:role/assume_role_test -n sessionname -c aws s3 ls
如果省略-c或--command选项,则可以计算程序的输出,以便将以下环境变量导出到当前shell。
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN
- AWS_DEFAULT_REGION(仅当设置了-r或--region选项时)
示例
$ `awsassume -a arn:aws:iam::0123456789012:role/assume_role_test -n sessionname`
开发
克隆存储库
$ git clone https://github.com/zulhilmizainuddin/aws-assume.git
创建并激活虚拟环境
$ python -m venv ./venv $ source ./venv/bin/activate
安装到开发环境中
$ python setup.py develop
使用pytest运行单元测试
$ python setup.py test
使用mypy运行打字检查
$ mypy awsassume
发布到pypi
创建源和二进制分布
$ python setup.py sdist bdist_wheel
上载到PYPI
$ twine upload dist/*