> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mage.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon DynamoDB

> Use Mage to extract data from Amazon DynamoDB tables using AWS credentials or IAM roles.

## Overview

Amazon DynamoDB is a fully managed NoSQL database service that delivers single-digit millisecond performance at scale. With Mage, you can integrate DynamoDB as a source to extract and transform structured data from your tables into your pipelines.

## Configuration

To connect Mage to DynamoDB, add a source block with the following configuration in your data integration pipeline.

| Key                     | Description                                                                                  | Example Value                              |
| ----------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------ |
| `aws_access_key_id`     | Your AWS access key ID. *(Not required if using `role_arn` and Mage is running on AWS.)*     | `AKIA...`                                  |
| `aws_secret_access_key` | Your AWS secret access key. *(Not required if using `role_arn` and Mage is running on AWS.)* | `abc123xyz789...`                          |
| `aws_region`            | AWS region where your DynamoDB tables are located. Defaults to `us-west-2`.                  | `us-west-2`                                |
| `role_arn`              | (Optional) ARN of an IAM role Mage should assume when accessing DynamoDB.                    | `arn:aws:iam::123456789012:role/mage-role` |

If running Mage on EC2, EKS, or ECS, you can skip `aws_access_key_id` and `aws_secret_access_key` by granting access via IAM roles (via instance profiles or IRSA).

## Permissions

Ensure your AWS IAM user or role has the following permissions:

* `dynamodb:Scan`
* `dynamodb:Query`
* `dynamodb:DescribeTable`
* `dynamodb:GetItem` *(if using key-based lookups)*
* `dynamodb:ListTables` *(optional — for dynamic table discovery)*

These permissions are required for Mage to:

* Read data from DynamoDB tables
* Apply filters or projections
* Automatically detect schema or validate table access
