

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

# 整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3
<a name="db2-s3-integration"></a>

您可以在 Amazon RDS for Db2 資料庫執行個體與具有 Amazon RDS 預存程序的 Amazon Simple Storage Service (Amazon S3) 儲存貯體之間傳輸檔案。如需詳細資訊，請參閱[Amazon RDS for Db2 預存程序參考](db2-stored-procedures.md)。

**注意**  
資料庫執行個體與 Amazon S3 儲存貯體必須在相同的 AWS 區域中。

若要讓 RDS for Db2 與 Amazon S3 整合，則您的資料庫執行個體必須具有存放 RDS for Db2 所在之 Amazon S3 儲存貯體的存取權。如果您目前沒有 S3 儲存貯體，請[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket-overview.html)。

**Topics**
+ [步驟 1：建立 IAM 政策](#db2-creating-iam-policy)
+ [步驟 2：建立 IAM 角色並附加您的 IAM 政策](#db2-creating-iam-role)
+ [步驟 3：將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體](#db2-adding-iam-role)

## 步驟 1：建立 IAM 政策
<a name="db2-creating-iam-policy"></a>

在此步驟中，您會建立具有將檔案從 Amazon S3 儲存貯體傳輸至 RDS 資料庫執行個體所需許可的 AWS Identity and Access Management (IAM) 政策。此步驟假設您已建立 S3 儲存貯體。如需詳細資訊，請參閱《Amazon S3 使用者指南》**中的[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

在您建立政策之前，請記住下列資訊：
+ 儲存貯體的 Amazon Resource Name (ARN)
+ 如果您的儲存貯體使用 SSE-KMS或 SSE-S3加密，則為您的 AWS Key Management Service (AWS KMS) 金鑰的 ARN。

您建立的 IAM 政策應包含下列資訊。以 SS3*3 儲存貯體的名稱取代 \$1amzn-s3-demo-bucket\$1*。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3BucketAccess",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::${amzn-s3-demo-bucket}/*",
                "arn:aws:s3:::${amzn-s3-demo-bucket}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

您可以使用 AWS 管理主控台 或 AWS Command Line Interface () 建立 IAM 政策AWS CLI。

### 主控台
<a name="creating-iam-policy-console"></a>

**建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體**

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

1. 在導覽窗格中，選擇**政策**。

1. 選擇**建立政策**，然後選擇 **JSON**。

1. 依服務新增動作。若要將檔案從 Amazon S3 儲存貯體傳輸到 Amazon RDS，您必須選取儲存貯體許可和物件許可。

1. 展開 **Resources** (資源)。您必須指定儲存貯體和物件資源。

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

1. 在**政策名稱**中，輸入此政策的名稱。

1. (選用) 在**說明**中，輸入此政策的說明。

1. 選擇**建立政策**。

### AWS CLI
<a name="creating-iam-policy-cli"></a>

**建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體**

1.  建立包含下列 JSON 政策文件的 JSON 檔案。以 SS3*3 儲存貯體的名稱取代 \$1amzn-s3-demo-bucket\$1*。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowS3BucketAccess",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:AbortMultipartUpload",
                   "s3:ListBucket",
                   "s3:GetObjectVersion",
                   "s3:ListMultipartUploadParts",
                   "s3:GetBucketAcl",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::${amzn-s3-demo-bucket}/*",
                   "arn:aws:s3:::${amzn-s3-demo-bucket}"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListAllMyBuckets"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

1. 執行 [https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) 命令。在下列範例中，將 *iam\$1policy\$1name* 和 *iam\$1policy\$1file\$1name* 取代為 IAM 政策的名稱，以及您在步驟 1 中建立的 JSON 檔案的名稱。

   針對 Linux、macOS 或 Unix：

   ```
   aws iam create-policy \
       --policy-name iam_policy_name \
       --policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "kms:GenerateDataKey",
               "kms:Decrypt",
               "s3:PutObject",
               "s3:GetObject",
               "s3:AbortMultipartUpload",
               "s3:ListBucket",
               "s3:DeleteObject",
               "s3:GetObjectVersion",
               "s3:ListMultipartUploadParts"
             ],
             "Resource": [
               "arn:aws:s3:::s3_bucket_name/*",
               "arn:aws:s3:::s3_bucket_name"
             ]
           }
         ]
       }'
   ```

   在 Windows 中：

   ```
   aws iam create-policy ^
       --policy-name iam_policy_name ^
       --policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
               "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:AbortMultipartUpload",
                 "s3:ListBucket",
                 "s3:DeleteObject",
                 "s3:GetObjectVersion",
                 "s3:ListMultipartUploadParts"
               ],
               "Resource": [
                 "arn:aws:s3:::s3_bucket_name/*",
                 "arn:aws:s3:::s3_bucket_name"
               ]
           }
         ]
       }'
   ```

1. 建立政策後，請記下政策的 ARN。您需要 [步驟 2：建立 IAM 角色並附加您的 IAM 政策](#db2-creating-iam-role) 的 ARN。

如需有關建立 IAM 政策的詳細資訊，請參閱 IAM 使用者指南中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

## 步驟 2：建立 IAM 角色並附加您的 IAM 政策
<a name="db2-creating-iam-role"></a>

此步驟會假設您已於 [步驟 1：建立 IAM 政策](#db2-creating-iam-policy) 中建立了 IAM 政策。在此步驟中，您會建立 RDS for Db2 資料庫執行個體的 IAM 角色，然後將 IAM 政策附加至角色。

您可以使用 AWS 管理主控台 或 為資料庫執行個體建立 IAM 角色 AWS CLI。

### 主控台
<a name="creating-iam-role-console"></a>

**建立 IAM 角色，並將 IAM 政策連接至該角色**

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

1. 在導覽窗格中，選擇 **Roles** (角色)。

1. 選擇 **Create Role** (建立角色)。

1. 針對**信任的實體類型**，請選取 **AWS 服務**。

1. 針對**服務或使用案例**，請選取 **RDS**，然後選取 **RDS ****– ****新增角色至資料庫**。

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

1. 針對**許可政策**，搜尋並選取您建立的 IAM 政策之名稱。

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

1. 在 **Role name** (角色名稱) 中，輸入角色名稱。

1. (選用) 在 **Description** (說明) 中，輸入新角色的說明。

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

### AWS CLI
<a name="creating-iam-role-cli"></a>

**建立 IAM 角色，並將 IAM 政策連接至該角色**

1. 建立包含下列 JSON 政策文件的 JSON 檔案：

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

****  

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

------

1. 執行 [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 命令。在下列範例中，將 *iam\$1role\$1name* 和 *iam\$1assume\$1role\$1policy\$1file\$1name* 取代為 IAM 角色的名稱，以及您在步驟 1 中建立的 JSON 檔案的名稱。

   針對 Linux、macOS 或 Unix：

   ```
   aws iam create-role \
       --role-name iam_role_name \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

   在 Windows 中：

   ```
   aws iam create-role ^
       --role-name iam_role_name ^
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

1. 角色建立後，請記下角色的 ARN。您需要 [步驟 3：將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體](#db2-adding-iam-role) 的 ARN。

1. 執行 [https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) 命令。在下列範例中，將 *iam\$1policy\$1arn* 取代為您在 [步驟 1：建立 IAM 政策](#db2-creating-iam-policy) 中所建立 IAM 政策的 ARN。將 *iam\$1role\$1name* 取代為您剛建立的 IAM 角色之名稱。

   在 Linux、macOS 或 Unix 中：

   ```
   aws iam attach-role-policy \
      --policy-arn iam_policy_arn \
      --role-name iam_role_name
   ```

   在 Windows 中：

   ```
   aws iam attach-role-policy ^
      --policy-arn iam_policy_arn ^
      --role-name iam_role_name
   ```

如需詳細資訊，請參閱《*IAM 使用者指南*》中的[建立角色以將許可委派給 IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)。

## 步驟 3：將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體
<a name="db2-adding-iam-role"></a>

在此步驟中，您將 IAM 角色新增至 RDS for Db2 資料庫執行個體。請注意以下要求：
+ 您必須能存取連接了必要 Amazon S3 許可政策的角色。
+ 您一次只能將一個 IAM 角色與 RDS for Db2 資料庫執行個體建立關聯。
+ 您的 RDS for Db2 資料庫執行個體必須處於**可用**狀態。

您可以使用 AWS 管理主控台 或 將 IAM 角色新增至資料庫執行個體 AWS CLI。

### 主控台
<a name="db2-adding-iam-role-console"></a>

**將 IAM 角色新增至 RDS for Db2 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇您的 RDS for Db2 資料庫執行個體名稱。

1. 在 **Connectivity & security (連線和安全)** 索引標籤上，向下捲動至頁面底部的 **Manage IAM roles (管理 IAM 角色)** 區段。

1. 對於**新增 IAM 角色到此執行個體**，請選擇您在 [步驟 2：建立 IAM 角色並附加您的 IAM 政策](#db2-creating-iam-role) 中建立的角色。

1. 針對 **Feature** (功能) 選擇 **S3\$1INTEGRATION**。

1. 選擇 **Add role (新增角色)**。  
![\[S3_INTEGRATION 功能已新增至資料庫執行個體的 IAM 角色。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/db2-s3-integration-role.png)

### AWS CLI
<a name="db2-adding-iam-role-cli"></a>

若要將 IAM 角色新增至 RDS for Db2 資料庫執行個體，請執行 [https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-instance.html) 命令。在下列範例中，將 *region*、*db\$1instance\$1name* 和 *iam\$1role\$1arn* 取代為資料庫執行個體所在的 名稱 AWS 區域 、資料庫執行個體的名稱，以及您在 中建立的 IAM 角色的 ARN[步驟 2：建立 IAM 角色並附加您的 IAM 政策](#db2-creating-iam-role)。

針對 Linux、macOS 或 Unix：

```
aws rds add-role-to-db-instance \
    --region $region \
    --db-instance-identifier $db_instance_name \
    --feature-name S3_INTEGRATION \
    --role-arn $iam_role_arn \
```

在 Windows 中：

```
aws rds add-role-to-db-instance ^
    --region $region \
    --db-instance-identifier db_instance_name ^
    --feature-name S3_INTEGRATION ^
    --role-arn iam_role_arn ^
```

若要確認角色已成功新增至 RDS for Db2 資料庫執行個體，請執行 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令。在下列範例中，將 *db\$1instance\$1name* 取代為您資料庫執行個體的名稱。

在 Linux、macOS 或 Unix 中：

```
aws rds describe-db-instances \
    --filters "Name=db-instance-id,Values=db_instance_name" \
    --query 'DBInstances[].AssociatedRoles'
```

在 Windows 中：

```
aws rds describe-db-instances ^
    --filters "Name=db-instance-id,Values=db_instance_name" ^
    --query 'DBInstances[].AssociatedRoles'
```

此命令會產生類似下列範例的輸出：

```
[
    [
        {
            "RoleArn": "arn:aws:iam::0123456789012:role/rds-db2-s3-role",
            "FeatureName": "S3_INTEGRATION",
            "Status": "ACTIVE"
        }
    ]
]
```