class CfnVpn::S3Bucket

Public Class Methods

new(region, name) click to toggle source
# File lib/cfnvpn/s3_bucket.rb, line 8
def initialize(region, name)
  @client = Aws::S3::Client.new(region: region)
  @name = name
end

Public Instance Methods

create_bucket(bucket) click to toggle source
# File lib/cfnvpn/s3_bucket.rb, line 17
def create_bucket(bucket)
  @client.create_bucket({
    bucket: bucket,
    acl: 'private'
  })

  @client.put_public_access_block({
    bucket: bucket,
    public_access_block_configuration: { 
      block_public_acls: true,
      ignore_public_acls: true,
      block_public_policy: true,
      restrict_public_buckets: true,
    }
  })

  @client.put_bucket_encryption({
    bucket: bucket,
    server_side_encryption_configuration: {
      rules: [
        {
          apply_server_side_encryption_by_default: {
            sse_algorithm: "AES256"
          }
        }
      ]
    }
  })
end
generate_bucket_name() click to toggle source
# File lib/cfnvpn/s3_bucket.rb, line 13
def generate_bucket_name
  return "cfnvpn-#{@name}-#{SecureRandom.hex}"
end