class Outliers::Resources::Aws::S3::Bucket

Public Instance Methods

configured_as_website?() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 38
def configured_as_website?
  !website_configuration.nil?
end
empty?() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 7
def empty?
  logger.debug "Bucket #{id} has #{count} objects."

  count == 0
end
no_public_objects?() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 13
def no_public_objects?
  passed = true
  
  logger.info "Validating #{objects.count} objects in '#{id}' are private."

  objects.each do |o|
    logger.debug "Verifying '#{o.key}' is private."
    o.acl.grants.select do |g|
      grantee = Nokogiri::XML(g.grantee.to_s).children.children.children.to_s
      if grantee == "http://acs.amazonaws.com/groups/global/AllUsers" || grantee == "http://acs.amazonaws.com/groups/global/AuthenticatedUsers"
        logger.debug "Object '#{o.key}' in '#{id}' has public grant '#{grantee}'."
        passed = false
      end
    end
  end

  logger.debug "Verification of '#{id}' #{passed ? 'passed' : 'failed'}."

  passed
end
not_configured_as_website?() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 34
def not_configured_as_website?
  !configured_as_website?
end

Private Instance Methods

count() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 48
def count
  objects.count
end
objects() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 52
def objects
  @objects ||= source.objects
end
website_configuration() click to toggle source
# File lib/outliers/resources/aws/s3/bucket.rb, line 44
def website_configuration
  source.website_configuration
end