メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Amazon RDS を AWS CloudHSM と連動するようにセットアップする

AWS CloudHSM を Oracle DB インスタンスで使用して Oracle TDE を使用するには、次のタスクを実行する必要があります。

  • Oracle DB インスタンスに関連付けられたセキュリティグループに HSM ポート 1792 へのアクセスが許可されていることを確認します。

  • HSM が使用する VPC 内のサブネットと同じサブネットを使用する DB サブネットグループを作成し、その DB サブネットグループを Oracle DB インスタンスに割り当てます。

  • Amazon RDS CLI をセットアップします。

  • Amazon RDS が AWS CloudHSM へのアクセス時に使用する IAM アクセス許可を追加します。

  • Amazon RDS CLI を使用して、Oracle DB インスタンスに関連付けられているオプショングループに TDE_HSM オプションを追加します。

  • 2 つの新しい DB インスタンスパラメータを、AWS CloudHSM を使用する Oracle DB インスタンスに追加します。tde-credential-arn パラメータは、create-hapg コマンドから返される高可用性 (HA) パーティショングループの Amazon リソース番号 (ARN) です。tde-credential-password は、HA パーティショングループの初期化時に使用したパーティションパスワードです。

Amazon RDS CLI に関するドキュメントは、「AWS Command Line Interface とは」および「AWS Command Line Interface を使用したセットアップの開始」セクションを参照してください。AWS CLI を使用する一般的な手順については、「AWS Command Line Interface の使用」を参照してください。

以降のセクションでは、Amazon RDS CLI をセットアップする方法、RDS が HSM にアクセスするのに必要なアクセス許可を追加する方法、TDE_HSM オプションを使用してオプショングループを作成する方法、および TDE_HSM オプションを使用する DB インスタンスを作成または変更する方法について説明します。

セキュリティグループ

RDS インスタンスが HSM と通信するためには、HSM アプライアンスに割り当てられたセキュリティグループ ENI で、DB インスタンスからの TCP ポート 1792 への着信接続を許可する必要があります。さらに、HSM の ENI に関連付けられたネットワーク ACL で、RDS インスタンスから TCP ポート 1792 への着信と、HSM から RDS インスタンス上のダイナミックポート範囲への発信接続を許可する必要があります。ダイナミック TCP ポートの範囲については、「Amazon VPC のドキュメント」を参照してください。

AWS CloudFormation テンプレートを使用して AWS CloudHSM 環境を作成した場合、パブリックサブネットからの SSH および NTLS が許可されたセキュリティグループを変更します。AWS CloudFormation テンプレートを使用していない場合は、HSM アプライアンスに割り当てられた ENI に関連付けられているセキュリティグループを変更します。

DB サブネットグループ

Oracle DB インスタンスに割り当てる DB サブネットグループには、CloudHSM が使用する VPC 内のサブネットと同じサブネットが必要です。DB サブネットグループを作成する方法については、「DB サブネットグループを作成する」を参照してください。または AWS CLI の create-db-subnet-group コマンドを使用して DB サブネットグループを作成できます。

Amazon RDS CLI のセットアップ

Amazon RDS CLI は、Java バージョン 1.6 以上がインストールされた Linux または Windows オペレーティングシステムを実行するコンピューターにインストールできます。

