diff --git a/.gitignore b/.gitignore index 90cd78b57e89..829b6b801e26 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ target .vscode *.log *.DS_Store +package-lock.json +node_modules _site dependency-reduced-pom.xml LICENSE.BINARY diff --git a/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSCredentialsUtils.java b/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSCredentialsUtils.java index 6e93d4a4c4db..165ccc2d8518 100644 --- a/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSCredentialsUtils.java +++ b/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSCredentialsUtils.java @@ -24,6 +24,7 @@ import com.amazonaws.auth.EnvironmentVariableCredentialsProvider; import com.amazonaws.auth.InstanceProfileCredentialsProvider; import com.amazonaws.auth.SystemPropertiesCredentialsProvider; +import com.amazonaws.auth.WebIdentityTokenCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; public class AWSCredentialsUtils @@ -35,6 +36,7 @@ public static AWSCredentialsProviderChain defaultAWSCredentialsProviderChain(fin new LazyFileSessionCredentialsProvider(config), new EnvironmentVariableCredentialsProvider(), new SystemPropertiesCredentialsProvider(), + WebIdentityTokenCredentialsProvider.create(), new ProfileCredentialsProvider(), new EC2ContainerCredentialsProviderWrapper(), InstanceProfileCredentialsProvider.getInstance()); diff --git a/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSModule.java b/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSModule.java index 79b60c956c34..59c9386e1cf2 100644 --- a/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSModule.java +++ b/cloud/aws-common/src/main/java/org/apache/druid/common/aws/AWSModule.java @@ -21,7 +21,7 @@ import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.services.ec2.AmazonEC2; -import com.amazonaws.services.ec2.AmazonEC2Client; +import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.fasterxml.jackson.databind.Module; import com.google.inject.Binder; import com.google.inject.Provides; @@ -54,7 +54,7 @@ public AWSCredentialsProvider getAWSCredentialsProvider(final AWSCredentialsConf @LazySingleton public AmazonEC2 getEc2Client(AWSCredentialsProvider credentials) { - return new AmazonEC2Client(credentials); + return AmazonEC2ClientBuilder.defaultClient(); } @Override diff --git a/docs/development/extensions-core/s3.md b/docs/development/extensions-core/s3.md index b30ba4ce83ab..5bb56fb7eb46 100644 --- a/docs/development/extensions-core/s3.md +++ b/docs/development/extensions-core/s3.md @@ -72,9 +72,10 @@ Druid uses the following credentials provider chain to connect to your S3 bucket |2|Custom properties file| Based on custom properties file where you can supply `sessionToken`, `accessKey` and `secretKey` values. This file is provided to Druid through `druid.s3.fileSessionCredentials` properties| |3|Environment variables|Based on environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`| |4|Java system properties|Based on JVM properties `aws.accessKeyId` and `aws.secretKey` | -|5|Profile information|Based on credentials you may have on your druid instance (generally in `~/.aws/credentials`)| -|6|ECS container credentials|Based on environment variables available on AWS ECS (AWS_CONTAINER_CREDENTIALS_RELATIVE_URI or AWS_CONTAINER_CREDENTIALS_FULL_URI) as described in the [EC2ContainerCredentialsProviderWrapper documentation](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html)| -|7|Instance profile information|Based on the instance profile you may have attached to your druid instance| +|5|WebIdentityTokenCredentials file|Based on environment variables `WEB_IDENTITY_TOKEN_FILE`| +|6|Profile information|Based on credentials you may have on your druid instance (generally in `~/.aws/credentials`)| +|7|ECS container credentials|Based on environment variables available on AWS ECS (AWS_CONTAINER_CREDENTIALS_RELATIVE_URI or AWS_CONTAINER_CREDENTIALS_FULL_URI) as described in the [EC2ContainerCredentialsProviderWrapper documentation](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html)| +|8|Instance profile information|Based on the instance profile you may have attached to your druid instance| You can find more information about authentication method [here](https://docs.aws.amazon.com/fr_fr/sdk-for-java/v1/developer-guide/credentials.html)
**Note :** *Order is important here as it indicates the precedence of authentication methods.
diff --git a/licenses.yaml b/licenses.yaml index a83f20d54f6c..74c8789edfbf 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -162,7 +162,7 @@ name: AWS SDK for Java license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.11.199 +version: 1.11.836 libraries: - com.amazonaws: aws-java-sdk-core - com.amazonaws: aws-java-sdk-ec2 @@ -3282,7 +3282,7 @@ name: AWS SDK for Java license_category: binary module: extensions/druid-kinesis-indexing-service license_name: Apache License version 2.0 -version: 1.11.199 +version: 1.11.836 libraries: - com.amazonaws: aws-java-sdk-kinesis - com.amazonaws: aws-java-sdk-sts diff --git a/pom.xml b/pom.xml index daa9ff71c53d..67b67f246aab 100644 --- a/pom.xml +++ b/pom.xml @@ -110,7 +110,7 @@ 2.8.5 3.2.4 2.0.2 - 1.11.199 + 1.11.836 2.8.0