aws-session-credentials 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTg4MzliNjVjMjM1OTc3MTM5YmJlZWU2NTBjNzVlZTNmZjJhYWJlOA==
5
+ data.tar.gz: !binary |-
6
+ MjkwNThiMmYwYWFkZjNjNTg1OTk1NDkwZDU1YjQ4Nzc5NTY5MjU5Nw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDkwYmRlYzYwOWMwZWVkYmQ4MmZjZGNiZDc4YjE1ZWJhZGZkNjA4OTZmOTAx
10
+ Nzk0ZmE0YjM2ODRkZmE3OGEzMDg3ZDBhOGVhZTJiNmQ2YTcwMzQ3ZWZiOTIz
11
+ N2RjMzRlOGMwMWIyYzZhMWU4NDA0YmU1ZTg4M2IzMjY2ZDE4NzQ=
12
+ data.tar.gz: !binary |-
13
+ OTYyZDQ1ZTEyNDMxYTY5OWVjZTM3MmY5NjA0YWJhZTY5NjBkMjhhMWQ0MzFm
14
+ NDhhMjk2ZmVjNDczYjI0MTQ0ZjFkNGQzYzc0ZWE1MmQwNTc1OTQ4MDE0Y2Rj
15
+ ZjJhNjYyZjk1ZTVhYWVkODQxN2EzODg2ZWI4NmM4MTkyZDZlMjA=
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.3
4
+ before_install: gem install bundler -v 1.10.6
5
+ deploy:
6
+ provider: rubygems
7
+ api_key:
8
+ secure: JvG2IbQf/X0apcDdi2e8Ex6UamwelO8T6N+CwAG2pFino5B8Pvj16JdLGypHeVQSA4QaTpgwRfyb/2zipBuxtrVhQ3FoJP1wxOA2hR/xImmlEL5Q8gOswYZL8EHVvnhzIcSfjzIBhr1Um65pkDWlsNCgsD/3EPJHGUDTH2d20OkiEZSk4U+HnWXKTufDzuFy8APzaBnI8Kg8som7pxuPrYXg5hIdmnoAGUwz2KclbcijXxqWycf7KVadlAH2QqzbzPhZ2rEAddG8GTfLkaul+9QXRMiU/Vz969ie0Qy2Px0/3fZWyAjA3Bxrj9SgdU70UOUbxUKK/EDifporZ/Cd/pWNM/lpiMG/KVaPPot6lpc5PGseC3Iwj7aasaYRjaLPGPEI6LNTSnlcOuf+R62rInR4Z7DfjsWXlBdJalTg+gmpvi0a5V65t+fUq3At0Icme3RJW1V5fRqc4RzHk0p3Ce2JYHKg/GhUtmhKu0jLPwzpFNH3dCtBNFH3v2USrOi+gYKNRjxNkVGTqWQJiWi33RlTN2+boC5cVDXJkjGRCngjxkYYKyZYRZXqqzdBcXkJuuGoGQYSDlb6xY74j40igbiQTkvByIj2mfWKiLQJrVW4c+WK3EhmoOx/bv8Fyu5C8/IDgO3k4X8RfaKbMOlYoX8Sb0qZlQQ3yvVDV/34AHQ=
9
+ on:
10
+ tags: true
@@ -0,0 +1,13 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
6
+
7
+ Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
+
9
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
+
11
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
+
13
+ This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in aws-session-credentials.gemspec
4
+ gemspec
@@ -0,0 +1,76 @@
1
+ # Aws::Session::Credentials
2
+
3
+ [![Build Status](https://travis-ci.org/zl4bv/aws-session-credentials.svg)](https://travis-ci.org/zl4bv/aws-session-credentials)
4
+
5
+ Command-line tool to generate AWS session credentials.
6
+
7
+ Gets a set of session credentials from the AWS STS service and saves them to
8
+ `~/.aws/credentials` (by default). You can optionally provide an MFA device and
9
+ code too if your IAM user/role requires it.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ gem 'aws-session-credentials'
17
+ ```
18
+
19
+ And then execute:
20
+
21
+ $ bundle
22
+
23
+ Or install it yourself as:
24
+
25
+ $ gem install aws-session-credentials
26
+
27
+ ## Usage
28
+
29
+ Example:
30
+
31
+ ```
32
+ $ aws-session --mfa-code 123456
33
+ ```
34
+
35
+ To set the full list of CLI options:
36
+
37
+ ```
38
+ $ aws-session --help new
39
+
40
+ Usage:
41
+ aws-session
42
+
43
+ Options:
44
+ [--access-key-id=ACCESS-KEY-ID] # Access key used to generate session token
45
+ [--secret-access-key=SECRET-ACCESS-KEY] # Secret key used to generate session token
46
+ [--region=REGION] # AWS region to connect to
47
+ [--config-file=CONFIG-FILE] # YAML file to load config from
48
+ # Default: ~/.aws/credentials.yml
49
+ [--credential-file=CREDENTIAL-FILE] # INI file to save session credentials to
50
+ # Default: ~/.aws/credentials
51
+ [--profile=PROFILE] # Profile that session token will be loaded into
52
+ # Default: default
53
+ [--duration=N] # Duration, in seconds, that credentials should remain valid
54
+ # Default: 1
55
+ [--mfa-device=MFA-DEVICE] # ARN of MFA device
56
+ [--mfa-code=MFA-CODE] # Six digit code from MFA device
57
+ ```
58
+
59
+ ### Config File
60
+
61
+ By default this is located at `~/.aws/credentials.yml`.
62
+
63
+ Example:
64
+
65
+ ```yaml
66
+ ---
67
+ aws_access_key_id: AKIAIOSFODNN7EXAMPLE
68
+ aws_secret_access_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
69
+ region: ap-southeast-2
70
+ duration: 86400
71
+ mfa_device: arn:aws:iam::000000000000:mfa/user.name@example.com
72
+ ```
73
+
74
+ ## Contributing
75
+
76
+ Bug reports and pull requests are welcome on GitHub at https://github.com/zl4bv/aws-session-credentials. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'aws/session/credentials/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'aws-session-credentials'
8
+ spec.version = Aws::Session::Credentials::VERSION
9
+ spec.authors = ['Ben Vidulich']
10
+ spec.email = ['ben@vidulich.co.nz']
11
+
12
+ spec.summary = %q{Command-line tool to generate AWS session credentials.}
13
+ spec.description = %q{Command-line tool to generate AWS session credentials.}
14
+ spec.homepage = 'https://github.com/zl4bv/aws-session-credentials'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = 'exe'
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.10'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'rspec'
24
+ spec.add_development_dependency 'rspec-its'
25
+
26
+ spec.add_runtime_dependency 'aws-sdk', '~> 2.1'
27
+ spec.add_runtime_dependency 'inifile', '~> 3.0'
28
+ spec.add_runtime_dependency 'thor', '~> 0.19'
29
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "aws/session/credentials"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'aws/session/credentials/cli'
3
+
4
+ Aws::Session::Credentials::Cli.start
@@ -0,0 +1,10 @@
1
+ require 'aws-sdk'
2
+ require 'fileutils'
3
+ require 'inifile'
4
+ require 'yaml'
5
+
6
+ require 'aws/session/credentials/config'
7
+ require 'aws/session/credentials/credential_file'
8
+ require 'aws/session/credentials/session_builder'
9
+
10
+ require 'aws/session/credentials/version'
@@ -0,0 +1,66 @@
1
+ require 'thor'
2
+ require 'aws/session/credentials'
3
+
4
+ module Aws
5
+ module Session
6
+ module Credentials
7
+ # Command line interface
8
+ class Cli < Thor
9
+ method_option 'access-key-id',
10
+ type: :string,
11
+ desc: 'Access key used to generate session token',
12
+ default: nil
13
+ method_option 'secret-access-key',
14
+ type: :string,
15
+ desc: 'Secret key used to generate session token',
16
+ default: nil
17
+ method_option 'region',
18
+ type: :string,
19
+ desc: 'AWS region to connect to',
20
+ default: nil
21
+ method_option 'config-file',
22
+ type: :string,
23
+ desc: 'YAML file to load config from',
24
+ default: '~/.aws/credentials.yml'
25
+ method_option 'credential-file',
26
+ type: :string,
27
+ desc: 'INI file to save session credentials to',
28
+ default: '~/.aws/credentials'
29
+ method_option 'profile',
30
+ type: :string,
31
+ desc: 'Profile that session token will be loaded into',
32
+ default: 'default'
33
+ method_option 'duration',
34
+ type: :numeric,
35
+ desc: 'Duration, in seconds, that credentials should remain valid',
36
+ default: 1
37
+ method_option 'mfa-device',
38
+ type: :string,
39
+ desc: 'ARN of MFA device',
40
+ default: nil
41
+ method_option 'mfa-code',
42
+ type: :string,
43
+ desc: 'Six digit code from MFA device',
44
+ default: nil
45
+ desc 'new', 'Generates new AWS session credentials'
46
+ def new
47
+ config = Config.new(options['config-file'])
48
+ config.aws_access_key_id ||= options['access-key-id']
49
+ config.aws_secret_access_key ||= options['secret-access-key']
50
+ config.region ||= options['region']
51
+ config.credential_file ||= options['credential-file']
52
+ config.profile ||= options['profile']
53
+ config.duration ||= options['duration']
54
+ config.mfa_device ||= options['mfa-device']
55
+ config.mfa_code ||= options['mfa-code']
56
+
57
+ cf = CredentialFile.new(config.credential_file)
58
+ sb = SessionBuilder.new(config.to_h)
59
+ sb.update_credential_file(cf)
60
+ end
61
+
62
+ default_task :new
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,95 @@
1
+ module Aws
2
+ module Session
3
+ module Credentials
4
+ # Holds configuration
5
+ class Config
6
+ def initialize(path, config = nil)
7
+ @path = File.expand_path(path) if path
8
+ @config = config || load_file
9
+ end
10
+
11
+ def [](key)
12
+ @config[key]
13
+ end
14
+
15
+ def []=(key, value)
16
+ @config[key] = value
17
+ end
18
+
19
+ def aws_access_key_id
20
+ self['aws_access_key_id']
21
+ end
22
+
23
+ def aws_access_key_id=(value)
24
+ self['aws_access_key_id'] = value
25
+ end
26
+
27
+ def aws_secret_access_key
28
+ self['aws_secret_access_key']
29
+ end
30
+
31
+ def aws_secret_access_key=(value)
32
+ self['aws_secret_access_key'] = value
33
+ end
34
+
35
+ def credential_file
36
+ self['credential_file']
37
+ end
38
+
39
+ def credential_file=(value)
40
+ self['credential_file'] = value
41
+ end
42
+
43
+ def duration
44
+ self['duration']
45
+ end
46
+
47
+ def duration=(value)
48
+ self['duration'] = value
49
+ end
50
+
51
+ # @api private
52
+ def load_file
53
+ return {} unless File.exist?(@path)
54
+ YAML.load(File.read(@path))
55
+ end
56
+
57
+ def mfa_code
58
+ self['mfa_code']
59
+ end
60
+
61
+ def mfa_code=(value)
62
+ self['mfa_code'] = value
63
+ end
64
+
65
+ def mfa_device
66
+ self['mfa_device']
67
+ end
68
+
69
+ def mfa_device=(value)
70
+ self['mfa_device'] = value
71
+ end
72
+
73
+ def profile
74
+ self['profile']
75
+ end
76
+
77
+ def profile=(value)
78
+ self['profile'] = value
79
+ end
80
+
81
+ def region
82
+ self['region']
83
+ end
84
+
85
+ def region=(value)
86
+ self['region'] = value
87
+ end
88
+
89
+ def to_h
90
+ @config
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,41 @@
1
+ module Aws
2
+ module Session
3
+ module Credentials
4
+ # AWS credentials file. Usually located on disk at +~/.aws/credentials+.
5
+ class CredentialFile
6
+ # @param [String] path location of credentials file on disk
7
+ # @param [IniFile] ini_file
8
+ def initialize(path = '~/.aws/credentials', ini_file = nil)
9
+ @path = File.expand_path(path)
10
+ @ini_file = ini_file || init_ini_file
11
+ end
12
+
13
+ # @api private
14
+ def init_ini_file
15
+ if File.exist?(@path)
16
+ IniFile.load(@path)
17
+ else
18
+ path_dir = File.dirname(@path)
19
+ FileUtils.mkdir_p(path_dir) unless File.exist?(path_dir)
20
+ IniFile.new(filename: @path, encoding: 'UTF-8')
21
+ end
22
+ end
23
+
24
+ # Sets credentials for provided profile.
25
+ #
26
+ # Overrides provided options if they already exist for the provided
27
+ # profile. Does not override options if they are not provided. Set an
28
+ # option to +nil+ to explicitly unset an existing option.
29
+ # @param [String] profile name of profile to set credentials for
30
+ # @param [Hash] options settings to set
31
+ # @option options [String] :access_key_id Access key
32
+ # @option options [String] :secret_access_key Secret key
33
+ # @option options [String] :session_token Session token
34
+ def set_credentials(profile, options = {})
35
+ @ini_file[profile] = @ini_file[profile].merge(options)
36
+ @ini_file.write
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,48 @@
1
+ module Aws
2
+ module Session
3
+ module Credentials
4
+ # Builds AWS session
5
+ class SessionBuilder
6
+ # @param [Hash] config configuration
7
+ # @param [Aws::STS::Client] client STS client
8
+ def initialize(config, client = nil)
9
+ @config = config
10
+ @client = client || init_client
11
+ end
12
+
13
+ # @api private
14
+ def init_client
15
+ Aws::STS::Client.new(
16
+ region: @config['region'],
17
+ access_key_id: @config['aws_access_key_id'],
18
+ secret_access_key: @config['aws_secret_access_key']
19
+ )
20
+ end
21
+
22
+ # Gets a set of session credentials
23
+ #
24
+ # @return [Aws::STS::Types::Credentials] credentials or +nil+
25
+ def session_credentials
26
+ resp = @client.get_session_token(
27
+ duration_seconds: @config['duration'],
28
+ serial_number: @config['mfa_device'],
29
+ token_code: @config['mfa_code']
30
+ )
31
+ return {
32
+ 'aws_access_key_id' => resp.credentials['access_key_id'],
33
+ 'aws_secret_access_key' => resp.credentials['secret_access_key'],
34
+ 'aws_session_token' => resp.credentials['session_token']
35
+ } if resp
36
+ end
37
+
38
+ # Gets a set of session credentials and updates them in a credential
39
+ # file.
40
+ #
41
+ # @param [String] path location of credential file
42
+ def update_credential_file(credential_file)
43
+ credential_file.set_credentials(@config['profile'], session_credentials)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,7 @@
1
+ module Aws
2
+ module Session
3
+ module Credentials
4
+ VERSION = "0.1.0"
5
+ end
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aws-session-credentials
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ben Vidulich
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-10-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-its
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: aws-sdk
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '2.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: inifile
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: thor
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '0.19'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '0.19'
111
+ description: Command-line tool to generate AWS session credentials.
112
+ email:
113
+ - ben@vidulich.co.nz
114
+ executables:
115
+ - aws-session
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - .rspec
121
+ - .travis.yml
122
+ - CODE_OF_CONDUCT.md
123
+ - Gemfile
124
+ - README.md
125
+ - Rakefile
126
+ - aws-session-credentials.gemspec
127
+ - bin/console
128
+ - bin/setup
129
+ - exe/aws-session
130
+ - lib/aws/session/credentials.rb
131
+ - lib/aws/session/credentials/cli.rb
132
+ - lib/aws/session/credentials/config.rb
133
+ - lib/aws/session/credentials/credential_file.rb
134
+ - lib/aws/session/credentials/session_builder.rb
135
+ - lib/aws/session/credentials/version.rb
136
+ homepage: https://github.com/zl4bv/aws-session-credentials
137
+ licenses: []
138
+ metadata: {}
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 2.4.5
156
+ signing_key:
157
+ specification_version: 4
158
+ summary: Command-line tool to generate AWS session credentials.
159
+ test_files: []