整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3 - Amazon Relational Database Service

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

整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3

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

注意

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

若要讓 RDS for Db2 與 Amazon S3 整合,則您的資料庫執行個體必須具有存放 RDS for Db2 所在之 Amazon S3 儲存貯體的存取權。如果您目前沒有 S3 儲存貯體,請建立儲存貯體

步驟 1:建立 IAM 政策

在此步驟中,您會建立具有將檔案從 Amazon S3 儲存貯體傳輸至 RDS 資料庫執行個體所需許可的 AWS Identity and Access Management (IAM) 政策。此步驟假設您已建立 S3 儲存貯體。如需詳細資訊,請參閱《Amazon S3 使用者指南》中的建立儲存貯體

在您建立政策之前,請記住下列資訊:

  • 儲存貯體的 Amazon Resource Name (ARN)

  • 如果您的儲存貯體使用 SSE-KMS或 SSE-S3加密,則為 AWS Key Management Service (AWS KMS) 金鑰的 ARN。

您建立的 IAM 政策應包含下列資訊。以 SS33 儲存貯體的名稱取代 {amzn-s3-demo-bucket}

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 Management Console 或 AWS Command Line Interface () 建立 IAM 政策AWS CLI。

建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體
  1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在導覽窗格中,選擇政策

  3. 選擇建立政策,然後選擇 JSON

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

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

  6. 選擇下一步

  7. 政策名稱中,輸入此政策的名稱。

  8. (選用) 在說明中,輸入此政策的說明。

  9. 選擇建立政策

建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體
  1. 建立包含下列 JSON 政策文件的 JSON 檔案。以 SS33 儲存貯體的名稱取代 {amzn-s3-demo-bucket}

    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": [ "*" ] } ] }
  2. 執行 create-policy 命令。在下列範例中,將 iam_policy_nameiam_policy_file_name 取代為 IAM 政策的名稱,以及您在步驟 1 中建立的 JSON 檔案的名稱。

    對於 Linux、macOS 或 Unix:

    aws iam create-policy \ --policy-name iam_policy_name \ --policy-document file://iam_policy_file_name.json

    在 Windows 中:

    aws iam create-policy ^ --policy-name iam_policy_name ^ --policy-document file://iam_policy_file_name.json
  3. 建立政策後,請記下政策的 ARN。您需要 步驟 2:建立 IAM 角色並附加您的 IAM 政策 的 ARN。

如需有關建立 IAM 政策的詳細資訊,請參閱 IAM 使用者指南中的建立 IAM 政策

步驟 2:建立 IAM 角色並附加您的 IAM 政策

此步驟會假設您已於 步驟 1:建立 IAM 政策 中建立了 IAM 政策。在此步驟中,您會建立 RDS for Db2 資料庫執行個體的 IAM 角色,然後將 IAM 政策附加至角色。

您可以使用 AWS Management Console 或 為資料庫執行個體建立 IAM 角色 AWS CLI。

建立 IAM 角色,並將 IAM 政策連接至該角色
  1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在導覽窗格中,選擇 Roles (角色)。

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

  4. 針對信任的實體類型,請選取 AWS 服務

  5. 針對服務或使用案例,請選取 RDS,然後選取 RDS 新增角色至資料庫

  6. 選擇下一步

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

  8. 選擇下一步

  9. Role name (角色名稱) 中,輸入角色名稱。

  10. (選用) 在 Description (說明) 中,輸入新角色的說明。

  11. 選擇建立角色

建立 IAM 角色,並將 IAM 政策連接至該角色
  1. 建立包含下列 JSON 政策文件的 JSON 檔案:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 執行 create-role 命令。在下列範例中,將 iam_role_nameiam_assume_role_policy_file_name 取代為 IAM 角色的名稱,以及您在步驟 1 中建立的 JSON 檔案的名稱。

    對於 Linux、macOS 或 Unix:

    aws iam create-role \ --role-name iam_role_name \ --assume-role-policy-document file://iam_assume_role_policy_file_name.json

    在 Windows 中:

    aws iam create-role ^ --role-name iam_role_name ^ --assume-role-policy-document file://iam_assume_role_policy_file_name.json
  3. 角色建立後,請記下角色的 ARN。您需要 步驟 3:將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體 的 ARN。

  4. 執行 attach-role-policy 命令。在下列範例中,將 iam_policy_arn 取代為您在 步驟 1:建立 IAM 政策 中所建立 IAM 政策的 ARN。將 iam_role_name 取代為您剛建立的 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 使用者

步驟 3:將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體

在此步驟中,您將 IAM 角色新增至 RDS for Db2 資料庫執行個體。請注意以下要求:

  • 您必須能存取連接了必要 Amazon S3 許可政策的角色。

  • 您一次只能將一個 IAM 角色與 RDS for Db2 資料庫執行個體建立關聯。

  • 您的 RDS for Db2 資料庫執行個體必須處於可用狀態。

您可以使用 AWS Management Console 或 將 IAM 角色新增至資料庫執行個體 AWS CLI。

將 IAM 角色新增至 RDS for Db2 資料庫執行個體
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Databases (資料庫)。

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

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

  5. 對於新增 IAM 角色到此執行個體,請選擇您在 步驟 2:建立 IAM 角色並附加您的 IAM 政策 中建立的角色。

  6. 針對 Feature (功能) 選擇 S3_INTEGRATION

  7. 選擇 Add role (新增角色)

    S3_INTEGRATION 功能已新增至資料庫執行個體的 IAM 角色。

若要將 IAM 角色新增至 RDS for Db2 資料庫執行個體,請執行 add-role-to-db-instance 命令。在下列範例中,將 regiondb_instance_nameiam_role_arn 取代為資料庫執行個體所在的 名稱 AWS 區域 、資料庫執行個體的名稱,以及您在 中建立的 IAM 角色的 ARN步驟 2:建立 IAM 角色並附加您的 IAM 政策

對於 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 資料庫執行個體,請執行 describe-db-instances 命令。在下列範例中,將 db_instance_name 取代為您資料庫執行個體的名稱。

在 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" } ] ]