Sha256: beda9189a85ae5c94fc11953fdbf8bf445020460e2a745afd6feaf27020a2336

Contents?: true

Size: 1.23 KB

Versions: 27

Compression:

Stored size: 1.23 KB

Contents

class WAFV2 < Mapper
  #
  # Returns an array of resources.
  #
  # TODO: test live
  # TODO: resolve scope (e.g. CLOUDFRONT supported?)
  # TODO: confirm paging behavior
  #
  def collect
    resources = []

    #
    # list_web_acls
    #
    # %w[CLOUDFRONT REGIONAL].each do |scope|
    %w[REGIONAL].each do |scope|
      @client.list_web_acls({ scope: scope }).each_with_index do |response, page|
        log(response.context.operation_name, page)

        response.web_acls.each do |acl|
          struct = OpenStruct.new(acl.to_h)
          struct.type = 'web_acl'
          # struct.arn = "arn:aws:#{@service}:#{@region}::web_acl/#{acl.id}"

          params = {
            name: acl.name,
            scope: scope,
            id: acl.id
          }

          # get_web_acl
          @client.get_web_acl(params).each do |response|
            struct.arn = response.web_acl.arn
            struct.details = response.web_acl
          end

          # list_resources_for_web_acl
          @client.list_resources_for_web_acl({ web_acl_arn: 'ResourceArn' }).each do |response|
            struct.resources = response.resource_arns.map(&:to_h)
          end

          resources.push(struct.to_h)
        end
      end
    end

    resources
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
aws_recon-0.2.27 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.26 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.25 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.24 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.23 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.22 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.21 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.20 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.19 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.18 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.17 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.16 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.15 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.14 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.13 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.12 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.11 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.10 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.9 lib/aws_recon/collectors/wafv2.rb
aws_recon-0.2.8 lib/aws_recon/collectors/wafv2.rb