You are viewing documentation for version 1 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: AWS::Core::CredentialProviders::DefaultProvider

Inherits:
Object
  • Object
show all
Includes:
Provider
Defined in:
lib/aws/core/credential_providers.rb

Overview

The default credential provider makes a best effort to locate your AWS credentials. It checks a variety of locations in the following order:

  • Static credentials from AWS.config (e.g. AWS.config.access_key_id, AWS.config.secret_access_key)

  • The environment (e.g. ENV['AWS_ACCESS_KEY_ID'] or ENV['AMAZON_ACCESS_KEY_ID'])

  • EC2 metadata service (checks for credentials provided by roles for instances).

Constant Summary

Constant Summary

Constants included from Provider

Provider::KEYS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Provider

#access_key_id, #secret_access_key, #session_token

Constructor Details

#initialize(static_credentials = {}) ⇒ DefaultProvider

Returns a new instance of DefaultProvider



116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/aws/core/credential_providers.rb', line 116

def initialize static_credentials = {}
  @providers = []
  @providers << StaticProvider.new(static_credentials)
  @providers << ENVProvider.new('AWS')
  @providers << ENVProvider.new('AWS', :access_key_id => 'ACCESS_KEY', :secret_access_key => 'SECRET_KEY', :session_token => 'SESSION_TOKEN')
  @providers << ENVProvider.new('AMAZON')
  begin
    if Dir.home
      @providers << SharedCredentialFileProvider.new
    end
  rescue ArgumentError, NoMethodError
  end
  @providers << EC2Provider.new
end

Instance Attribute Details

#providersArray<Provider> (readonly)

Returns:



132
133
134
# File 'lib/aws/core/credential_providers.rb', line 132

def providers
  @providers
end

Instance Method Details

#credentialsObject



134
135
136
137
138
139
140
141
# File 'lib/aws/core/credential_providers.rb', line 134

def credentials
  providers.each do |provider|
    if provider.set?
      return provider.credentials
    end
  end
  raise Errors::MissingCredentialsError
end

#refreshObject



147
148
149
150
151
# File 'lib/aws/core/credential_providers.rb', line 147

def refresh
  providers.each do |provider|
    provider.refresh
  end
end

#set?Boolean

Returns:

  • (Boolean)


143
144
145
# File 'lib/aws/core/credential_providers.rb', line 143

def set?
  providers.any?(&:set?)
end