# AWS S3 Send events to **AWS S3**. **Type:** `aws_s3` ## Sample YAML ```yaml destinations: aws_s3_example: type: aws_s3 bucket: '' region: ap-southeast-2 key_prefix: date=%F encoding.codec: json tls: tls.enabled: false tls.alpn_protocols: '' tls.ca_file: '' tls.crt_file: '' tls.key_file: '' tls.key_pass: '' tls.server_name: '' tls.verify_certificate: true tls.verify_hostname: true # optional: # : ``` ## 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 | |---|---|---|---|---|---|---| | bucket | Bucket | string | "" | ✅ | The S3 bucket name. This must not include a leading s3:// or a trailing /. | — | | region | Region | enum | ap-southeast-2 | ✅ | The AWS region of the target service. Enum: ["us-east-2", "us-east-1", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-2", "ap-southeast-3", "ap-southeast-4", "ap-south-1", "ap-northeast-3", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "ca-central-1", "ca-west-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-south-1", "eu-west-3", "eu-south-2", "eu-north-1", "eu-central-2", "il-central-1", "me-south-1", "me-central-1", "sa-east-1", "us-gov-east-1", "us-gov-west-1"] | — | | key_prefix | Key Prefix | string | date=%F | — | A prefix to apply to all object keys. | — | | encoding.codec | Encoding Codec | enum | json | ✅ | The codec to use for encoding events. Enum: ["avro", "csv", "gelf", "json", "logfmt", "native", "native_json", "protobuf", "raw_message", "text"] | — | ### 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. When enabled and used for incoming connections, an identity certificate is also required. See tls.crt_file for more information. | — | | tls.alpn_protocols | ALPN protocols | string | "" | — | Sets the list of supported ALPN protocols. Declare the supported ALPN protocols, which are used during negotiation with peer. They are prioritized in the order that they are defined. | — | | 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. | — | | tls.server_name | Server Name | string | "" | — | Server name to use when using Server Name Indication (SNI). | — | | tls.verify_certificate | Verify Certificate | bool | true | — | Enables certificate verification. For components that create a server, this requires that the client connections have a valid client certificate. For components that initiate requests, this validates that the upstream has a valid certificate. | — | | tls.verify_hostname | Verify Hostname | bool | true | — | Enables hostname verification. If enabled, the hostname used to connect to the remote host must be present in the TLS certificate presented by the remote host, either as the Common Name or as an entry in the Subject Alternative Name extension. Only relevant for outgoing connections. | — | ### Optional | Key | Label | Type | Default | Required | Enum / Notes | Depends on | |---|---|---|---|---|---|---| | description | Description | string | "" | — | The description of the entry. | — | | acknowledgements.enabled | Acknowledgements Enabled | bool | false | — | Whether or not end-to-end acknowledgements are enabled. | — | | acl | ACL | enum | private | — | Canned ACL to apply to the created objects. Enum: ["authenticated-read", "aws-exec-read", "bucket-owner-full-control", "bucket-owner-read", "log-delivery-write", "private", "public-read", "public-read-write"] | — | | auth.assume_role | Assume Role | string | "" | — | The ARN of an IAM role to assume. | — | | auth.access_key_id | Access Key ID | string | "" | — | The AWS access key ID. | — | | auth.secret_access_key | Secret Access Key | string | "" | — | The AWS secret access key. | — | | auth.session_token | Session Token | string | "" | — | The AWS session token. Used for AWS authentication when communicating with AWS services. | — | | auth.region | Auth Region | string | "" | — | The AWS region. | — | | batch.max_bytes | Batch Max Bytes | int | 10000000 | — | The maximum size of a batch that is processed by a sink. | — | | batch.max_events | Batch Max Events | int | 500 | — | The maximum size of a batch before it is flushed. | — | | batch.timeout_secs | Batch Timeout Secs | int | 300 | — | The maximum age of a batch before it is flushed. | — | | buffer.type | Buffer Type | enum | memory | — | The type of buffer to use. Enum: ["disk", "memory"] | — | | buffer.max_events | Buffer Max Events | int | 500 | — | The maximum number of events allowed in the buffer. | buffer.type = memory | | buffer.max_size | Buffer Max Size | int | 268435488 | — | The maximum size of the buffer on disk. Must be at least ~256 megabytes (268435488 bytes). | buffer.type = disk | | buffer.when_full | Buffer When Full | enum | block | — | Event handling behavior when a buffer is full. Enum: ["block", "drop_newest"] | — | | compression | Compression | enum | gzip | — | The compression algorithm to use. Enum: ["gzip", "none", "snappy", "zlib", "zstd"] | — | | encoding.avro.schema | Encoding Avro Schema | string | "" | — | The Avro schema. | encoding.codec = avro | | encoding.csv.capacity | Encoding CSV Capacity | int | 8192 | — | Set the capacity (in bytes) of the internal buffer used in the CSV writer. This defaults to a reasonable setting. | encoding.codec = csv | | encoding.csv.delimiter | Encoding CSV Delimiter | string | , | — | The field delimiter to use when writing CSV. | encoding.codec = csv | | encoding.csv.double_quote | Encoding CSV Double Quote | bool | true | — | Enable double quote escapes. This is enabled by default, but it may be disabled. When disabled, quotes in field data are escaped instead of doubled. | encoding.codec = csv | | encoding.csv.escape | Encoding CSV Escape | string | " | — | The escape character to use when writing CSV. | encoding.codec = csv | | encoding.csv.fields | Encoding CSV Fields | string | "" | — | Configures the fields that will be encoded, as well as the order in which they appear in the output. | encoding.codec = csv | | encoding.csv.quote | Encoding CSV Quote | string | " | — | The quote character to use when writing CSV. | encoding.codec = csv | | encoding.csv.quote_style | Encoding CSV Quote Style | enum | necessary | — | The quoting style to use when writing CSV data. Enum: ["always", "necessary", "never", "non_numeric"] | encoding.codec = csv | | encoding.except_fields | Encoding Except Fields | string | "" | — | List of fields that are excluded from the encoded event. | — | | encoding.json.pretty | Encoding Json Pretty | bool | true | — | Whether to use pretty JSON formatting. | encoding.codec = json | | encoding.json.metric_tag_values | Encoding Metric Tag Values | enum | single | — | Controls how metric tag values are encoded. Enum: ["full", "single"] | encoding.codec = json | | encoding.text.metric_tag_values | Encoding Metric Tag Values | enum | single | — | Controls how metric tag values are encoded. Enum: ["full", "single"] | encoding.codec = text | | encoding.only_fields | Encoding Only Fields | string | "" | — | List of fields that are included in the encoded event. | — | | encoding.protobuf.desc_file | Encoding Protobuf Desc File | string | "" | — | The path to the protobuf descriptor set file. | encoding.codec = protobuf | | encoding.protobuf.message_type | Encoding Protobuf Message Type | string | "" | — | The name of the message type to use for serializing. | encoding.codec = protobuf | | encoding.timestamp | Encoding Timestamp | enum | rfc3339 | — | Format used for timestamp fields. Enum: ["rfc3339", "unix", "unix_float", "unix_ms", "unix_ns", "unix_us"] | — | | endpoint | Endpoint | string | "" | — | Custom endpoint for use with AWS-compatible services. | — | | filename_append_uuid | Filename Append UUID | bool | true | — | Whether or not to append a UUID v4 token to the end of the object key. | — | | filename_extension | Filename Extension | string | "" | — | The filename extension to use in the object key. This overrides setting the extension based on the configured compression. | — | | filename_time_format | Filename Time Format | string | %s | — | The timestamp format for the time component of the object key. | — | | framing.method | Framing Method | enum | none | — | The framing method. Enum: ["none", "bytes", "character_delimited", "length_delimited", "newline_delimited"] | — | | framing.character_delimited.delimiter | Framing Character Delimited Delimiter | string | "" | — | The character that delimits byte sequences. | framing.method = character_delimited | | framing.character_delimited.max_length | Framing Character Delimited Max Length | int | — | — | The maximum length of the byte buffer. This length does not include the trailing delimiter. | framing.method = character_delimited | | framing.length_delimited.length_field_is_big_endian | Framing Length Delimited Length Field is Big Endian | bool | true | — | Length field byte order (little or big endian). | framing.method = length_delimited | | framing.length_delimited.length_field_length | Framing Length Delimited Length Field Length | int | 4 | — | Number of bytes representing the field length. | framing.method = length_delimited | | framing.length_delimited.length_field_offset | Framing Length Delimited Length Field Offset | int | — | — | Number of bytes in the header before the length field. | framing.method = length_delimited | | framing.length_delimited.max_frame_length | Framing Length Delimited Frame Length | int | — | — | Maximum frame length. | framing.method = length_delimited | | framing.newline_delimited.max_length | Framing Newline Delimited Max Length | int | — | — | The maximum length of the byte buffer. | framing.method = newline_delimited | | grant_full_control | Grant Full Control | string | "" | — | Grants READ, READ_ACP, and WRITE_ACP permissions on the created objects to the named grantee. | — | | grant_read | Grant Read | string | "" | — | Grants READ permissions on the created objects to the named grantee. | — | | grant_read_acp | Grant Read ACP | string | "" | — | Grants READ_ACP permissions on the created objects to the named grantee. | — | | grant_write_acp | Grant Write ACP | string | "" | — | Grants WRITE_ACP permissions on the created objects to the named grantee. | — | | proxy.enabled | Proxy Enabled | bool | false | — | Enables proxying support. | — | | proxy.http | Proxy HTTP | regex | — | — | Proxy endpoint to use when proxying HTTP traffic. | — | | proxy.https | Proxy HTTPS | regex | — | — | Proxy endpoint to use when proxying HTTPS traffic. | — | | proxy.no_proxy | Proxy No Proxy | string | "" | — | A list of hosts to avoid proxying. | — | | server_side_encryption | Server Side Encryption | enum | none | — | AWS S3 Server-Side Encryption algorithms. Enum: ["none", "AES256", "aws:kms"] | — | | ssekms_key_id | SSEKMS Key ID | string | — | — | Specifies the ID of the AWS Key Management Service (AWS KMS) symmetrical customer managed customer master key (CMK) that is used for the created objects. | server_side_encryption = aws:kms | | storage_class | Storage Class | enum | Standard | — | The storage class for the created objects. Enum: ["Standard", "Deep_Archive", "Express_Onezone", "Glacier", "Intelligent_Tiering", "Onezone_IA", "Reduced_Redundancy", "Standard_IA"] | — | | timezone | Timezone | string | "" | — | Timezone to use for any date specifiers in template strings. This can refer to any valid timezone as defined in the TZ database, or local which refers to the system local timezone. | — |