AwsS3Client exception: The AWS Access Key Id you provided does not exist in our records


#1

While working on a local c3Server, I am hitting the following error when trying to load data (via curl or Data Load tool)

<error version="2.0">
  <type>
    <module>metadata</module>
    <name>C3Error</name>
  </type>
  <id>2216.66</id>
  <cause>
    <id>2216.65</id>
    <cause>
      <message>The AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: FB19000A3FFCFCB3; S3 Extended Request ID: 4gYlgWrWSz5asriDMcUI+ujSdV/bDOzGIQ5Zxux3EZIwMXNYjoTooCm9cGoFtodY9fzyN3Z59IA=)</message>
    </cause>
    <message>AwsS3Client exception: The AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: FB19000A3FFCFCB3; S3 Extended Request ID: 4gYlgWrWSz5asriDMcUI+ujSdV/bDOzGIQ5Zxux3EZIwMXNYjoTooCm9cGoFtodY9fzyN3Z59IA=)
errorCode="InvalidAccessKeyId"; errorType="Client"; requestId="FB19000A3FFCFCB3"; serviceName="Amazon S3"; httpStatusCode="403"</message>
    <codes>
      <k>0</k>
      <v>NotClassified</v>
    </codes>
  </cause>
  <message>Exception on close of streams: AwsS3Client exception: The AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: FB19000A3FFCFCB3; S3 Extended Request ID: 4gYlgWrWSz5asriDMcUI+ujSdV/bDOzGIQ5Zxux3EZIwMXNYjoTooCm9cGoFtodY9fzyN3Z59IA=)
errorCode="InvalidAccessKeyId"; errorType="Client"; requestId="FB19000A3FFCFCB3"; serviceName="Amazon S3"; httpStatusCode="403"
</message>
  <codes>
    <k>0</k>
    <v>NotClassified</v>
  </codes>
* Connection #0 to host localhost left intact
</error>

#2

In case you have AWS credentials, copy them to the file located (inside the Docker container running c3Server) at /usr/local/share/c3/server/conf/server-config.xml.custom

For anyone else with no AWS credentials, change the rootUrlOverride of the Legacy FileSourceSystem to file:///some/path with the following steps

  1. create a seed folder FileSourceSystem
  2. add a file with following content (change directory accordingly):
{
    "id":"Legacy",
    "name": "Canonical",
    "rootUrlOverride": "file:///tmp"
}

credits @scott.kruyswyk


#3

One more note - if you have added AWS credentials to your docker container you will need to restart c3-server in order for it to pick up the configuration changes.

You don’t need to do this if you’re just changing the root url of your FileSourceCollection to the docker container’s local file system