class StackMaster::Identity
Constants
- MissingIamPermissionsError
Public Instance Methods
account()
click to toggle source
# File lib/stack_master/identity.rb, line 12 def account @account ||= sts.get_caller_identity.account end
account_aliases()
click to toggle source
# File lib/stack_master/identity.rb, line 16 def account_aliases @aliases ||= iam.list_account_aliases.account_aliases rescue Aws::IAM::Errors::AccessDenied raise MissingIamPermissionsError, 'Failed to retrieve account aliases. Missing required IAM permission: iam:ListAccountAliases' end
running_in_account?(accounts)
click to toggle source
# File lib/stack_master/identity.rb, line 5 def running_in_account?(accounts) accounts.nil? || accounts.empty? || contains_account_id?(accounts) || contains_account_alias?(accounts) end
Private Instance Methods
contains_account_alias?(aliases)
click to toggle source
# File lib/stack_master/identity.rb, line 40 def contains_account_alias?(aliases) account_aliases.any? { |account_alias| aliases.include?(account_alias) } end
contains_account_id?(ids)
click to toggle source
# File lib/stack_master/identity.rb, line 36 def contains_account_id?(ids) ids.include?(account) end
iam()
click to toggle source
# File lib/stack_master/identity.rb, line 32 def iam @iam ||= Aws::IAM::Client.new(region: region) end
region()
click to toggle source
# File lib/stack_master/identity.rb, line 24 def region @region ||= ENV['AWS_REGION'] || Aws.config[:region] || Aws.shared_config.region || 'us-east-1' end
sts()
click to toggle source
# File lib/stack_master/identity.rb, line 28 def sts @sts ||= Aws::STS::Client.new(region: region) end