Error: AWS DynamoDB CredentialsError: Missing credentials in config


If you're seeing following error when using AWS SDK or CLI:

Missing credentials in the config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
or this:
  [CredentialsError: Missing credentials in config]
  message: 'Missing credentials in config',
  code: 'CredentialsError'
It means that something is wrong with your AWS Credentials and this is not DynamoDB specific error. There are two main ways to fix this:

Using AWS profiles (the recommended way)

You should use this method when dealing with problems on your computer.
AWS SDK and CLI supports usage of named profiles. They enable working with multiple AWS profiles with ease - simply pass --profile flag at the end of CLI command (if no flag is passed, then profile named default is used).

You can configure AWS Profiles using command aws configure or by manipulating files ~/.aws/config and ~/.aws/credentials directly. Make sure they are following this format:

~/.aws/credentials (on Linux and Mac), on Windows %USERPROFILE%\.aws\credentials file:

aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
~/.aws/config (on Linux and Mac), on Windows %USERPROFILE%\.aws\config file:

Using AWS credentials

If you don't want to or can't use AWS profiles, you can still supply Access Keys pair directly. In SDK, you can pass them to the constructor like this:

import { DynamoDB } from 'aws-sdk';

const config = {
    apiVersion: "2010-12-01",
    accessKeyId: process.env.AWS_ACCESS_KEY_ID, // hardcoding credentials is a bad practice
    accessSecretKey: process.env.AWS_SECRET_ACCESS_KEY, // please use env vars instead
    region: "us-east-1"
const ddb = new DynamoDB(config) // pass config to the constructor
AWS.config.update(config); // or call the update method directly

In CLI, you can use environment variables. If AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are not configured on your environment, you can prefix any CLI command with these, like this:

Alternatively, use export command to set required environment variables for all processes in current shell session:
aws s3 list-buckets

Tired of switching accounts and regions? Use Dynobase.

First 7 days are. No credit card needed.

Product Features

© 2022 Dynobase

Tired of AWS Console?
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.