Skip to main content
VeloDB Cloud 4.x·Apache Doris 3.x·"Since X.Y" tags refer to Apache Doris versionsVersion mapping

S3

This document describes the parameters required for accessing AWS S3. These parameters apply to:

  • Catalog properties.
  • Table Valued Function properties.
  • Broker Load properties.
  • Export properties.
  • Outfile properties.

Parameter Overview​

Property NameLegacy NameDescriptionDefaultRequired
s3.endpointS3 service access endpoint, e.g., s3.us-east-1.amazonaws.comNoneNo
s3.access_keyAWS Access Key for authenticationNoneNo
s3.secret_keyAWS Secret Key for authenticationNoneNo
s3.regionS3 region, e.g., us-east-1. Strongly recommendedNoneYes
s3.use_path_styleWhether to use path-style accessFALSENo
s3.connection.maximumMaximum number of connections for high concurrency scenarios50No
s3.connection.request.timeoutRequest timeout (milliseconds), controls connection acquisition timeout3000No
s3.connection.timeoutConnection establishment timeout (milliseconds)1000No
s3.role_arnRole ARN specified when using Assume Role modeNoneNo
s3.external_idExternal ID used with s3.role_arnNoneNo

Authentication Configuration​

Doris supports the following two methods to access S3:

  1. Direct Access Key and Secret Key
"s3.access_key"="your-access-key",
"s3.secret_key"="your-secret-key",
"s3.endpoint"="s3.us-east-1.amazonaws.com",
"s3.region"="us-east-1"
  1. Assume Role Mode

Suitable for cross-account and temporary authorization access. Automatically obtains temporary credentials through role authorization.

"s3.role_arn"="arn:aws:iam::123456789012:role/demo-role",
"s3.external_id"="external-identifier",
"s3.endpoint"="s3.us-east-1.amazonaws.com",
"s3.region"="us-east-1"

If both Access Key and Role ARN are configured, Access Key mode takes precedence.

For instructions on AWS authentication and authorization configuration, please refer to the document aws-authentication-and-authorization

Accessing S3 Directory Bucket​

This feature is supported since version 3.1.0.

Amazon S3 Express One Zone (also known as Directory Bucket) provides higher performance, but has a different endpoint format.

  • Regular bucket: s3.us-east-1.amazonaws.com
  • Directory Bucket: s3express-usw2-az1.us-west-2.amazonaws.com

For more available regions, refer to: AWS Official Documentation

Example:

"s3.access_key"="ak",
"s3.secret_key"="sk",
"s3.endpoint"="s3express-usw2-az1.us-west-2.amazonaws.com",
"s3.region"="us-west-2"

Permission Policies​

Depending on the use case, permissions can be categorized into read-only and read-write policies.

1. Read-only Permissions​

Only allows reading objects from S3. Suitable for LOAD, TVF, querying EXTERNAL CATALOG, and other scenarios.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
],
"Resource": "arn:aws:s3:::<your-bucket>/your-prefix/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::<your-bucket>"
}
]
}

2. Read-write Permissions​

Based on read-only permissions, additionally allows deleting, creating, and modifying objects. Suitable for EXPORT, OUTFILE, and EXTERNAL CATALOG write-back scenarios.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::<your-bucket>/<your-prefix>/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:GetLifecycleConfiguration"
],
"Resource": "arn:aws:s3:::<your-bucket>"
}
]
}

Notes​

  1. Placeholder Replacement

    • <bucket> → Your S3 Bucket name.
    • <account-id> → Your AWS account ID (12-digit number).
  2. Principle of Least Privilege

    • If only querying, do not grant write permissions.