class Ec2Iam::IamConfig
Constants
- CONFIG
- GROUP_NAME
Attributes
group[R]
iam[R]
profile[R]
Public Class Methods
format_key(profile, key)
click to toggle source
# File lib/ec2iam/iam_config.rb, line 22 def self.format_key(profile, key) <<-KEY aws_keys( #{profile}: { access_key_id: '#{key[:access_key_id]}', secret_access_key: '#{key[:secret_access_key]}' } ) KEY end
new(account_key)
click to toggle source
# File lib/ec2iam/iam_config.rb, line 10 def initialize(account_key) @profile = account_key raise AccountKeyNotFound if CONFIG[@profile] == nil @iam = AWS::IAM.new( access_key_id: CONFIG[@profile]['access_key_id'], secret_access_key: CONFIG[@profile]['secret_access_key'] ) @group = @iam.groups[GROUP_NAME].exists? ? @iam.groups[GROUP_NAME] : create_ec2_read_only_group end
write_key(user_name, formatted_str)
click to toggle source
# File lib/ec2iam/iam_config.rb, line 42 def self.write_key(user_name, formatted_str) File.open("#{Dir.home}/.aws/#{user_name}.keys", "a") do |f| f.write(formatted_str) end end
write_keys(user_name, array)
click to toggle source
# File lib/ec2iam/iam_config.rb, line 48 def self.write_keys(user_name, array) str = "aws_keys(\n" array.each do |hash| str << <<-KEYS #{hash[:profile]}: { access_key_id: '#{hash[:credentials][:access_key_id]}', secret_access_key: '#{hash[:credentials][:secret_access_key]}' }, KEYS end str << ")\n" write_key(user_name, str) end
Public Instance Methods
create_ec2_read_only_group()
click to toggle source
# File lib/ec2iam/iam_config.rb, line 30 def create_ec2_read_only_group policy = AWS::IAM::Policy.new do |p| p.allow( actions: ["ec2:Describe*"], resources: "*" ) end group = @iam.groups.create(GROUP_NAME) group.policies[GROUP_NAME] = policy group end