aws_s3

Collect logs from AWS S3

Type: aws_s3

{% code title=”sample.yaml” %}

sources:
  aws_s3_example:
    type: aws_s3
    sqs.queue_url: https://sqs.us-east-1.amazonaws.com
    region: bytes
    auth.strategy: access_key_id
    auth.access_key_id: ''
    auth.secret_access_key: ''
    auth.credentials_file: ''
    decoding.codec: bytes
    route_label: ''
    tls:
      tls.enabled: false
      tls.alpn_protocols: ''
      tls.verify_certificate: true
      tls.verify_hostname: true
      tls.ca_file: ''
      tls.crt_file: ''
      tls.key_file: ''
      tls.key_pass: ''
  # optional:
  #   <key>: <value>

{% endcode %}

Fields Reference

Below are tables for Base, TLS, and Optional sections. Columns: Key, Label, Type, Default, Required, Depends on, Enum / Notes.

Base

Key

Label

Type

Default

Required

Enum / Notes

Depends on

sqs.queue_url

SQS Queue URL

string

https://sqs.us-east-1.amazonaws.com

βœ…

The URL of the SQS queue to poll for bucket notifications.

β€”

region

Region

enum

bytes

βœ…

The AWS region of the target service. Enum: [β€œaf-south-1”, β€œap-east-1”, β€œap-northeast-1”, β€œap-northeast-2”, β€œap-northeast-3”, β€œap-south-1”, β€œap-south-2”, β€œap-southeast-1”, β€œap-southeast-2”, β€œap-southeast-3”, β€œap-southeast-4”, β€œap-southeast-5”, β€œap-southeast-7”, β€œca-central-1”, β€œca-west-1”, β€œeu-central-1”, β€œeu-central-2”, β€œeu-north-1”, β€œeu-south-1”, β€œeu-south-2”, β€œeu-west-1”, β€œeu-west-2”, β€œeu-west-3”, β€œil-central-1”, β€œme-central-1”, β€œme-south-1”, β€œmx-central-1”, β€œsa-east-1”, β€œus-east-1”, β€œus-east-2”, β€œus-west-1”, β€œus-west-2”]

β€”

auth.strategy

Auth Strategy

enum

access_key_id

βœ…

The authentication strategy to use. Enum: [β€œaccess_key_id”, β€œcredentials_file”, β€œimds”]

β€”

auth.access_key_id

Auth Access Key ID

string

β€œβ€

βœ…

The AWS access key ID.

auth.strategy = access_key_id

auth.secret_access_key

Auth Secret Access Key

string

β€œβ€

βœ…

The AWS secret access key.

auth.strategy = access_key_id

auth.credentials_file

Auth Credentials File

string

β€œβ€

βœ…

Path to the credentials file.

auth.strategy = credentials_file

decoding.codec

Decoding Codec

enum

bytes

βœ…

The codec to use for decoding events. Enum: [β€œavro”, β€œbytes”, β€œgelf”, β€œinfluxdb”, β€œjson”, β€œnative”, β€œnative_json”, β€œprotobuf”, β€œsyslog”, β€œvrl”]

β€”

route_label

Event Routing Label

string

β€œβ€

β€”

The label to use in routing these events to a destination. Defaults to source name-type.

β€”

TLS

Key

Label

Type

Default

Required

Enum / Notes

Depends on

tls.enabled

TLS Enabled

bool

false

β€”

Whether or not to require TLS for incoming or outgoing connections.

β€”

tls.alpn_protocols

ALPN protocols

string

β€œβ€

β€”

List of supported ALPN protocols.

β€”

tls.verify_certificate

Verify Certificate

bool

true

β€”

Enable certificate verification.

β€”

tls.verify_hostname

Verify Hostname

bool

true

β€”

Enable hostname verification.

β€”

tls.ca_file

Certificate Authority File

file_ca_file

β€œβ€

β€”

Absolute path to an additional CA certificate file.

β€”

tls.crt_file

Certificate File

file_crt_file

β€œβ€

β€”

Absolute path to a certificate file used to identify this server.

β€”

tls.key_file

Private Key

file_key_file

β€œβ€

β€”

Absolute path to a private key file used to identify this server.

β€”

tls.key_pass

Private Key Passphrase

string

β€œβ€

β€”

Passphrase used to unlock the encrypted key file.

β€”

Optional

Key

Label

Type

Default

Required

Enum / Notes

Depends on

description

Description

string

β€œβ€

β€”

The description of the entry.

β€”

auth.assume_role

Auth Assume Role

string

β€œβ€

β€”

The ARN of an IAM role to assume.

β€”

auth.external_id

Auth External ID

string

β€œβ€

β€”

Unique external ID used with assume role.

β€”

auth.imds.connect_timeout_seconds

Auth IMDS Connect Timeout Seconds

int

1

β€”

Connect timeout for IMDS.

auth.strategy = imds

auth.imds.max_attempts

Auth IMDS Max Attempts

int

4

β€”

Number of IMDS retries.

auth.strategy = imds

auth.load_timeout_secs

Auth Load Timeout Secs

int

30

β€”

Timeout for loading any credentials (secs).

auth.strategy = imds

auth.region

Auth Region

string

β€œβ€

β€”

The AWS region.

β€”

auth.session_name

Auth Session Name

string

β€œβ€

β€”

Role session name for assumed role.

β€”

compression

Compression

enum

auto

β€”

Compression algorithm. Enum: [β€œauto”, β€œgzip”, β€œnone”, β€œzstd”]

