

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 连接亚马逊 DynamoDB
<a name="connectors-dynamodb"></a>

要将 App Studio 与 DynamoDB 连接以使构建者能够在应用程序中访问和使用 DynamoDB 资源，您必须执行以下步骤：

1. [步骤 1：创建和配置 DynamoDB 资源](#connectors-dynamodb-create-resources)

1. [步骤 2：创建具有相应 DynamoDB 权限的 IAM 策略和角色](#connectors-dynamodb-iam)

1. [创建 DynamoDB 连接器](#connectors-dynamodb-create-connector)

## 步骤 1：创建和配置 DynamoDB 资源
<a name="connectors-dynamodb-create-resources"></a>

使用以下过程创建和配置要用于 App Studio 的 DynamoDB 资源。

**设置 DynamoDB 以与 App Studio 配合使用**

1. 登录 AWS 管理控制台 并打开 DynamoDB 控制台，网址为。[https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

   我们建议使用中创建的管理用户[创建管理用户来管理 AWS 资源](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. 在左侧导航窗格中，选择 **表**。

1. 选择**创建表**。

1. 输入桌子的名称和密钥。

1. 选择**创建表**。

1. 创建表格后，向其中添加一些项目，以便在表格连接到 App Studio 后它们就会出现。

   1. 选择您的表格，选择**操作**，然后选择**浏览项目**。

   1. 在**退回的商品**中，选择**创建商品**。

   1. （可选）：选择**添加新属性**可向表中添加更多属性。

   1. 为每个属性输入值，然后选择**创建项目**。

## 步骤 2：创建具有相应 DynamoDB 权限的 IAM 策略和角色
<a name="connectors-dynamodb-iam"></a>

要在 App Studio 中使用 DynamoDB 资源，管理员必须创建 IAM 策略和角色来授予 App Studio 访问资源的权限。IAM 策略控制构建者可以使用的数据范围以及可以针对这些数据调用的操作，例如创建、读取、更新或删除。然后，IAM 策略将附加到 App Studio 使用的 IAM 角色。

我们建议为每项服务和策略至少创建一个 IAM 角色。例如，如果构建者要在 DynamoDB 中创建两个由相同表支持的应用程序，一个只需要读取权限，另一个需要读取、创建、更新和删除；管理员应创建两个 IAM 角色，一个使用只读权限，另一个拥有对 DynamoDB 中适用表的完整 CRUD 权限。

### 步骤 2a：创建具有相应的 DynamoDB 权限的 IAM 策略
<a name="connectors-dynamodb-iam-policy"></a>

您在 App Studio 中创建和使用的 IAM 策略应仅包含应用程序遵循最佳安全实践所需的相应资源的最低限度权限。

**创建具有相应 DynamoDB 权限的 IAM 策略**

1. 使用有权创建 [IAM 策略的用户登录 IAM 控制台](https://console.aws.amazon.com/iam)。我们建议使用中创建的管理用户[创建管理用户来管理 AWS 资源](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. 在左侧导航栏中，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 键入或粘贴 JSON 策略文档。以下选项卡包含对 DynamoDB 表的只读和完全访问权限的策略示例，以及包含使用客户管理密钥 (CMK) 加密的 DynamoDB 表的 AWS KMS 权限的策略示例。 AWS KMS 
**注意**  
以下策略适用于使用通配符 () 的所有 DynamoDB 资源。`*`为了获得最佳安全实践，您应将通配符替换为要在 App Studio 中使用的资源的亚马逊资源名称 (ARN)。

------
#### [ Read only ]

   以下策略授予对已配置的 DynamoDB 资源的读取权限。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
         "Sid": "ReadOnlyDDBForAppStudio",
         "Effect": "Allow",
            "Action": [
               "dynamodb:ListTables",
               "dynamodb:DescribeTable",
               "dynamodb:PartiQLSelect"
            ],
            "Resource": "*"
         }
      ]
   }
   ```

------

------
#### [ Full access ]

   以下策略授予对已配置的 DynamoDB 资源的创建、读取、更新和删除权限。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
         "Sid": "FullAccessDDBForAppStudio",
         "Effect": "Allow",
            "Action": [
              "dynamodb:ListTables",
              "dynamodb:DescribeTable",
              "dynamodb:PartiQLSelect",
              "dynamodb:PartiQLInsert",
              "dynamodb:PartiQLUpdate",
              "dynamodb:PartiQLDelete"
            ],
            "Resource": "*"
         }
      ]
   }
   ```

------

------
#### [ Read only - KMS encrypted ]

   以下策略通过提供权限来授予对配置的加密 DynamoDB 资源的读取权限。 AWS KMS 您必须将 ARN 替换为密钥的 ARN。 AWS KMS 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ReadOnlyDDBForAppStudio",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:ListTables",
                   "dynamodb:DescribeTable",
                   "dynamodb:PartiQLSelect"
               ],
               "Resource": "*"
           },
           {
               "Sid": "KMSPermissionsForEncryptedTable",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:{{us-west-2}}:{{111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
           }
       ]
   }
   ```

------

------
#### [ Full access - KMS encrypted ]

   以下策略通过提供权限来授予对配置的加密 DynamoDB 资源的读取权限。 AWS KMS 您必须将 ARN 替换为密钥的 ARN。 AWS KMS 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ReadOnlyDDBForAppStudio",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:ListTables",
                   "dynamodb:DescribeTable",
                   "dynamodb:PartiQLSelect",
                   "dynamodb:PartiQLInsert",
                   "dynamodb:PartiQLUpdate",
                   "dynamodb:PartiQLDelete"
               ],
               "Resource": "*"
           },
           {
               "Sid": "KMSPermissionsForEncryptedTable",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:{{us-west-2}}:{{111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
           }
       ]
   }
   ```

------

------

1. 选择**下一步**。

1. 在**查看并创建**页面上，提供**策略名称**（例如**ReadOnlyDDBForAppStudio**或**FullAccessDDBForAppStudio**）和**描述**（可选）。

1. 选择**创建策略**以创建策略。

### 步骤 2b：创建一个 IAM 角色以授予 App Studio 对 DynamoDB 资源的访问权限
<a name="connectors-dynamodb-iam-role"></a>

现在，创建一个使用您之前创建的策略的 IAM 角色。App Studio 将使用此策略来访问已配置的 DynamoDB 资源。

**创建 IAM 角色以授予 App Studio 访问 DynamoDB 资源的权限**

1. 使用有权创建 [IAM 角色的用户登录 IAM 控制台](https://console.aws.amazon.com/iam)。我们建议使用中创建的管理用户[创建管理用户来管理 AWS 资源](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. 在控制台的导航窗格中，选择 **Roles**，然后选择 **Create role**。

1. 在**可信实体类型**中，选择**自定义信任策略**。

1. 将默认策略替换为以下策略，以允许 App Studio 应用程序在您的账户中扮演此角色。

   您必须替换策略中的以下占位符。要使用的值可以在 App Studio 的 **“帐户设置”** 页面中找到。
   + {{111122223333}}替换为 AWS 用于设置 App Studio 实例的账户的账号，该**AWS 账号在 App Studio 实例的账户设置中作为账户 ID** 列出。
   + {{11111111-2222-3333-4444-555555555555}}替换为您的 App Studio 实例 ID，该**实例在 App Studi** o 实例的账户设置中作为实例 ID 列出。

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           { 
               "Effect": "Allow",
               "Principal": { 
                   "AWS": "arn:aws:iam::{{111122223333}}:root"
               }, 
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                           "aws:PrincipalTag/IsAppStudioAccessRole": "true",
                           "sts:ExternalId": "{{11111111-2222-3333-4444-555555555555}}"
                   }
               }
           } 
       ]
   }
   ```

------

   选择**下一步**。

1. 在**添加权限**中，搜索并选择您在上一步中创建的策略（**ReadOnlyDDBForAppStudio**或**FullAccessDDBForAppStudio**）。选择策略旁边的 **\+** 将展开策略以显示其授予的权限，选中该复选框将选择该策略。

   选择**下一步**。

1. 在 “**名称、查看和创建**” 页面上，提供**角色名称**和**描述**。

1. 在**步骤 3：添加标签**中，选择**添加新标签以添加以下标签**以提供 App Studio 访问权限：
   + **密钥：**`IsAppStudioDataAccessRole`
   + **值：**`true`

1. 选择**创建角色**并记下生成的亚马逊资源名称 (ARN)，在 App Studio 中[创建 DynamoDB](#connectors-dynamodb-create-connector) 连接器时将需要该名称。

## 创建 DynamoDB 连接器
<a name="connectors-dynamodb-create-connector"></a>

现在，您已经配置了 DynamoDB 资源以及 IAM 策略和角色，请使用这些信息在 App Studio 中创建连接器，构建者可以使用该连接器将其应用程序连接到 DynamoDB。

**注意**  
您必须在 App Studio 中拥有管理员角色才能创建连接器。

**为 DynamoDB 创建连接器**

1. 导航到 App Studio。

1. 在左侧导航栏的**管理**区域，选择**连接器**。您将进入一个页面，其中显示了现有连接器的列表，其中包含每个连接器的一些详细信息。

1. 选择 **\+ 创建连接器**。

1. 从连接**器类型列表中选择 Amazon** DynamoDB。

1. 通过填写以下字段来配置您的连接器：
   + **名称：**输入您的 DynamoDB 连接器的名称。
   + **描述：**输入您的 DynamoDB 连接器的描述。
   + **IAM 角色：**输入中创建的 IAM 角色的亚马逊资源名称 (ARN)。[步骤 2b：创建一个 IAM 角色以授予 App Studio 对 DynamoDB 资源的访问权限](#connectors-dynamodb-iam-role)有关 IAM 的更多信息，请参阅《IAM 用户指南》[https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。
   + **区域：**选择您的 DynamoDB 资源所在的 AWS 区域。
   + **可用表：**选择要连接到 App Studio 的表。

1. 选择**下一步**。查看连接信息，然后选择**创建**。

1. 新创建的连接器将出现在**连接**器列表中。