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

# Amazon DynamoDB

> Build apps with read and write access to a DynamoDB database

export const IntegrationSuccess = ({integrationName}) => {
  return <p>
      <b>{integrationName} connected!</b><br />You can now use{" "}
      <a href="/building-with-clark">Clark to build</a> with {integrationName}.
    </p>;
};

export const Alert = ({type, title, children}) => {
  const getIcon = () => {
    switch (type) {
      case 'info':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      case 'success':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm4.293 6.293L9 11.586 5.707 8.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414l4 4c.391.391 1.024.391 1.414 0l6-6c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%230CC26D'/%3E%3C/svg%3E";
      case 'warning':
        return "data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHdpZHRoPScxMDgwJyBoZWlnaHQ9JzEwODAnPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbGw9J3RyYW5zcGFyZW50Jy8+PHBhdGggZD0nTTEzLjc5NCAxMC43NSA4LjMgMS4yNWExLjUgMS41IDAgMCAwLTIuNiAwbC01LjQ5NCA5LjVBMS40OTQgMS40OTQgMCAwIDAgMS41IDEzaDExYTEuNDkzIDEuNDkzIDAgMCAwIDEuMjk0LTIuMjVNNi41IDUuNWEuNS41IDAgMCAxIDEgMFY4YS41LjUgMCAwIDEtMSAwek03IDExYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNScgc3R5bGU9J3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7ZmlsbDojZmY5ZjM1O2ZpbGwtcnVsZTpub256ZXJvO29wYWNpdHk6MScgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLjAyIDE5LjMwNSlzY2FsZSg3Ny4xNCknLz48L3N2Zz4=";
      case 'danger':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm5.707 4.293L10 9.586 4.293 4.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414L8.586 11l-5.707 5.293c-.391.391-.391 1.024 0 1.414s1.024.391 1.414 0L10 12.414l5.707 5.293c.391.391 1.024.391 1.414 0s.391-1.024 0-1.414L11.414 11l5.707-5.293c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%23F45252'/%3E%3C/svg%3E";
      case 'note':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      default:
        return "";
    }
  };
  return <div className={`alert alert--${type}`}>
      <div className="alert-icon" style={{
    backgroundImage: `url("${getIcon()}")`,
    backgroundRepeat: 'no-repeat',
    backgroundPosition: 'center center',
    backgroundSize: '20px',
    width: '24px',
    height: '24px',
    position: 'absolute',
    left: '16px',
    top: '16px'
  }} />
      <div className="alert-content">
        {title && <div className="alert-title">{title}</div>}
        <div className="alert-body">{children}</div>
      </div>
    </div>;
};

## Setting up Amazon DynamoDB

### 1. Add integration

<p>
  Select <strong>DynamoDB</strong> from the{" "}
  <a href="https://app.superblocks.com/integrations/dynamodb">integrations page</a>.
</p>

### 2. Configure settings

Fill out the form with the following settings:

<Tabs>
  <Tab title="Cloud">
    | Setting       | Required                                   | Description                                                                                                                     |
    | ------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
    | Name          | <span className="table-checkmark">✓</span> | Name that will be displayed to users when selecting this integration in Superblocks                                             |
    | Region        | <span className="table-checkmark">✓</span> | [AWS region](https://docs.aws.amazon.com/general/latest/gr/ddb.html) where DynamoDB is hosted, e.g. <i>us-east-1</i>            |
    | Access Key ID | <span className="table-checkmark">✓</span> | [Access key ID](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html) for your AWS account     |
    | Secret Key    | <span className="table-checkmark">✓</span> | [Secret access key](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html) for your AWS account |
    | IAM Role ARN  | <span className="table-x">✗</span>         | ARN of the role for Superblocks to assume for accessing DynamoDB resources                                                      |
  </Tab>

  <Tab title="Hybrid or Cloud-Prem">
    | Setting       | Required                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
    | ------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Name          | <span className="table-checkmark">✓</span> | Name that will be displayed to users when selecting this integration in Superblocks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
    | Auth Type     | <span className="table-checkmark">✓</span> | Choose between:<br /><ul><li><b>Access Key</b> - Use access key ID and secret access key authorization</li> <li><b>Token File</b> - Use <a href="https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html">Service Account Token Volume Projection</a> to authorize your data plane to connect to your DynamoDB databases.</li><li><b>EC2 Instance Metadata</b> - Use <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html">EC2 Instance Metadata</a> to authorize your data plane to connect to your DynamoDB databases. If you are using <a href="https://github.com/jtblin/kube2iam">Kube2Iam</a>, you would select this option.</li></ul> |
    | Region        | <span className="table-checkmark">✓</span> | If <b>Auth Type</b> is Access Key: [AWS region](https://docs.aws.amazon.com/general/latest/gr/ddb.html) where DynamoDB is hosted, e.g. <i>us-east-1</i>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
    | Access Key ID | <span className="table-checkmark">✓</span> | If <b>Auth Type</b> is Access Key: [Access key ID](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html) for your AWS account                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
    | Secret Key    | <span className="table-checkmark">✓</span> | If <b>Auth Type</b> is Access Key: [Secret access key](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html) for your AWS account                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
    | IAM Role ARN  | <span className="table-x">✗</span>         | ARN of the role for Superblocks to assume for accessing DynamoDB resources                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  </Tab>
</Tabs>

### 3. Test and save

Click **Test Connection** to check that Superblocks can connect to the data source.

<Alert type="info">
  If using Superblocks Cloud, add these <a href="/enterprise/security/overview#ip-addresses">Superblocks IPs</a> to your allowlist (not necessary for Hybrid or Cloud-Prem deployments).
</Alert>

After connecting successfully, click **Create** to save the integration.

### 4. Set data tags

Optionally, configure different data tags for [separate development environments](/development-lifecycle/build/data-tags).

<Alert type="success">
  <IntegrationSuccess integrationName="Amazon DynamoDB" />
</Alert>

## Creating Amazon DynamoDB steps

Connect to your DynamoDB integration from Superblocks by creating steps in Application APIs, Workflows and Scheduled Jobs. Steps can be configured to perform any of the actions below. Configure your IAM policy for the integration accordingly depending on the desired permissions.

```
"dynamodb:BatchWriteItem",
"dynamodb:CreateTable",
"dynamodb:DeleteItem",
"dynamodb:DeleteTable",
"dynamodb:DescribeTable",
"dynamodb:ExecuteStatement",
"dynamodb:ExecuteTransaction",
"dynamodb:GetItem",
"dynamodb:ListTables",
"dynamodb:ListTagsOfResource",
"dynamodb:PutItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:TagResource",
"dynamodb:UpdateItem",
"dynamodb:UpdateTable"
```

## Troubleshooting

Check out our guide on [common errors across database integrations](/integrations/troubleshooting/troubleshooting-databases). If you are encountering an error that you don't see in the guide, or the provided steps are insufficient to resolve the error, please contact us at [help@superblocks.com](mailto:help@superblocks.com).
