Class: AWS::IAM::AccessKey

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

Instance Attribute Summary collapse

Instance Method Summary collapse

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



30
31
32
33
34
35
# File 'lib/aws/iam/access_key.rb', line 30

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.



43
44
45
# File 'lib/aws/iam/access_key.rb', line 43

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



23
24
25
# File 'lib/aws/iam/access_key.rb', line 23

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.



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

def user
  @user
end

Instance Method Details

#activate!nil

Activates this access key.

Examples:

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

Returns:

  • (nil)


112
113
114
115
# File 'lib/aws/iam/access_key.rb', line 112

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.



95
96
97
# File 'lib/aws/iam/access_key.rb', line 95

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.



150
151
152
# File 'lib/aws/iam/access_key.rb', line 150

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)


126
127
128
129
# File 'lib/aws/iam/access_key.rb', line 126

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

#deleteObject

Deletes the access key.



132
133
134
135
# File 'lib/aws/iam/access_key.rb', line 132

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.



100
101
102
# File 'lib/aws/iam/access_key.rb', line 100

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.



81
82
83
# File 'lib/aws/iam/access_key.rb', line 81

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.



90
91
92
# File 'lib/aws/iam/access_key.rb', line 90

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