module IdentityAccessManagement::UserPolicy
Public Class Methods
from_template(template, project: nil, settings: nil)
click to toggle source
# File lib/superluminal/iam.rb, line 13 def self.from_template(template, project: nil, settings: nil) policy = YAML.load_file "#{ settings.template_path }/#{ template }.yaml" policy['Statement'].each do |statement| statement['Resource'] = settings.environments.map do |environment| "arn:aws:s3:::#{ settings.s3.namespace }-#{ project }-#{ environment.name }#{ policy['Metadata']['resource_suffix'] }" end end policy.delete 'Metadata' return MultiJson.encode policy end
generate(project_name, settings, templates: ['s3/bucket', 's3/contents'])
click to toggle source
# File lib/superluminal/iam.rb, line 24 def self.generate(project_name, settings, templates: ['s3/bucket', 's3/contents']) templates.map do |template| { name: template.gsub(/\//, '-'), document: from_template(template, project: project_name, settings: settings) } end end
upload(policy, named: nil, for_user: nil)
click to toggle source
# File lib/superluminal/iam.rb, line 32 def self.upload(policy, named: nil, for_user: nil) IdentityAccessManagement.api.put_user_policy( user_name: for_user, policy_name: named, policy_document: policy ) end