担任角色后执行aws cli命令

awsassume的Python项目详细描述


https://travis-ci.org/zulhilmizainuddin/aws-assume.svg?branch=masterMaintainability

担任角色后执行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/*

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

推荐PyPI第三方库


热门话题
java将Map<String,String>传递给需要Map<String,Object>   java在循环中使用字符串而不是StringBuilder是否会造成内存损失?   jnlp如何更新java控制台JRE?   java更改、修改和重新打包CXFAPI源文件   JavaFXJava应用程序在Fedora上运行一段时间后关闭   使用来自不同类的方法的java   java如何通过ant脚本在linux中使用subst?   java在使用camunda modeler进行base64编码/解码时出错   获取java。netbeans、weblogic和fastswap设置为true时的lang.NoSuchMethodError   java如何提高FinalizerThread在GC中收集对象的优先级   java检测具有相同根的单词   netbeans crud应用程序中的java错误