β€”

decoding.avro.schema

Decoding Avro Schema

string

β€œβ€

β€”

The Avro schema definition.

decoding.codec = avro

decoding.avro.strip_schema_id_prefix

Strip Avro Schema ID Prefix

bool

true

β€”

Strip schema ID prefix for Avro datum.

decoding.codec = avro

decoding.gelf.lossy

Decoding Gelf Lossy

bool

true

β€”

Replace invalid UTF-8 instead of failing.

decoding.codec = gelf

decoding.influxdb.lossy

Decoding Influxdb Lossy

bool

true

β€”

Replace invalid UTF-8 instead of failing.

decoding.codec = influxdb

decoding.json.lossy

Decoding Json Lossy

bool

true

β€”

Replace invalid UTF-8 instead of failing.

decoding.codec = json

decoding.native_json.lossy

Decoding Native Json Lossy

bool

true

β€”

Replace invalid UTF-8 instead of failing.

decoding.codec = native_json

decoding.protobuf.desc_file

Decoding Protobuf Desc File

string

β€œβ€

β€”

Path to desc file.

decoding.codec = protobuf

decoding.protobuf.message_type

Decoding Protobuf Message Type

string

β€œβ€

β€”

Message type for desc file.

decoding.codec = protobuf

decoding.syslog.lossy

Decoding Syslog Lossy

bool

true

β€”

Replace invalid UTF-8 instead of failing.

decoding.codec = syslog

decoding.vrl.source

Decoding Vrl Source

string

β€œβ€

β€”

VRL program to execute for each event.

decoding.codec = vrl

decoding.vrl.timezone

Decoding Vrl Timezone

string

local

β€”

Timezone name for timestamp conversions.

decoding.codec = vrl

endpoint

Endpoint

string

β€œβ€

β€”

Custom endpoint for AWS-compatible services.

β€”

force_path_style

Force Path Style

bool

true

β€”

Use path-style addressing instead of virtual-hosted.

β€”

multiline.condition_pattern

Multiline Condition Pattern

string

β€œβ€

β€”

Regex that determines whether more lines should be read.

β€”

multiline.mode

Multiline Mode

enum

continue_past

β€”

Aggregation mode; must be used with condition_pattern. Enum: [β€œcontinue_past”, β€œcontinue_through”, β€œhalt_before”, β€œhalt_with”]

β€”

multiline.start_pattern

Multiline Start Pattern

string

β€œβ€

β€”

Regex that matches the start of a new message.

β€”

multiline.timeout_ms

Multiline Timeout MS

int

600000

β€”

Max time to wait for next additional line (ms).

β€”

proxy.enabled

Proxy Enabled

bool

false

β€”

Enable proxying support.

β€”

proxy.http

Proxy HTTP

regex

β€”

β€”

Proxy endpoint for HTTP traffic.

β€”

proxy.https

Proxy HTTPS

regex

β€”

β€”

Proxy endpoint for HTTPS traffic.

β€”

proxy.no_proxy

Proxy No Proxy

string

β€œβ€

β€”

Comma-separated list of hosts to avoid proxying.

β€”

sqs.client_concurrency

SQS Client Concurrency

int

β€”

β€”

Number of concurrent polling tasks.

β€”

sqs.connect_timeout_seconds

SQS Connect Timeout

int

β€”

β€”

Connection timeout for AWS requests.

β€”

sqs.delete_failed_message

SQS Delete Failed Message

bool

true

β€”

Delete non-retryable messages after rejection by sink.

β€”

sqs.delete_message

SQS Delete Message

bool

true

β€”

Delete the message once processed.

β€”

sqs.max_number_of_messages

SQS Max Number of Messages

int

10

βœ…

Maximum number of messages to poll in a batch.

β€”

sqs.operation_timeout_seconds

SQS Operation Timeout

int

β€”

β€”

Operation timeout for AWS requests.

β€”

sqs.poll_secs

SQS Poll Secs

int

15

βœ…

Seconds to wait while polling for new messages.

β€”

sqs.read_timeout_seconds

SQS Read Timeout

int

β€”

β€”

Read timeout for AWS requests.

β€”

sqs.tls_options.enabled

SQS TLS Enabled

bool

false

β€”

Require TLS for outgoing connections to SQS.

β€”

sqs.tls_options.alpn_protocols

SQS TLS ALPN protocols

string

β€œβ€

β€”

List of supported ALPN protocols for SQS client.

β€”

sqs.tls_options.server_name

SQS TLS Server Name

string

β€œβ€

β€”

Server name for SNI.

β€”

sqs.tls_options.verify_certificate

SQS TLS Verify Certificate

bool

true

β€”

Enable certificate verification for SQS.

β€”

sqs.tls_options.verify_hostname

SQS TLS Verify Hostname

bool

true

β€”

Enable hostname verification for SQS.

β€”

sqs.tls_options.ca_file

SQS TLS Certificate Authority File

file_ca_file

β€œβ€

β€”

Additional CA certificate file for SQS.

β€”

sqs.tls_options.crt_file

SQS TLS Certificate File

file_crt_file

β€œβ€

β€”

Client certificate file for SQS.

β€”

sqs.tls_options.key_file

SQS TLS Private Key

file_key_file

β€œβ€

β€”

Client private key for SQS.

β€”

sqs.tls_options.key_pass

SQS TLS Private Key Passphrase

string

β€œβ€

β€”

Passphrase to unlock the SQS key file.

β€”