module IdentityAccessManagement

Module for dealing with IAM.

Public Class Methods

api(region = Settings.default_region) click to toggle source
# File lib/superluminal/iam.rb, line 8
def self.api(region = Settings.default_region)
  @api ||= Aws::IAM::Client.new region: region
end
apply_policies(to_user: nil, for_project: nil) click to toggle source
# File lib/superluminal/iam.rb, line 48
def self.apply_policies(to_user: nil, for_project: nil)
  policies = UserPolicy.generate(for_project, Settings)
  policies.each do |policy|
    UserPolicy.upload policy[:document], named: policy[:name], for_user: to_user
    Announce.success "Applied policy #{ policy[:name] } to #{ to_user }."
  end
end
create_user(user_name) click to toggle source
# File lib/superluminal/iam.rb, line 41
def self.create_user(user_name)
  api.create_user user_name: user_name
  Announce.success "#{ user_name } created."
  rescue Aws::IAM::Errors::EntityAlreadyExists
    Announce.success "#{ user_name } already exists."
end