AWS CLI and Tools

All AWS tools communicate with Simfra the same way they communicate with real AWS - over HTTPS with SigV4-signed requests. The only difference is the endpoint URL.

AWS CLI

Environment variables (recommended)

export AWS_ENDPOINT_URL=http://localhost:4599
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_DEFAULT_REGION=us-east-1
export AWS_S3_USE_PATH_STYLE=true

AWS_ENDPOINT_URL routes all service requests to Simfra. AWS_S3_USE_PATH_STYLE enables path-style S3 addressing (required on localhost). No per-service endpoint configuration is needed.

AWS CLI profile

Add to ~/.aws/config:

[profile simfra]
endpoint_url = http://localhost:4599
region = us-east-1

And to ~/.aws/credentials:

[simfra]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Then use --profile simfra or export AWS_PROFILE=simfra.

S3 path style

For S3 operations, path-style addressing is required since Simfra runs on localhost:

aws s3api list-buckets  # works as-is
aws s3 ls               # works as-is

If you encounter virtual-hosted-style issues, set:

aws configure set default.s3.addressing_style path

curl

Simfra requires SigV4-signed requests. Use the --aws-sigv4 flag (curl 7.75+):

curl http://localhost:4599/ \
  --aws-sigv4 "aws:amz:us-east-1:sqs" \
  --user "AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "Action=ListQueues"

AWS SDKs

All AWS SDKs support custom endpoints. Set the AWS_ENDPOINT_URL environment variable and the SDK will route all requests to Simfra automatically.

For SDK-specific configuration (per-service endpoints, retry settings, etc.), see the SDK Configuration guide.

httpie

http --auth-type aws \
  --auth "AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  http://localhost:4599/ \
  Action==ListQueues

Requires the httpie-aws-auth plugin: pip install httpie-aws-auth.

Postman

  1. Set the request URL to http://localhost:4599
  2. Under Authorization, select AWS Signature
  3. Enter the access key, secret key, region (us-east-1), and service name
  4. Postman handles SigV4 signing automatically

Next Steps