General availability (GA) Open source
Last reviewed: September 11, 2026

remote.s3

remote.s3 exposes the string contents of a file located in AWS S3 to other components. remote.s3 polls the file for changes, so the most recent content is always available.

The most common use of remote.s3 is to load secrets from files.

You can specify multiple remote.s3 components by giving them different labels. By default, remote.s3 uses AWS environment variables to authenticate against S3. Use the key and secret arguments inside client blocks to provide custom authentication.

Note

remote.s3 can read other S3-compatible systems, but they may require specific authentication environment variables. remote.s3 isn’t guaranteed to work with non-AWS S3 systems.

Usage

Alloy
remote.s3 "<LABEL>" {
  path = "<S3_FILE_PATH>"
}

Arguments

You can use the following arguments with remote.s3:

NameTypeDescriptionDefaultRequired
pathstringPath in the format of "s3://bucket/file".yes
is_secretboolMarks the file as containing a secret.falseno
poll_frequencydurationHow often to poll the file for changes. Must be greater than 30 seconds."10m"no

Note

path must include a full path to a file. This doesn’t support reading of directories.

Blocks

You can use the following block with remote.s3:

client

The client block customizes options to connect to the S3 server.

NameTypeDescriptionDefaultRequired
keystringUsed to override default access key.no
secretsecretUsed to override default secret value.no
endpointstringSpecifies a custom URL to access, used generally for S3-compatible systems.no
disable_sslboolUsed to disable SSL, generally used for testing.falseno
use_path_styleboolPath style is a deprecated setting that’s generally enabled for S3 compatible systems.falseno
regionstringUsed to override default region.no
signing_regionstringUsed to override the signing region when using a custom endpoint.no

Exported fields

The following fields are exported and can be referenced by other components:

NameTypeDescription
contentstring or secretThe contents of the file.

The content field is secret if is_secret is true.

Component health

Instances of remote.s3 report as healthy if the most recent read of the watched file was successful.

Debug information

remote.s3 doesn’t expose any component-specific debug information.

Debug metrics

remote.s3 exposes the following metrics:

NameTypeDescription
remote_s3_errors_totalcounterThe number of errors while accessing S3.
remote_s3_timestamp_last_accessed_unix_secondsgaugeThe last successful access in Unix seconds.

Examples

Alloy
remote.s3 "data" {
  path = "s3://test-bucket/file.txt"
}