class Plat::Role::IAMRole
Constants
- ACCESS_TYPES
Attributes
cpu_role[R]
Public Class Methods
new(cpu_role)
click to toggle source
# File lib/plat/role/iam_role.rb, line 10 def initialize(cpu_role) @cpu_role = cpu_role end
Public Instance Methods
accessible_roles()
click to toggle source
# File lib/plat/role/iam_role.rb, line 18 def accessible_roles if access_options = options[:access] if (access_options.keys & ACCESS_TYPES).empty? roles_with_access access_options, :full else ACCESS_TYPES.map do |access_type| access_options[access_type] ? roles_with_access(access_options[access_type],access_type) : {} end.collect(&:+) end else roles_with_access all_roles, :full end end
all_roles()
click to toggle source
# File lib/plat/role/iam_role.rb, line 14 def all_roles @all_roles ||= layout.roles.keys end
aws_policy()
click to toggle source
# File lib/plat/role/iam_role.rb, line 46 def aws_policy @aws_policy ||= AWS::IAM::Policy.new do |policy| accessible_roles.each_pair do |role,access_type| role.allow_access(policy,access_type) end end end
roles_with_access(access_options,access_type)
click to toggle source
# File lib/plat/role/iam_role.rb, line 31 def roles_with_access(access_options,access_type) roles = all_roles if access_options.is_a? Hash if access_options[:only] roles &= Array(access_options[:only]) end if access_options[:except] roles -= Array(access_options[:except]) end else roles &= Array(access_options) end roles.map { |role| [role,access_type] }.to_hash end