Class: AWS::IAM::AccessKey

Inherits:
Resource show all
Defined in:
lib/aws/iam/access_key.rb

Instance Attribute Summary collapse

Attributes included from Core::Model

#config

Instance Method Summary collapse

Methods inherited from Resource

#exists?, prefix_update_attributes, update_prefix

Methods inherited from Core::Resource

attribute_providers, attribute_providers_for, attributes, #attributes_from_response, define_attribute_type, #eql?, #inspect, new_from

Methods included from Core::Cacheable

included, #retrieve_attribute

Methods included from Core::Model

#client, #config_prefix, #inspect

Constructor Details

#initialize(access_key_id, options = {}) ⇒ AccessKey

Returns a new instance of AccessKey.

Parameters:

  • access_key_id (String)

    The id of this access key.

  • options (Hash) (defaults to: {})
  • [String] (Hash)

    a customizable set of options


27
28
29
30
31
32
# File 'lib/aws/iam/access_key.rb', line 27

def initialize access_key_id, options = {}
  @id = access_key_id
  options[:secret_value] = nil unless options.has_key?(:secret_value)
  @user = options[:user]
  @user ? super(@user, options) : super(options)
end

Instance Attribute Details

#idString (readonly) Also known as: access_key_id

Returns the access key id.

Returns:

  • (String)

    Returns the access key id.


40
41
42
# File 'lib/aws/iam/access_key.rb', line 40

def id
  @id
end

#statusSymbol (readonly)

The status of this access key. Status may be :active or :inactive.

Returns:

  • (Symbol)

    the current value of status


20
21
22
# File 'lib/aws/iam/access_key.rb', line 20

def status
  @status
end

#userUser? (readonly)

Returns the user this access key belongs to. Returns nil if this access key belongs to the AWS account and not a specific user.

Returns:

  • (User, nil)

    Returns the user this access key belongs to. Returns nil if this access key belongs to the AWS account and not a specific user.


37
38
39
# File 'lib/aws/iam/access_key.rb', line 37

def user
  @user
end

Instance Method Details

#activate!nil

Activates this access key.

Examples:

access_key.activate!
access_key.status
# => :active

Returns:

  • (nil)

109
110
111
112
# File 'lib/aws/iam/access_key.rb', line 109

def activate!
  self.status = 'Active'
  nil
end

#active?Boolean

Returns true if this access key is active.

Returns:

  • (Boolean)

    Returns true if this access key is active.


92
93
94
# File 'lib/aws/iam/access_key.rb', line 92

def active?
  status == :active
end

#credentialsHash

Returns a hash that should be saved somewhere safe.

access_keys = iam.access_keys.create
access_keys.credentials
#=> { :access_key_id => '...', :secret_access_key => '...' }

You can also use these credentials to make requests:

s3 = AWS::S3.new(access_keys.credentials)
s3.buckets.create('newbucket')

Returns:

  • (Hash)

    Returns a hash with the access key id and secret access key.


147
148
149
# File 'lib/aws/iam/access_key.rb', line 147

def credentials
  { :access_key_id => id, :secret_access_key => secret }
end

#deactivate!nil

Deactivates this access key.

Examples:

access_key.deactivate!
access_key.status
# => :inactive

Returns:

  • (nil)
  • (nil)

123
124
125
126
# File 'lib/aws/iam/access_key.rb', line 123

def deactivate!
  self.status = 'Inactive'
  nil
end

#deleteObject

Deletes the access key.


129
130
131
132
# File 'lib/aws/iam/access_key.rb', line 129

def delete
  client.delete_access_key(resource_options)
  nil
end

#inactive?Boolean

Returns true if this access key is inactive.

Returns:

  • (Boolean)

    Returns true if this access key is inactive.


97
98
99
# File 'lib/aws/iam/access_key.rb', line 97

def inactive?
  status == :inactive
end

#secretString Also known as: secret_access_key

Returns the secret access key.

You can only access the secret for newly created access keys. Calling secret on existing access keys raises an error.

Examples:

Getting the secret from a newly created access key


access_key = iam.access_keys.create
access_key.secret
#=> 'SECRET_ACCESS_KEY'

Failing to get the secret from an existing access key.


access_key = iam.access_keys.first
access_key.secret
#=> raises a runtime error

Returns:

  • (String)

    Returns the secret access key.


78
79
80
# File 'lib/aws/iam/access_key.rb', line 78

def secret
  secret_value or raise 'secret is only available for new access keys'
end

#user_nameString?

Returns the name of the user this access key belogns to. If the access key belongs to the account, nil is returned.

Returns:

  • (String, nil)

    Returns the name of the user this access key belogns to. If the access key belongs to the account, nil is returned.


87
88
89
# File 'lib/aws/iam/access_key.rb', line 87

def user_name
  @user ? @user.name : nil
end