

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 連線至 Amazon 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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/) 開啟 DynamoDB 主控台。

   建議使用在 中建立的管理使用者[建立管理使用者以管理 AWS 資源](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. 在左側導覽窗格中，選擇 **Tables (資料表)**。

1. 選擇 **Create Table** (建立資料表)。

1. 輸入資料表的名稱和索引鍵。

1. 選擇 **Create Table** (建立資料表)。

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 資料表的範例政策，以及包含使用 AWS KMS 客戶受管金鑰 (CMK) 加密之 DynamoDB 資料表 AWS KMS 許可的政策範例。
**注意**  
下列政策適用於使用萬用字元 () 的所有 DynamoDB 資源`*`。為了實現最佳安全實務，您應該將萬用字元取代為您要搭配 App Studio 使用之資源的 Amazon Resource Name (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 ]

   下列政策透過提供 AWS KMS 許可，授予已設定加密 DynamoDB 資源的讀取存取權。您必須以 AWS KMS 金鑰的 ARN 取代 ARN。

------
#### [ 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 ]

   下列政策透過提供 AWS KMS 許可，授予已設定加密 DynamoDB 資源的讀取存取權。您必須以 AWS KMS 金鑰的 ARN 取代 ARN。

------
#### [ 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}} 取代為用於設定 App Studio 執行個體的帳戶的 AWS 帳號，在 App Studio 執行個體的帳戶設定中列為帳戶 **AWS ID**。
   + 將 {{111111111-2222-3333-4444-5555555555 }}取代為您的 App Studio 執行個體 ID，在 App Studio 執行個體的帳戶設定中列為執行個體 **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. 選擇**建立角色**，並記下產生的 Amazon Resource Name (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 角色輸入 Amazon Resource Name (ARN)[步驟 2b：建立 IAM 角色，讓 App Studio 存取 DynamoDB 資源](#connectors-dynamodb-iam-role)。如需 IAM 的詳細資訊，請參閱《[IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)》。
   + **區域：**選擇 DynamoDB 資源所在的 AWS 區域。
   + **可用的資料表：**選取要連線至 App Studio 的資料表。

1. 選擇**下一步**。檢閱連線資訊，然後選擇**建立**。

1. 新建立的連接器會出現在**連接器**清單中。