Amazon S3 access points - AWS SDKs and Tools

Amazon S3 access points

The Amazon S3 service provides access points as an alternative way to interact with Amazon S3 buckets. Access points have unique policies and configurations that can be applied to them instead of directly to the bucket. With AWS SDKs, you can use access point Amazon Resource Names (ARNs) in the bucket field for API operations instead of specifying the bucket name explicitly. They are used for specific operations such as using an access point ARN with GetObject to fetch an object from a bucket, or using an access point ARN with PutObject to add an object to a bucket.

To learn more about Amazon S3 access points and ARNs, see Using access points in the Amazon S3 User Guide.

Configure this functionality by using the following:

s3_use_arn_region - shared AWS config file setting
AWS_S3_USE_ARN_REGION - environment variable
aws.s3UseArnRegion - JVM system property: Java/Kotlin only
To configure value directly in code, consult your specific SDK directly.

This setting controls whether the SDK uses the access point ARN AWS Region to construct the Regional endpoint for the request. The SDK validates that the ARN AWS Region is served by the same AWS partition as the client's configured AWS Region to prevent cross-partition calls that most likely will fail. If multiply defined, the code-configured setting takes precedence, followed by the environment variable setting.

Default value: false

Valid values:

  • true – The SDK uses the ARN's AWS Region when constructing the endpoint instead of the client's configured AWS Region. Exception: If the client's configured AWS Region is a FIPS AWS Region, then it must match the ARN's AWS Region. Otherwise, an error will result.

  • false – The SDK uses the client's configured AWS Region when constructing the endpoint.

Compatibility with AWS SDKs

The following SDKs support the features and settings described in this topic. Any partial exceptions are noted. Any JVM system property settings are supported by the AWS SDK for Java and the AWS SDK for Kotlin only.

SDK Supported Notes or more information
AWS CLI v2 Yes
SDK for C++ Yes
SDK for Go V2 (1.x) Yes
SDK for Go 1.x (V1) Yes To use shared config file settings, you must turn on loading from the config file; see Sessions.
SDK for Java 2.x Yes
SDK for Java 1.x Yes JVM system property not supported.
SDK for JavaScript 3.x Yes
SDK for JavaScript 2.x Yes
SDK for Kotlin Yes
SDK for .NET 3.x Yes Doesn’t follow standard precedence; shared config file value takes precedence over environment variable.
SDK for PHP 3.x Yes
SDK for Python (Boto3) Yes
SDK for Ruby 3.x Yes
SDK for Rust No
SDK for Swift No
Tools for PowerShell Yes Doesn’t follow standard precedence; shared config file value takes precedence over environment variable.