class Speculate::Assumption
Base class for assumptions
Public Class Methods
new(params = {})
click to toggle source
# File lib/speculate/assumption.rb, line 9 def initialize(params = {}) @options = params end
Public Instance Methods
creds()
click to toggle source
# File lib/speculate/assumption.rb, line 13 def creds @creds ||= assumed_role.credentials end
logout_url()
click to toggle source
# File lib/speculate/assumption.rb, line 21 def logout_url @logout_url ||= console.logout_url end
url()
click to toggle source
# File lib/speculate/assumption.rb, line 17 def url @url ||= console.url end
Private Instance Methods
assumed_role()
click to toggle source
# File lib/speculate/assumption.rb, line 27 def assumed_role @assumed_role ||= client.assume_role( role_arn: role_arn, role_session_name: role_session_name, **mfa_args ) end
client()
click to toggle source
# File lib/speculate/assumption.rb, line 35 def client @client ||= Aws::STS::Client.new(local_config) end
console()
click to toggle source
# File lib/speculate/assumption.rb, line 39 def console @console ||= Speculate::Console.new(creds: creds) end
local_account_id()
click to toggle source
# File lib/speculate/assumption.rb, line 72 def local_account_id @local_account_id ||= local_identity.account end
local_config()
click to toggle source
# File lib/speculate/assumption.rb, line 84 def local_config @local_config ||= @options[:creds] || {} end
local_identity()
click to toggle source
# File lib/speculate/assumption.rb, line 80 def local_identity @local_identity ||= client.get_caller_identity end
local_user_name()
click to toggle source
# File lib/speculate/assumption.rb, line 76 def local_user_name @local_user_name ||= local_identity.arn.split(':').last.tr('/', '_') end
mfa()
click to toggle source
# File lib/speculate/assumption.rb, line 43 def mfa @mfa ||= @options[:mfa] end
mfa_args()
click to toggle source
# File lib/speculate/assumption.rb, line 51 def mfa_args return {} unless mfa { serial_number: mfa_device, token_code: mfa } end
mfa_device()
click to toggle source
# File lib/speculate/assumption.rb, line 47 def mfa_device @mfa_device ||= local_identity.arn.sub('user/', 'mfa/') end
role_arn()
click to toggle source
# File lib/speculate/assumption.rb, line 60 def role_arn @role_arn ||= "arn:aws:iam::#{target_account_id}:role/#{role_name}" end
role_name()
click to toggle source
# File lib/speculate/assumption.rb, line 56 def role_name @role ||= @options[:role_name] || raise('No role_name supplied') end
role_session_name()
click to toggle source
# File lib/speculate/assumption.rb, line 64 def role_session_name @role_session_name ||= local_user_name end
target_account_id()
click to toggle source
# File lib/speculate/assumption.rb, line 68 def target_account_id @target_account_id ||= @options[:account_id] || local_account_id end