Class: Awspec::Generator::Spec::IamPolicy
- Inherits:
-
Object
- Object
- Awspec::Generator::Spec::IamPolicy
- Includes:
- Helper::Finder
- Defined in:
- lib/awspec/generator/spec/iam_policy.rb
Constant Summary
Constants included from Helper::Finder
Instance Method Summary collapse
- #generate_all ⇒ Object
-
#policy_spec_template ⇒ Object
rubocop:disable all.
Methods included from Helper::Finder::Waf
#find_waf_ip_set, #find_waf_rule, #find_waf_web_acl
Methods included from Helper::Finder::Cloudtrail
#find_trail, #get_trail_status, #is_logging?, #select_all_trails
Methods included from Helper::Finder::Elastictranscoder
Methods included from Helper::Finder::Cloudfront
Methods included from Helper::Finder::Ami
Methods included from Helper::Finder::Directconnect
#find_virtual_interface, #select_virtual_interfaces
Methods included from Helper::Finder::Ses
Methods included from Helper::Finder::CloudwatchEvent
#find_cloudwatch_event, #select_all_cloudwatch_events
Methods included from Helper::Finder::Cloudwatch
#find_cloudwatch_alarm, #select_all_cloudwatch_alarms
Methods included from Helper::Finder::Elasticsearch
#find_elasticsearch_domain, #select_all_elasticsearch_domains
Methods included from Helper::Finder::Elasticache
#find_cache_cluster, #find_cache_subnet_group
Methods included from Helper::Finder::Kms
#find_kms_key, #find_kms_key_by_alias, #select_all_kms_aliases
Methods included from Helper::Finder::Iam
#select_all_attached_policies, #select_all_iam_groups, #select_all_iam_roles, #select_all_iam_users, #select_attached_entities, #select_attached_groups, #select_attached_roles, #select_attached_users, #select_iam_group_by_user_name, #select_policy_evaluation_results
Methods included from Helper::Finder::Lambda
#find_lambda, #select_all_lambda_functions, #select_event_source_by_function_arn
Methods included from Helper::Finder::Elb
#find_elb, #select_elb_by_vpc_id
Methods included from Helper::Finder::Ebs
#find_ebs, #select_all_attached_ebs, #select_ebs_by_instance_id
Methods included from Helper::Finder::Autoscaling
#find_autoscaling_group, #find_launch_configuration
Methods included from Helper::Finder::S3
#find_bucket, #find_bucket_acl, #find_bucket_cors, #find_bucket_logging, #find_bucket_policy, #find_bucket_versioning, #select_all_buckets
Methods included from Helper::Finder::Route53
#find_hosted_zone, #select_record_sets_by_hosted_zone_id
Methods included from Helper::Finder::Rds
#find_rds, #select_rds_by_vpc_id
Methods included from Helper::Finder::SecurityGroup
#find_security_group, #select_security_group_by_vpc_id
Methods included from Helper::Finder::Ecs
#find_ecs_cluster, #find_ecs_container_instances, #find_ecs_service, #find_ecs_task_definition, #list_ecs_container_instances
Methods included from Helper::Finder::Ecr
Methods included from Helper::Finder::Ec2
#find_ec2, #find_ec2_attribute, #find_ec2_status, #find_nat_gateway, #find_network_interface, #find_vpn_connection, #select_ec2_by_vpc_id, #select_eip_by_instance_id, #select_nat_gateway_by_vpc_id, #select_network_interface_by_vpc_id
Methods included from Helper::Finder::Subnet
#find_subnet, #select_subnet_by_vpc_id
Methods included from Helper::Finder::Vpc
#find_network_acl, #find_route_table, #find_vpc, #find_vpc_peering_connection, #select_network_acl_by_vpc_id, #select_route_table_by_vpc_id
Instance Method Details
#generate_all ⇒ Object
5 6 7 8 9 |
# File 'lib/awspec/generator/spec/iam_policy.rb', line 5 def generate_all policies = select_all_attached_policies raise 'Not Found policy' if policies.empty? ERB.new(policy_spec_template, nil, '-').result(binding).chomp end |
#policy_spec_template ⇒ Object
rubocop:disable all
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/awspec/generator/spec/iam_policy.rb', line 12 def policy_spec_template template = <<-'EOF' <% policies.each do |policy| %> describe iam_policy('<%= policy.policy_name %>') do it { should exist } <%- if policy.is_attachable -%> it { should be_attachable } <%- else -%> it { should_not be_attachable } <%- end -%> its(:arn) { should eq '<%= policy.arn %>' } its(:update_date) { should eq Time.parse('<%= policy.update_date %>') } its(:attachment_count) { should eq <%= policy.attachment_count %> } <%- users = select_attached_users(policy.arn) -%> <%- if users.empty? -%> it { should_not be_attached_to_user } <%- else -%> <%- users.each do |user| -%> it { should be_attached_to_user('<%= user.user_name %>') } <%- end -%> <%- end -%> <%- groups = select_attached_groups(policy.arn) -%> <%- if groups.empty? -%> it { should_not be_attached_to_group } <%- else -%> <%- groups.each do |group| -%> it { should be_attached_to_group('<%= group.group_name %>') } <%- end -%> <%- end -%> <%- roles = select_attached_roles(policy.arn) -%> <%- if roles.empty? -%> it { should_not be_attached_to_role } <%- else -%> <%- roles.each do |role| -%> it { should be_attached_to_role('<%= role.role_name %>') } <%- end -%> <%- end -%> end <% end %> EOF template end |