Describe the bug
The system I am working on handles S3 access using IAM roles.
This access processing is done using the InstanceProfileCredentialsProvider in the AWS Java SDK.
The following stocktrace began to spit out around the end of January 2023.
Curiously, about once a week at about the same time, all application servers began to spit out the same error.
Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from any of the providers in the chain AwsCredentialsProviderChain(credentialsProviders=[SystemPropertyCredentialsProvider(), EnvironmentVariableCredentialsProvider(), WebIdentityTokenCredentialsProvider(), ProfileCredentialsProvider(profileName=default, profileFile=ProfileFile(profilesAndSectionsMap=[{***=Profile(name=***, properties=[role_arn, credential_source])}, {}])), ContainerCredentialsProvider(), InstanceProfileCredentialsProvider()]) : [SystemPropertyCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId)., EnvironmentVariableCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId)., WebIdentityTokenCredentialsProvider(): Either the environment variable AWS_WEB_IDENTITY_TOKEN_FILE or the javaproperty aws.webIdentityTokenFile must be set., ProfileCredentialsProvider(profileName=default, profileFile=ProfileFile(profilesAndSectionsMap=[{***=Profile(name=***, properties=[role_arn, credential_source])}, {}])): Profile file contained no credentials for profile 'default': ProfileFile(profilesAndSectionsMap=[{***=Profile(name=***, properties=[role_arn, credential_source])}, {}]), ContainerCredentialsProvider(): Cannot fetch credentials from container - neither AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variables are set., InstanceProfileCredentialsProvider(): Failed to load credentials from IMDS.]
at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111)
at software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain.resolveCredentials(AwsCredentialsProviderChain.java:117)
at software.amazon.awssdk.auth.credentials.internal.LazyAwsCredentialsProvider.resolveCredentials(LazyAwsCredentialsProvider.java:45)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.resolveCredentials(DefaultCredentialsProvider.java:126)
at software.amazon.awssdk.core.internal.util.MetricUtils.measureDuration(MetricUtils.java:50)
at software.amazon.awssdk.awscore.internal.authcontext.AwsCredentialsAuthorizationStrategy.resolveCredentials(AwsCredentialsAuthorizationStrategy.java:100)
at software.amazon.awssdk.awscore.internal.authcontext.AwsCredentialsAuthorizationStrategy.addCredentialsToExecutionAttributes(AwsCredentialsAuthorizationStrategy.java:77)
at software.amazon.awssdk.services.s3.internal.signing.DefaultS3Presigner.invokeInterceptorsAndCreateExecutionContext(DefaultS3Presigner.java:366)
at software.amazon.awssdk.services.s3.internal.signing.DefaultS3Presigner.presign(DefaultS3Presigner.java:308)
at software.amazon.awssdk.services.s3.internal.signing.DefaultS3Presigner.presignGetObject(DefaultS3Presigner.java:230)
...
Regarding the processing, there is an error at the point where S3Presigner.create() is called and presignGetObject is executed.
I am not currently aware of any changes made to the infrastructure environment around AWS prior to this issue.
Expected Behavior
Continuous access to S3 without a single credentials loading error.
Current Behavior
Get an error reading credentials only once a week.
Reproduction Steps
No reproducible steps.
Possible Solution
No response
Additional Information/Context
No response
AWS Java SDK version used
AWS SDK 2.20.47
JDK version used
OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS)
Operating System and version
Amazon Linux release 2 (Karoo)
Describe the bug
The system I am working on handles S3 access using IAM roles.
This access processing is done using the
InstanceProfileCredentialsProviderin the AWS Java SDK.The following stocktrace began to spit out around the end of January 2023.
Curiously, about once a week at about the same time, all application servers began to spit out the same error.
Regarding the processing, there is an error at the point where
S3Presigner.create()is called andpresignGetObjectis executed.I am not currently aware of any changes made to the infrastructure environment around AWS prior to this issue.
Expected Behavior
Continuous access to S3 without a single credentials loading error.
Current Behavior
Get an error reading credentials only once a week.
Reproduction Steps
No reproducible steps.
Possible Solution
No response
Additional Information/Context
No response
AWS Java SDK version used
AWS SDK 2.20.47
JDK version used
OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS)
Operating System and version
Amazon Linux release 2 (Karoo)