

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

# 手動設定資料庫身分驗證和資源存取
<a name="limitless-load.manual"></a>

設定資料庫身分驗證和資源存取的手動程序包含下列步驟：

1. [建立客戶受管AWS KMS key](#limitless-load.auth.create-kms)

1. [新增 IAM 角色許可政策](#limitless-load.auth.iam-policy)

1. [建立資料庫秘密](#limitless-load.auth.secrets)

1. [建立 IAM 角色](#limitless-load.auth.iam-role)

1. [更新客戶受管AWS KMS key](#limitless-load.auth.update-kms)

此為選用程序，執行的任務與 [使用指令碼設定資料庫身分驗證和資源存取權](limitless-load.script.md) 中相同。我們建議您使用指令碼。

## 建立客戶受管AWS KMS key
<a name="limitless-load.auth.create-kms"></a>

遵循[建立對稱加密金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)中的程序，來建立客戶受管 KMS 金鑰。如果現有金鑰符合需求，您可以使用該金鑰。

**建立客戶管理的 KMS 金鑰**

1. 登入 AWS 管理主控台並在 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 開啟 AWS KMS主控台。

1. 瀏覽至**客戶受管金鑰**頁面。

1. 選擇**建立金鑰**。

1. 在**設定金鑰**頁面上：

   1. 對於**金鑰類型**，選取**對稱**。

   1. 對於**金鑰用途**，選取**加密和解密**。

   1. 選擇**下一步**。

1. 在**新增標籤**頁面，輸入**別名** (例如 **limitless**)，然後選擇**下一步**。

1. 在**定義金鑰管理許可**頁面上，確定已選取**允許金鑰管理員刪除此金鑰**核取方塊，然後選擇**下一步**。

1. 在**定義金鑰使用許可**頁面上，選擇**下一步**。

1. 在 **Review (檢閱)** 頁面上，選擇 **Finish (完成)**。

   您稍後會更新金鑰政策。

記錄要在 [新增 IAM 角色許可政策](#limitless-load.auth.iam-policy) 中使用之 KMS 金鑰的 Amazon Resource Name (ARN)。

如需使用 AWS CLI建立客戶受管 KMS 金鑰的資訊，請參閱 [create-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html) 和 [create-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-alias.html)。

## 建立資料庫秘密
<a name="limitless-load.auth.secrets"></a>

若要允許資料載入公用程式存取來源和目的地資料庫資料表，您可以在 中建立兩個秘密AWS Secrets Manager：一個用於來源資料庫，另一個用於目的地資料庫。這些秘密會存放用於存取來源和目的地資料庫的使用者名稱和密碼。

遵循[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中的程序來建立金鑰/值對秘密。

**建立資料庫秘密**

1. 前往以下位置開啟機密管理員控制台：[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 選擇 **Store a new secret** (存放新機密)。

1. 在**選擇秘密類型**頁面：

   1. 針對**秘密類型**，選取**其他類型的秘密**。

   1. 針對**金鑰/值對**，選擇**純文字**索引標籤。

   1. 輸入下列 JSON 程式碼，其中 `sourcedbreader` 和 `sourcedbpassword` 是來自 [建立來源資料庫憑證](limitless-load.utility.md#limitless-load.users.source) 的來源資料庫使用者的憑證。

      ```
      {
          "username":"sourcedbreader",
          "password":"sourcedbpassword"
      }
      ```

   1. 針對**加密金鑰**，選擇您在 [建立客戶受管AWS KMS key](#limitless-load.auth.create-kms) 中建立的 KMS 金鑰，例如 `limitless`。

   1. 選擇**下一步**。

1. 在**設定秘密**頁面上，輸入**設定秘密** (例如 **source\$1DB\$1secret**)，然後選擇**下一步**。

1. 在**設定輪換：選用****頁面上，選擇**下一步**。

1. 在 **Review** (檢閱) 頁面，選擇 **Store** (存放)。

1. 針對目的地資料庫秘密重複此程序：

   1. 輸入下列 JSON 程式碼，其中 `destinationdbwriter` 和 `destinationdbpassword` 是來自 [建立目的地資料庫憑證](limitless-load.utility.md#limitless-load.users.destination) 的目的地資料庫使用者的憑證。

      ```
      {
          "username":"destinationdbwriter",
          "password":"destinationdbpassword"
      }
      ```

   1. 設定**秘密名稱**，例如 **destination\$1DB\$1secret**。

記錄要在 [新增 IAM 角色許可政策](#limitless-load.auth.iam-policy) 中使用的秘密 ARN。

## 建立 IAM 角色
<a name="limitless-load.auth.iam-role"></a>

資料載入需要您提供 AWS資源的存取權。若要提供存取權，您可以遵循[建立角色以將許可委派給 IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)中的程序來建立 `aurora-data-loader` IAM 角色。

**建立 IAM 角色**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 瀏覽至**角色**頁面。

1. 選擇建**立角色**。

1. 在**選取信任的實體**頁面：

   1. 對於**信任的實體類型**，選取**自訂信任政策**。

   1. 輸入下列自訂信任政策的 JSON 程式碼：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "rds.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. 選擇**下一步**。

1. 在 **Add permissions** (新增許可) 頁面上，選擇 **Next** (下一步)。

1. 在**命名、檢閱和建立**頁面：

   1. 對於**角色名稱**，輸入 **aurora-data-loader** 或您偏好的另一個名稱。

   1. 選擇**新增標籤**，然後輸入下列標籤：
      + **索引鍵**：**assumer**
      + **Value (值)**：**aurora\$1limitless\$1table\$1data\$1load**
**重要**  
Aurora PostgreSQL Limitless Database 只能擔任具有此標籤的 IAM 角色。

   1. 選擇建**立角色**。

## 更新客戶受管AWS KMS key
<a name="limitless-load.auth.update-kms"></a>

請遵循[變更金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)中的程序，將 IAM 角色新增至 `aurora-data-loader` 預設金鑰政策。

**將 IAM 角色新增至金鑰政策**

1. 登入 AWS 管理主控台並在 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 開啟 AWS KMS主控台。

1. 瀏覽至**客戶受管金鑰**頁面。

1. 選擇您在 [建立客戶受管AWS KMS key](#limitless-load.auth.create-kms) 中建立的 KMS 金鑰，例如 `limitless`。

1. 在**金鑰政策**索引標籤，針對**金鑰使用者**，選擇**新增**。

1. 在**新增金鑰使用者**視窗中，選取您在 [建立 IAM 角色](#limitless-load.auth.iam-role) 中建立的 IAM 角色名稱，例如 **aurora-data-loader**。

1. 選擇**新增**。

## 新增 IAM 角色許可政策
<a name="limitless-load.auth.iam-policy"></a>

您必須將許可政策新增至您建立的 IAM 角色。這可讓 Aurora PostgreSQL Limitless Database 資料載入公用程式存取相關 AWS 資源，以建置網路連線並擷取來源和目的地資料庫憑證秘密。

如需詳細資訊，請參閱[修改角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-modify_gen-policy)。

**新增許可政策**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 瀏覽至**角色**頁面。

1. 選擇您在 [建立 IAM 角色](#limitless-load.auth.iam-role) 中建立的 IAM 角色，例如 **aurora-data-loader**。

1. 在**許可**索引標籤，針對**許可政策**選擇**新增許可**，然後選擇**建立內嵌政策**。

1. 在**指定許可**頁面，選擇 **JSON** 編輯器。

1. 將下列範本複製並貼到 JSON 編輯器，將預留位置替換為資料庫秘密和 KMS 金鑰的 ARN。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Ec2Permission",
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:CreateNetworkInterfacePermission",
                   "ec2:DeleteNetworkInterfacePermission",
                   "ec2:DescribeNetworkInterfacePermissions",
                   "ec2:ModifyNetworkInterfaceAttribute",
                   "ec2:DescribeNetworkInterfaceAttribute",
                   "ec2:DescribeAvailabilityZones",
                   "ec2:DescribeRegions",
                   "ec2:DescribeVpcs",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeNetworkAcls"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SecretsManagerPermissions",
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:us-east-1:123456789012:secret:source_DB_secret-ABC123",
                   "arn:aws:secretsmanager:us-east-1:123456789012:secret:destination_DB_secret-456DEF"
               ]
           },        {
               "Sid": "KmsPermissions",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey",
                   "kms:GenerateDataKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/aa11bb22-####-####-####-fedcba123456"
           },
           {
               "Sid": "RdsPermissions",
               "Effect": "Allow",
               "Action": [
                   "rds:DescribeDBClusters",
                   "rds:DescribeDBInstances"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 檢查錯誤並進行更正。

1. 選擇**下一步**。

1. 在**檢閱與建立**頁面輸入**政策名稱** (例如 **data\$1loading\$1policy**)，接著選擇**建立政策**。