0
votes

I'm using awscurl to bulk load data from s3 into neptune:

I've done the following:

  • Ensure the ARN has s3 full access
  • Uploaded gremlin csv sample data to existing bucket

The error I get is:

Couldn't find the aws credential for iam_role_arn: arn:aws:iam::1111111:role/NeptuneAdmin

What is the best way to ensure I have this credential? I'm executing this from local.

Sample Query

awscurl -X POST \                                                          ─╯
    -H 'Content-Type: application/json' \
    https://endpoint.us-west-2.neptune.amazonaws.com:8182/loader  -d '
    {
      "source" : "s3://tf-bulk-load-test/vertex.txt",
      "format" : "csv",
      "iamRoleArn" : "arn:aws:iam::1111111111:role/NeptuneAdmin",
      "region" : "us-west-2",
      "failOnError" : "FALSE",
      "parallelism" : "MEDIUM",
      "updateSingleCardinalityProperties" : "FALSE",
      "queueRequest" : "TRUE",
      "dependencies" : []
    }' \
    --header 'host: endpoint.us-west-2.neptune.amazonaws.com' \
    --service neptune-db
1
Have you added the role to Neptune using the web console or CLI? - Kelvin Lawrence
Right as you typed that I noticed there was only a default role applied. Testing it now @KelvinLawrence - Ryan
@KelvinLawrence What is the best way to get the credentials to be able to run this? Currently I have to log into a bastion to get the session token, etc. then export locally. Is there a better way? - Ryan
Is this so you can use SigV4 with AWS Curl for an IAM enabled cluster? - Kelvin Lawrence
Yes, that is correct. - Ryan

1 Answers

2
votes

Adding this as an answer in case others find your question.

The Role that gives Neptune access to S3 needs to be added to Neptune either using the web console or via the CLI. Then when the curl command is issued Neptune will find the Role.