Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合 - Amazon Relational Database Service

Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合

Amazon RDS ストアドプロシージャを使用して、Amazon RDS for Db2 DB インスタンスと Amazon Simple Storage Service (Amazon S3) バケット間でファイルを転送できます。詳細については、「Amazon RDS for Db2 ストアドプロシージャリファレンス」を参照してください。

注記

DB インスタンスと Amazon S3 バケットは同じ AWS リージョン に存在する必要があります。

RDS for Db2 が Amazon S3 と統合するには、RDS for Db2 がある Amazon S3 バケットに DB インスタンスがアクセスできる必要があります。この時点で S3 バケットがない場合、バケット を作成します

ステップ 1: IAM ポリシーを作成する

このステップでは、Amazon S3 バケットからお客様の RDS DB インスタンスにファイルを転送するために必要なアクセス許可を持つ AWS Identity and Access Management (IAM) ポリシーを作成します。このステップは、S3 バケットが既に作成されていることを前提としています。詳細については、「Amazon S3 ユーザーガイド」の「バケットの作成」を参照してください。

ポリシーを作成する前に、次の情報を書き留めます。

  • バケットの Amazon リソースネーム (ARN)

  • ユーザーの AWS Key Management Service (AWS KMS) キーの ARN (バケットが SSE-KMS または SSE-S3 暗号化を使用している場合)

以下のアクセス許可を含む IAM ポリシーを作成します。

"kms:GenerateDataKey", "kms:Decrypt", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload", "s3:ListBucket", "s3:DeleteObject", "s3:GetObjectVersion", "s3:ListMultipartUploadParts"

IAM ポリシーは、AWS Management Console または AWS Command Line Interface (AWS CLI) を使用して作成できます。

Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[ポリシー] を選択します。

  3. [ポリシーを作成] を選択し、[JSON] を選択します。

  4. サービスごとにアクションを追加します。Amazon S3 バケットから Amazon RDS にファイルを転送するには、バケットのアクセス許可とオブジェクトのアクセス許可を選択する必要があります。

  5. [リソース] を展開します。バケットとオブジェクトのリソースを指定する必要があります。

  6. [Next] を選択します。

  7. [ポリシー名] にこのポリシーの名前を入力します。

  8. (オプション) [Description (説明)] に、ポリシーの説明を入力します。

  9. [Create policy] を選択します。

Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには
  1. create-policy コマンドを実行します。次の例では、iam_policy_names3_bucket_name を IAM ポリシーの名前と、RDS for Db2 データベースが存在する Amazon S3 バケットの名前に置き換えます。

    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" ] } ] }'
  2. ポリシーが作成されたら、ポリシーの ARN を書き留めます。ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする の ARN が必要です。

IAM ポリシーの作成については、「IAM ユーザーガイド」の「IAM ポリシーの作成」を参照してください。

ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする

このステップは、IAM ポリシーを ステップ 1: IAM ポリシーを作成する で作成したことを前提としています。このステップでは、RDS for Db2 DB インスタンスの IAM ロールを作成し、ロールに IAM ポリシーをアタッチします。

AWS Management Console または AWS CLI を使用して、DB インスタンスの IAM ロールを作成できます。

IAM ロールを作成して IAM ポリシーをアタッチするには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Roles] (ロール) を選択します。

  3. [ロールの作成] を選択します。

  4. [信頼されたエンティティタイプ] で、[AWS サービス] を選択します。

  5. [サービスまたはユースケース] で、[RDS] を選択し、[RDS - データベースにロールを追加] を選択します。

  6. [Next] を選択します。

  7. [アクセス許可ポリシー] で、作成した IAM ポリシーの名前を検索して選択します。

  8. [Next] を選択します。

  9. [Role name] (ロール名) に、ロールの名前を入力します。

  10. (オプション) [Description (説明)] には、新しいロールの説明を入力します。

  11. [ロールの作成] を選択します。

IAM ロールを作成して IAM ポリシーをアタッチするには
  1. create-role コマンドを実行します。次の例では、iam_role_name を IAM ロールの名前に置き換えます。

    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" } ] }'
  2. ロールが作成されたら、このロールの ARN を書き留めます。ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する の ARN が必要です。

  3. 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: RDS for Db2 DB インスタンスに IAM ロールを追加する

このステップでは、IAM ロールを RDS for Db2 DB インスタンスに追加します。次の要件に注意してください。

  • 必須の Amazon S3 アクセス許可ポリシーがアタッチされた IAM ロールへのアクセスが許可されている必要があります。

  • RDS for Db2 DB インスタンスには、一度に 1 つの IAM ロールのみを関連付けることができます。

  • RDS for Db2 DB インスタンスは、[使用可能] の状態である必要があります。

IAM ロールを DB インスタンスに追加するには、AWS Management Console または AWS CLI を使用します。

RDS for Db2 DB インスタンスに IAM ロールを追加するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、データベースを選択します。

  3. RDS for Db2 DB インスタンス名を選択します。

  4. 接続性とセキュリティ」 タブで、ページ下部のIAM ロールを管理する セクションまでスクロールダウンします。

  5. [このインスタンスに IAM ロールを追加] で、ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする で作成したロールを選択します。

  6. [機能] で、[S3_INTEGRATION] を選択します。

  7. [Add role] を選択します。

    S3_INTEGRATION 機能が DB インスタンスの IAM ロールに追加されました。

IAM ロールを RDS for Db2 DB インスタンスに追加するには、add-role-to-db-instance コマンドを実行します。次の例では、db_instance_nameiam_role_arn を DB インスタンスの名前と「ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする」で作成した IAM ロールの ARN に置き換えます。

Linux、macOS、Unix の場合:

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

Windows の場合:

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

ロールが RDS for Db2 DB インスタンスに正常に追加されたことを確認するには、describe-db-instances コマンドを実行します。次の例では、db_instance_name を DB インスタンスの名前に置き換えます。

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