class Aws::Session::Credentials::SessionManager
Manages sessions
Public Instance Methods
assume_role(options)
click to toggle source
Assumes a role from provided options @param [Hash] options @option options [String] :profile @option options [String] :role_arn @option options [String] :duration
# File lib/aws/session/credentials/session_manager.rb, line 11 def assume_role(options) options[:profile] = options[:profile].to_sym session_prof = Cache.new.profile(options[:profile]) options = session_prof.to_h.deep_merge(options).deep_symbolize_keys sb = SessionBuilder.new( mfa_device: mfa_device(options), role_duration_seconds: options[:duration], role_arn: options[:role_arn], role_session_name: options[:role_session_name], source_profile: session_prof ) role_profile = sb.role_profile CredentialFile.new.set_profile(options[:profile], role_profile) end
new_session(options)
click to toggle source
Creates a new session from provided options @param [Hash] options @option options [String] :aws_access_key_id @option options [String] :aws_secret_access_key @option options [String] :aws_session_token @option options [String] :aws_region @option options [String] :source_profile @option options [String] :profile @option options [String] :duration @option options [String] :mfa_device @option options [String] :mfa_code @option options [String] :yubikey_name @option options [String] :oath_credential @option options [String] :config_file
# File lib/aws/session/credentials/session_manager.rb, line 43 def new_session(options) options[:source_profile] = options[:source_profile].to_sym options[:profile] = options[:profile].to_sym user_prof = user_profile(options[:source_profile], options[:config_file]) options = user_prof.to_h.deep_merge(options).deep_symbolize_keys sb = SessionBuilder.new( mfa_device: mfa_device(options), session_duration_seconds: options[:duration], source_profile: user_prof ) set_user_session_profile(options[:profile], sb.session_profile) end
Private Instance Methods
mfa_device(options)
click to toggle source
# File lib/aws/session/credentials/session_manager.rb, line 60 def mfa_device(options) opts = { device_arn: options[:mfa_device], yubikey_name: options[:yubikey_name], oath_credential: options[:oath_credential], code: options[:mfa_code] } if options.key?(:oath_credential) MfaDevice::YubikeyMfaDevice.new(opts) else MfaDevice::GenericMfaDevice.new(opts) end end
set_user_session_profile(name, profile)
click to toggle source
# File lib/aws/session/credentials/session_manager.rb, line 74 def set_user_session_profile(name, profile) [Cache.new, CredentialFile.new].each do |profile_store| profile_store.set_profile(name, profile) end end
user_profile(name, path)
click to toggle source
# File lib/aws/session/credentials/session_manager.rb, line 80 def user_profile(name, path) Config.new(path: path).profile(name) end
user_session_profile(name)
click to toggle source
# File lib/aws/session/credentials/session_manager.rb, line 84 def user_session_profile(name) Cache.new.profile(name) end