Sha256: db76743005b32067cd429047fdca200a5f2f48b51185b345f8091e42df303542
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
#!/usr/bin/env ruby require 'aws-sdk' require 'aws_config' require 'aws-sdk' class Role attr_accessor :role_arn def initialize(role_arn,region, profile) if self.class.test_role_arn(role_arn) @role_arn = role_arn else raise ArgumentError.new("Role Arn is not valid") end @region = region @profile = profile @client = Aws::STS::Client.new( region: @region, profile: @profile, ) end def self.test_role_arn(role_arn) role_arn =~ /^arn:aws:iam::(\d+):role\/([^\/]+)(\/.+)?$/ end def self.blurb puts "aws-sts <role>" end def print_keys credentials = get_keys puts "export AWS_ACCESS_KEY_ID=#{credentials.access_key_id}" puts "export AWS_SECRET_ACCESS_KEY=#{credentials.secret_access_key}" puts "export AWS_SESSION_TOKEN=#{credentials.session_token}" puts "export ASSUMED_ROLE=#{@profile}" puts "# run eval $(ruby Role.rb <profile>)" end private def get_keys resp = @client.assume_role({ role_arn: @role_arn, role_session_name: @profile, }) resp.credentials end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aws-sts-0.1.0 | lib/aws/sts/role.rb |