以下の手順に従って、Amazon RDS CLI をインストールし、構成します。

  1. Amazon RDS CLI をここからダウンロードします。ファイルを解凍します。

  2. 次の環境変数を設定します。

    Copy
    AWS_RDS_HOME - <The directory where the deployment files were copied to> JAVA_HOME - <Java Installation home directory>

    環境変数が適切に設定されていることを確認するには、Linux または Windows に次のコマンドを実行すると、describe-db-instances などの AWS CLI コマンドが一覧表示されます。

    Linux、OS X、Unix の場合:

    Copy
    ls ${AWS_RDS_HOME}/bin

    Windows の場合:

    Copy
    dir %AWS_RDS_HOME%\bin
  3. ${AWS_RDS_HOME}/bin (Linux) または %AWS_RDS_HOME%\bin (Windows) をパスに追加します。

  4. AWS リージョンの RDS サービス URL 情報をシェル設定に追加します。(例:

    Copy
    export RDS_URL=https://rds.us-east-1.amazonaws.com export SERVICE_SIG_NAME=rds
  5. Linux システムの場合は、次のコマンドを使用して、bin ディレクトリ内のすべてのファイルを実行するためのアクセス権限を設定します。

    Copy
    chmod +x ${AWS_RDS_HOME}/bin/*
  6. Amazon RDS CLI に AWS ユーザー認証情報を提供します。認証情報を提供する方法は 2 つあります。AWS キーを使用する方法と、X.509 証明書を使用する方法です。

    AWS キーを使用している場合は、次の手順に従います。

    1. zip ファイル内の認証情報ファイル、${AWS_RDS_HOME}/credential-file-path.template を編集して、AWS 認証情報を追加します。Linux システムの場合、認証情報ファイルの所有者にのみアクセス権限を制限します。

      Copy
      $ chmod 600 <credential file>
    2. または、すべてのコマンドで次のオプションを指定できます。

      Copy
      aws rds <AWSCLIcommand> --aws-credential-file <credential file>
    3. または、次のコマンドラインで明示的に認証情報を指定できます: --I ACCESS_KEY --S SECRET_KEY

    X.509 証明書を使用している場合は、次の手順に従います。

    1. 証明書とプライベートキーを、my-cert.pem、my-pk.pem などのファイルに保存します。

    2. 次の環境変数を設定します。

      Copy
      EC2_CERT=<path_to_my_cert> EC2_PRIVATE_KEY=<path_to_my_private_key>
    3. または、すべてのコマンドのコマンドラインでファイルを直接指定できます。

      Linux、OS X、Unix の場合:

      Copy
      aws rds <AWSCLIcommand> \ --ec2-cert-file-path <path_to_my_cert> \ --ec2-private-key-file-path <path_to_my_private_key>

      Windows の場合:

      Copy
      aws rds <AWSCLIcommand> ^ --ec2-cert-file-path <path_to_my_cert> ^ --ec2-private-key-file-path <path_to_my_private_key>

AWS CLI が正しくセットアップされたことをテストするには、次のコマンドを実行します。最初のコマンドは、すべての Amazon RDS コマンドの使用状況レポートページを出力します。2 番目のコマンドは、使用しているアカウントのすべての DB インスタンスに関する情報を出力します。

Copy
aws rds --help aws rds describe-db-instances --headers

Amazon RDS に AWS CloudHSM へのアクセスを許可する IAM アクセス許可を追加する

1 つの AWS アカウントで、Amazon RDS と AWS CloudHSM を使用できます。または、Amazon RDS と AWS CloudHSM をそれぞれ別のアカウントで使用することもできます。このセクションでは、両方の手順について説明します。

1 つの Amazon RDS アカウントに IAM アクセス許可を追加し、AWS CloudHSM API にアクセスする

AWS CloudHSM API にアクセスするために Amazon RDS で使用する IAM ロールを作成するには、以下の手順を使用します。Amazon RDS は、AWS CloudHSM を使用する DB インスタンスが作成または変更されたときに、この IAM ロールがあるかどうかを確認します。

To create a IAM role for Amazon RDS to access the AWS CloudHSM API

  1. Open the IAM Console at https://console.aws.amazon.com.

  2. In the left navigation pane, click Roles.

  3. Click Create New Role.

  4. In the Role Name text box, type RDSCloudHsmAuthorization. Currently, you must use this name. Click Next Step.

  5. Click AWS Service Roles, scroll to Amazon RDS, choose Select.

  6. On the Attach Policy page, click Next Step. The correct policy is already attached to this role.

  7. Review the information and then click Create Role.

別々の AWS CloudHSM アカウントと Amazon RDS アカウントを使用し、Amazon RDS で CloudHSM にアクセスする

AWS CloudHSM および Amazon RDS のリソースを別々に管理する場合は、別々のアカウントで 2 つのサービスを使用できます。2 つの異なるアカウントを使用するには、次のセクションで説明するようにアカウントをそれぞれセットアップする必要があります。

2 つのアカウントを使用するには、以下のアカウントが必要です。

  • AWS CloudHSM サービスで有効であり、ハードウェアセキュリティモジュール (HSM) デバイスの所有者であるアカウント。通常、このアカウントは、顧客 ID が HSM_ACCOUNT_ID である CloudHSM のアカウントです。

  • Oracle TDE を使用する DB インスタンスを作成および管理するために使用できる Amazon RDS のアカウント。通常、このアカウントは、顧客 ID が DB_ACCOUNT_ID である DB アカウントです。

To add DB account permission to access CloudHSM resources under the CloudHSM account

  1. Open the IAM Console at https://console.aws.amazon.com/.

  2. Log in using your DB account.

  3. In the left navigation pane, choose Roles.

  4. Choose Create New Role.

  5. For Role Name, type RDSCloudHsmAssumeAuthorization. Currently, you must use this role name for this approach to work. Choose Next Step.

  6. Choose AWS Service Roles, scroll to Amazon RDS, choose Select.

  7. On the Attach Policy page, do not attach a policy. Choose Next Step.

  8. Review the information, and then choose Create Role.

  9. For Roles, choose the RDSCloudHsmAssumeAuthorization role.

  10. For Permissions, choose Inline Policies. Text appears that provides a link; click click here.

  11. On the Set Permissions page, choose Custom Policy, then choose Select.

  12. For Policy Name, type AssumeRole.

  13. For Policy Document, type the following policy information:

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "*" } ] }
  14. Choose Apply Policy, and then log out of your DB account.

To revise the CloudHSM HSM account to trust permission to access CloudHSM resources under the CloudHSM account

  1. Open the IAM Console at https://console.aws.amazon.com/.

  2. Log in using your CloudHSM account.

  3. In the left navigation pane, choose Roles.

  4. Choose the RDSCloudHsmAuthorization role. This role is the one created for a single account CloudHSM-RDS.

  5. Choose Edit Trust Relationship.

  6. Add your DB account as a trusted account. The policy document should look like the following, with your DB account replacing the <DB_ACCOUNT_ID> placeholder:

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com", "AWS":[ "arn:aws:iam::$<DB_ACCOUNT_ID>$:role/RDSCloudHsmAssumeAuthorization" ] }, "Action": "sts:AssumeRole" } ] }
  7. Choose Update Trust Policy.

HSM に接続できる DB アカウントを使用して Amazon VPC を作成する

HSM アプライアンスは、HSM 固有の Amazon VPC にプロビジョニングされます。デフォルトでは、HSM VPC 内のホストのみが HSM デバイスを認識できます。そのため、すべての DB インスタンスは、HSM VPC 内に作成するか、VPC ピア接続を使用して HSM VPC とリンクできる VPC 内に作成する必要があります。

別の VPC の Amazon RDS DB インスタンス (「VPC に DB インスタンスを作成する」に説明されているとおりに DB アカウントに作成したもの) で CloudHSM を使用するには、その DB インスタンスを含む VPC から HSM アプライアンスを含む HSM 固有の VPC への VPC ピア接続をセットアップします。

To set up VPC peering between the two VPCs

  1. Use an existing VPC created under your DB account, or create a new VPC using your DB account. The VPC should not have any CIDR ranges that overlap with the CIDR ranges of the HSM-specific VPC.

  2. Perform VPC peering between the DB VPC and the HSM VPC. For instructions, go to VPC Peering in the Amazon Virtual Private Cloud User Guide.

  3. Ensure that the VPC routing table is correctly associated with the VPC subnet and the VPC security group on the HSM network interface.

ネットワークトラフィックが正しい VPC に向かうように (つまり、DB VPC から HSM VPC へ、また HSM VPC から DB VPC へ)、両方の VPC のルーティングテーブルを設定する必要があることに注意してください。2 つの VPC が同じセキュリティグループを共有する必要はありませんが、セキュリティグループにより 2 つの VPC 間のネットワークトラフィックが妨げられないようにします。

TDE_HSM オプションを使用したオプショングループの作成

TDE_HSM オプションは、他の Oracle オプション同様、既存のオプショングループに追加したり、新しいオプショングループを作成して、TDE_HSM オプションを追加したりできます。次の Amazon RDS CLI の例では、tdehsm-option-group という名前の Oracle Enterprise Edition 11.2 のオプショングループを作成します。

Linux、OS X、Unix の場合:

Copy
aws rds create-option-group \ --option-group-name tdehsm-option-group \ --option-group-description "Option Group with TDE_HSM" \ --engine-name oracle-ee \ --major-engine-version 11.2

Windows の場合:

Copy
aws rds create-option-group ^ --option-group-name tdehsm-option-group ^ --option-group-description "Option Group with TDE_HSM" ^ --engine-name oracle-ee ^ --major-engine-version 11.2

コマンドの出力は、次の例のようになります。

Copy
OPTIONGROUP tdehsm-option-group oracle-ee 11.2 Option Group with TDE_HSM n

オプショングループを作成したら、次のコマンドを使用して、TDE_HSM オプションをオプショングループに追加します。

Linux、OS X、Unix の場合:

Copy
aws rds add-option-to-option-group \ --option-group-name tdehsm-option-group \ --option-name TDE_HSM

Windows の場合:

Copy
aws rds add-option-to-option-group ^ --option-group-name tdehsm-option-group ^ --option-name TDE_HSM

コマンドの出力は、次の例のようになります。

Copy
OPTION TDE_HSM y n Oracle Advanced Security - TDE with HSM

Oracle DB インスタンスへの AWS CloudHSM パラメータの追加

AWS CloudHSM を使用する Oracle Enterprise Edition DB インスタンスには、DB インスタンスに追加する 2 つの新しいパラメータが必要です。tde-credential-arn および tde-credential-password パラメータは、新しい DB インスタンスを作成するとき、または既存の DB インスタンスで AWS CloudHSM を使用するように変更するときに含める必要がある新しいパラメータです。

AWS CloudHSM の追加パラメータを使用した、新しい Oracle DB インスタンスの作成

AWS CloudHSM で使用する新しい DB インスタンスを作成する場合、次のいくつかの要件があります。

  • TDE_HSM オプションを含むオプショングループを含める必要があります。

  • tde-credential-arn および tde-credential-password パラメータの値を指定する必要があります。tde-credential-arn パラメータの値は、create-hapg コマンドから返される HA パーティショングループの Amazon リソース番号 (ARN) です。また、list-hapgs コマンドを使用して、すべての高可用性パーティショングループの ARN も取得できます。

    tde-credential-password は、HA パーティショングループの初期化時に使用したパーティションパスワードです。

  • サービス間アクセスを提供する IAM ロールを作成する必要があります。

  • Oracle Enterprise Edition DB インスタンスを作成する必要があります。

次のコマンドは、AWS CloudHSM アクセスを提供する 2 つのパラメータを含み、tdehsm-option-group というオプショングループを使用する、HsmInstance-test01 という新しい Oracle Enterprise Edition DB インスタンスを作成します。

Linux、OS X、Unix の場合:

Copy
aws rds create-db-instance \ --db-instance-identifier HsmInstance-test01 \ --db-instance-class <instance class> \ --engine oracle-ee \ --tde-credential-arn <ha partition group ARN> \ --tde-credential-password <partition password> \ --db-name <Oracle DB instance name> \ --db-subnet-group-name <subnet group name> \ --connection-timeout <connection timeout value> \ --master-user-password <master user password> \ --master-username <master user name> \ --allocated-storage <storage value> \ --option-group-name <TDE option group>

Windows の場合:

Copy
aws rds create-db-instance ^ --db-instance-identifier HsmInstance-test01 ^ --db-instance-class <instance class> ^ --engine oracle-ee ^ --tde-credential-arn <ha partition group ARN> ^ --tde-credential-password <partition password> ^ --db-name <Oracle DB instance name> ^ --db-subnet-group-name <subnet group name> ^ --connection-timeout <connection timeout value> ^ --master-user-password <master user password> ^ --master-username <master user name> ^ --allocated-storage <storage value> ^ --option-group-name <TDE option group>

コマンドの出力は、次の例のようになります。

Copy
DBINSTANCE hsminstance-test01 db.m1.medium oracle-ee 40 fooooo creating 1 **** n 11.2.0.2.v7 bring-your-own-license AL52UTF8 n VPCSECGROUP sg-922xvc2fd active SUBNETGROUP dev-test test group Complete vpc-3facfe54 SUBNET subnet-1fd6a337 us-east-1e Active SUBNET subnet-28aeff43 us-east-1c Active SUBNET subnet-5daeff36 us-east-1b Active SUBNET subnet-2caeff47 us-east-1d Active PARAMGRP default.oracle-ee-11.2 in-sync OPTIONGROUP tdehsm-option-group pending-apply

AWS CloudHSM のパラメータを追加するように既存の DB インスタンスを変更する

次のコマンドは、既存の Oracle Enterprise Edition DB インスタンスを変更し、tde-credential-arn および tde-credential-password パラメータを追加します。TDE_HSM オプションを含むオプショングループをコマンドに含める必要があることにも注意してください。

Linux、OS X、Unix の場合:

Copy
aws rds modify-db-instance \ --db-instance-identifier hsm03 \ --tde-credential-arn <ha partition group ARN> \ --tde-credential-password <partition password> \ --option-group <tde hsm option group> \ --apply-immediately

Windows の場合:

Copy
aws rds modify-db-instance ^ --db-instance-identifier hsm03 ^ --tde-credential-arn <ha partition group ARN> ^ --tde-credential-password <partition password> ^ --option-group <tde hsm option group> ^ --apply-immediately

コマンドの出力は、次の例のようになります。

Copy
DBINSTANCE hsm03 2014-04-03T18:48:53.106Z db.m1.medium oracle-ee 40 fooooo available hsm03.c1iibpgwvdfo.us-east-1.rds.amazonaws.com 1521 us-east-1e 1 n 11.2.0.2.v7 bring-your-own-license AL32UTF8 n VPCSECGROUP sg-922dc2fd active SUBNETGROUP dev-test test group Complete vpc-3faffe54 SUBNET subnet-1fd6a337 us-east-1e Active SUBNET subnet-28aeff43 us-east-1c Active SUBNET subnet-5daeff36 us-east-1b Active SUBNET subnet-2caeff47 us-east-1d Active PARAMGRP default.oracle-ee-11.2 in-sync OPTIONGROUP tdehsm-option-group pending-apply OPTIONGROUP default:oracle-ee-11-2 pending-removal