Class: Fog::AWS::STS::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/rackspace-fog/aws/sts.rb,
lib/rackspace-fog/aws/requests/sts/get_session_token.rb,
lib/rackspace-fog/aws/requests/sts/get_federation_token.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Real

Initialize connection to STS

Notes

options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection

Examples

iam = STS.new(
 :aws_access_key_id => your_aws_access_key_id,
 :aws_secret_access_key => your_aws_secret_access_key
)

Parameters

  • options<~Hash> - config arguments for connection. Defaults to {}.

Returns

  • STS object with connection to AWS.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/rackspace-fog/aws/sts.rb', line 67

def initialize(options={})
  require 'rackspace-fog/core/parser'

  @aws_access_key_id      = options[:aws_access_key_id]
  @aws_secret_access_key  = options[:aws_secret_access_key]
  @connection_options     = options[:connection_options] || {}
  @hmac       = Fog::HMAC.new('sha256', @aws_secret_access_key)
  @host       = options[:host]        || 'sts.amazonaws.com'
  @path       = options[:path]        || '/'
  @persistent = options[:persistent]  || false
  @port       = options[:port]        || 443
  @scheme     = options[:scheme]      || 'https'
  @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
end

Instance Method Details

#get_federation_token(name, policy, duration = 43200) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/rackspace-fog/aws/requests/sts/get_federation_token.rb', line 8

def get_federation_token(name, policy, duration=43200)
  request({
    'Action'          => 'GetFederationToken',
    'Name'            => name,
    'Policy'          => Fog::JSON.encode(policy),
    'DurationSeconds' => duration,
    :idempotent       => true,
    :parser           => Fog::Parsers::AWS::STS::GetSessionToken.new
  })
end

#get_session_token(duration = 43200) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/rackspace-fog/aws/requests/sts/get_session_token.rb', line 8

def get_session_token(duration=43200)
  request({
    'Action'          => 'GetSessionToken',
    'DurationSeconds' => duration,
    :idempotent       => true,
    :parser           => Fog::Parsers::AWS::STS::GetSessionToken.new
  })
end

#reloadObject



82
83
84
# File 'lib/rackspace-fog/aws/sts.rb', line 82

def reload
  @connection.reset
end