生成gossamer配置文件和aws别名

goss-config-gen的Python项目详细描述


薄纱/AWS别名生成器

生成Gossamer和aws别名 基于单个配置文件。

要求

  • python 2.7或3.6

    建议使用^{}分隔 您的python环境。

  • Gossamer

安装

  1. 安装最新版本的Gossamer

  2. 确保将gossamer保存到的路径位于$PATH中。

    linux/mac:

    添加到.bashrc(Linux)或.bash_profile(Mac)中:

    export PATH=$PATH:<add the path to the folder containing the Gossamer binary>
    

    Windows:

    https://helpdeskgeek.com/windows-10/add-windows-path-environment-variable/

  3. 安装goss config gen

    pip install goss-config-gen
    
  4. .bash_profile的底部添加以下内容:

    # Generated aliases
    if [ -f $HOME/gossamer/goss-generated-aliases.sh ]; then
        . $HOME/gossamer/goss-generated-aliases.sh
    fi
    

配置

配置文件可以手动指定为参数--config-file-c,也可以使用 GOSS_GEN_CONFIG环境变量。它默认为$HOME/goss-config.json这里是 默认情况下需要存储配置文件。有一个sample configuration file可用 让你开始根据需要自定义值。

OutputDirectory

将要写入文件的输出目录。

此参数是可选的,默认为$HOME/gossamer

OutputFile

包含所有生成别名的输出文件

此参数是可选的,默认为goss-generated-aliases.sh

RoleAliases

别名到角色的映射。

此参数是可选的,允许创建映射到一个或多个角色的别名。

"RoleAliases":{"all":["path/role1","path/role2]}

例如,如果您试图在使用上述方法的所有帐户中承担角色path/role1path/role2 配置时,生成的别名将是goss-all。除了这些别名之外,默认情况下,每个 将创建角色名的规范化版本(/替换为-)。

GossamerPath

gossamer可执行文件的路径。默认为/usr/local/bin/gossamer

AWSCredentialsPath

AWS凭据文件的路径。默认为$HOME/.aws/credentials

AWSCLIPath

aws cli可执行文件的路径。默认为/usr/local/bin/aws

BaseProfile

具有可以假定角色的凭据的基本配置文件此配置文件应该已经在 AWS凭据文件。默认为“默认”

Accounts

包含帐户信息的对象列表。此参数是必需的

下面是每个对象支持的字段的概述

FieldDescriptionRequiredDefaults
IdAccount IDYes
NameAccount NameYes
AliasString to use in the generated alias (i.e. if this is ^{}, the generated alias will be ^{})NoValue of the "Name" field
RegionAWS regionYes
RoleRole name, including path, to assumeYes

用法

  1. 运行goss-config-gen

    goss-config-gen
    
  2. 重新启动终端

  3. 使用生成的别名之一。例如,如果您的Alias之一设置为a,则将生成名为goss-a的别名别名的用法如下:

    goss-a [enter your MFA code here]
    
< H2>导入现有的角色文件< /H2>

如果已经有多个gossamer角色文件,则可以通过以下方式生成goss-config-gen配置文件 将这些角色文件传递到goss-config-gen

例如,如果您有以下角色文件:

role-file-1

{"Roles":[{"AccountName":"acct-a","Region":"us-east-1","RoleArn":"arn:aws:iam::123456789012:role/path/role1"},{"AccountName":"acct-b","Region":"us-east-1","Role":"arn:aws:iam::987654321098:role/path/role1"}]}

role-file-2

{"Roles":[{"AccountName":"acct-c","Region":"us-east-1","Role":"arn:aws:iam::123456789012:role/cs/role2"},{"AccountName":"acct-d","Region":"us-east-1","Role":"arn:aws:iam::111111111111:role/cs/role2"}]}

运行以下命令生成配置文件:

goss-config-gen \
    --config-file <path-where-config-file-will-be-saved> \
    --import-file <path-to-role-file-1> \
    --import-file <path-to-role-file-2>

注意:参数--config-file是可选的,仅当配置文件应保存到自定义位置时才需要。

它将生成以下配置文件,可用于后续

{"Accounts":[{"Id":"123456789012","Name":"acct-a","Region":"us-east-1","Role":"path/role1"},{"Id":"987654321098","Name":"acct-b","Region":"us-east-1","Role":"path/role1"},{"Id":"123456789012","Name":"acct-c","Region":"us-east-1","Role":"path/role2"},{"Id":"111111111111","Name":"acct-d","Region":"us-east-1","Role":"path/role2"}]}

现在要用新的配置文件生成别名,只需像平常一样运行goss-config-gen

goss-config-gen --config-file <path-to-config-file>

注意:同样,--config-file参数是可选的,只有当配置文件存储在自定义位置时才需要。

样本

sample configuration file将生成以下别名:

goss-a
goss-b
goss-c
goss-d
goss-e
goss-acct-f

aws-a
aws-b
aws-c
aws-d
aws-e
aws-acct-f

awsi-a
awsi-b
awsi-c
awsi-d
awsi-e
awsi-acct-f

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

推荐PyPI第三方库


热门话题
java传递实现接口的内部类   java为什么managedbean方法在post请求中的过滤器调用之前调用   java Android应用程序在Android M,O上崩溃,登录A/libc时出错:tid 17938中的致命信号11(SIGSEGV),代码2,故障地址0x343a2944   java JPA存储库。findByAll()返回null,但数据库中存在所有内容   用于发送电子邮件的java Ant脚本   Java小程序HTML页面发生了奇怪的事情   在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入Java Rest API   无法强制转换java DAO类   10分钟后重新连接java   正则表达式如何在java中选择字符串直到某个字符   java我的输出有一些问题   Objective中的java时间段   java如何在新屏幕上基于按钮单击在webview中打开url   java哪个selenium版本与Firefox ESR 45.2.0兼容   java无法使用Apache Camel 3.1.0将XML转换为JSON