/AWS

Providers

AWS

Use the AWS SDKs with a ghost key: Vallkey signs each request again with the real credentials.

Create an AWS key with an endpoint (such as s3.us-east-1.amazonaws.com), a region and a signing name (s3, dynamodb, bedrock…). Paste the real key as ACCESS_KEY_ID:SECRET_ACCESS_KEY. In your app, use the ghost key as the access key id and any text as the secret: Vallkey throws away your app's signature and signs the request again with the real credentials.

AWS SDK for JavaScript v3
1const s3 = new S3Client({2  region: 'us-east-1',3  endpoint: 'https://api.vallkey.com',4  forcePathStyle: true,5  credentials: { accessKeyId: process.env.AWS_GHOST_KEY, secretAccessKey: 'vallkey' },6});

Endpoints must be AWS hostnames. Presigned URLs and chunk-signed uploads are refused. Many AWS services put the action in a header rather than the path, so also limit the real key with an IAM policy: Vallkey adds the kill switch, rate limits and alerts on top.

Services such as DynamoDB, SQS, SNS and STS send every request to the root path. For those, allow POST / in the key's rules; /** covers every path below the root, not the root itself.

Still have a question?

We read every email, usually within a day.

Contact support