Class: Miasma::Contrib::Aws::Api::Sts
- Inherits:
-
Types::Api
- Object
- Types::Api
- Miasma::Contrib::Aws::Api::Sts
- Defined in:
- lib/miasma-aws/api/sts.rb
Constant Summary collapse
- API_SERVICE =
Service name of the API
'sts'- API_VERSION =
Supported version of the AutoScaling API
'2011-06-15'
Instance Method Summary collapse
-
#assume_role(role_arn, args = {}) ⇒ Hash
Assume new role.
Methods included from Miasma::Contrib::AwsApiCore::RequestUtils
Methods included from Miasma::Contrib::AwsApiCore::ApiCommon
#after_setup, #api_for, #connect, #connection, #custom_setup, #endpoint, included, #load_aws_file, #load_instance_credentials!, #make_request, #perform_request_retry, #retryable_allowed?, #sts_assume_role!, #sts_update_required?, #update_request, #uri_escape
Instance Method Details
#assume_role(role_arn, args = {}) ⇒ Hash
Assume new role
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/miasma-aws/api/sts.rb', line 24 def assume_role(role_arn, args={}) req_params = Smash.new.tap do |params| params['Action'] = 'AssumeRole' params['RoleArn'] = role_arn params['RoleSessionName'] = args[:session_name] || SecureRandom.uuid.tr('-', '') params['ExternalId'] = args[:external_id] if args[:external_id] end result = request( :path => '/', :params => req_params ).get(:body, 'AssumeRoleResponse', 'AssumeRoleResult') Smash.new( :aws_sts_token => result.get('Credentials', 'SessionToken'), :aws_secret_access_key => result.get('Credentials', 'SecretAccessKey'), :aws_access_key_id => result.get('Credentials', 'AccessKeyId'), :aws_sts_token_expires => Time.parse(result.get('Credentials', 'Expiration')), :aws_sts_assumed_role_arn => result.get('AssumedRoleUser', 'Arn'), :aws_sts_assumed_role_id => result.get('AssumedRoleUser', 'AssumedRoleId') ) end |