class Awssume::Adapter::AwsClient

This is aws sts client wrapper class

Attributes

config[R]

Public Class Methods

new(config) click to toggle source
# File lib/awssume/adapter/aws_client.rb, line 9
def initialize(config)
  @config = config
end

Public Instance Methods

assume() click to toggle source
# File lib/awssume/adapter/aws_client.rb, line 13
def assume
  sts_client.assume_role(assume_role_params).credentials.to_h
end
role_session_name() click to toggle source
# File lib/awssume/adapter/aws_client.rb, line 17
def role_session_name
  config[:role_session_name]
end

Private Instance Methods

assume_role_params() click to toggle source
# File lib/awssume/adapter/aws_client.rb, line 23
def assume_role_params
  p = {
    role_arn: config[:role_arn],
    role_session_name: role_session_name,
    external_id: config[:external_id],
    duration_seconds: config[:duration_seconds],
  }

  p.delete(:external_id) unless p[:external_id]
  p.delete(:duration_seconds) \
    if p[:duration_seconds].nil? || p[:duration_seconds] == 0

  p
end
sts_client() click to toggle source
# File lib/awssume/adapter/aws_client.rb, line 38
def sts_client
  Aws::STS::Client.new(region: config[:region])
end