class S3Secure::AccessLogs::Enable

Public Instance Methods

add_bucket_acl() click to toggle source

Bucket ACL applies on the target bucket only

# File lib/s3_secure/access_logs/enable.rb, line 10
def add_bucket_acl
  if @show.acl_enabled?
    say "Bucket acl already has log delivery ACL"
    return
  end

  s3.put_bucket_acl(
    bucket: @bucket,
    access_control_policy: @show.access_control_policy_with_log_delivery_permissions,
  )
  say "Added to bucket acl that grants log delivery"
end
enable_access_logging() click to toggle source
# File lib/s3_secure/access_logs/enable.rb, line 23
def enable_access_logging
  if @show.logging_enabled?
    say "Bucket access logging already enabled"
    return
  end

  s3.put_bucket_logging(
    bucket: @bucket, # source
    bucket_logging_status: {
      logging_enabled: {
        target_bucket: @show.target_bucket,
        target_prefix: @show.target_prefix,
      },
    },
  )
  say "Enabled access logging on the source bucket #{@bucket} to be delivered to the target bucket #{@show.target_bucket}"
end
run() click to toggle source
# File lib/s3_secure/access_logs/enable.rb, line 3
def run
  @show = Show.new(bucket: @bucket)
  add_bucket_acl
  enable_access_logging
end