I am trying to use the AWS S3 Storage Service component.  I have been
unsuccessful at getting access to the S3 bucket via the component.  I
always get a 403 Forbidden error.  I am using Camel 3.21.0, and I have
tried both Java 11 and 17 with the same results.   I can successfully use
the AWS CLI to get files from the S3 bucket using the API and the
access/secret keys, but using the same keys with the camel S3 component
always fails.

The following is my camel route I am trying:
<route id="tests3">
   <from
uri="aws2-s3://bucket-ses-s3-receiving/?region=us-east-1&amp;accessKey=MY_ACCESS_KEY&amp;secretKey=MY_SECRET_KEY"
/>
   <to uri="file:/home/test/temp/testout/" />
</route>

The following is the relevant portion of the exception:
Caused by: software.amazon.awssdk.services.s3.model.S3Exception: null
(Service: S3, Status Code: 403, Request ID: TA07HFNJRF6D1FGW, Extended
Request ID:
Oxv5vee3vzHsWe5LAvbPuu+/kzI/OKf+5pDilV4hxwFas0M8XgYR0EeuZQwrU0KRT9CN/OUlPrA=)
at
software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156)
at
software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:108)
...
 at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:76)
at
software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
at
software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:56)
at
software.amazon.awssdk.services.s3.DefaultS3Client.headBucket(DefaultS3Client.java:5249)
at
org.apache.camel.component.aws2.s3.AWS2S3Endpoint.doStart(AWS2S3Endpoint.java:102)
at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
at org.apache.camel.impl.engine.RouteService.doWarmUp(RouteService.java:184)
at org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:121)
... 53 more

Is there more I need to provide in the aws2-s3 configuration?  Or is there
a bug with the way Camel implements the API, or an issue with the awssdk
API itself?  I'm stuck and don't know how to figure this out.
Any help is appreciated.

Reply via email to