メニュー
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 ロールがあるかどうかを確認します。

Amazon RDS が AWS CloudHSM API にアクセスするための IAM ロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com) を開きます。

  2. 左のナビゲーションペインで、[Roles] をクリックします。

  3. [Create New Role] をクリックします。

  4. [Role Name] テキストボックスに、「RDSCloudHsmAuthorization」と入力します。現在は、この名前を使用する必要があります。[Next Step] をクリックします。

  5. [AWS Service Roles] をクリックしてから [Amazon RDS] までスクロールし、[Select] を選択します。

  6. [Attach Policy] ページで、[Next Step] をクリックします。正しいポリシーが、既にこのロールにアタッチされています。

  7. ロール情報を確認し、[Create] をクリックします。

別々の 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 アカウントです。

CloudHSM アカウントの CloudHSM リソースにアクセスするために DB アカウントのアクセス許可を追加するには

  1. IAM コンソール (https://console.aws.amazon.com/) を開きます。

  2. DB アカウントでログインします。

  3. 左のナビゲーションペインで、[Roles] を選択します。

  4. [Create New Role] を選択します。

  5. [Role Name] に、「RDSCloudHsmAssumeAuthorization」と入力します。現在、この方法を使用するには、このロール名を使用する必要があります。[Next Step] を選択します。

  6. [AWS Service Roles] を選択してから [Amazon RDS] までスクロールし、[Select] を選択します。

  7. [Attach Policy] ページで、ポリシーをアタッチしないでください。[Next Step] を選択します。

  8. 情報を確認してから、[Create Role] を選択します。

  9. [Roles] では、[RDSCloudHsmAssumeAuthorization] ロールを選択します。

  10. [Permissions] では、[Inline Policies] を選択します。リンクを提供するテキストが表示されます。[click here] をクリックします。

  11. [Set Permissions] ページで、[Custom Policy] を選択し、次に [Select] をクリックします。

  12. [Policy Name] に、「AssumeRole」と入力します。

  13. [Policy Document] に、次のポリシー情報を入力します。

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "*" } ] }
  14. [Apply Policy] を選択してから、DB アカウントからログアウトします。

CloudHSM HSM アカウントを変更して、CloudHSM アカウントの CloudHSM リソースへのアクセス許可を信頼するには

  1. IAM コンソール (https://console.aws.amazon.com/) を開きます。

  2. CloudHSM アカウントでログインします。

  3. 左のナビゲーションペインで、[Roles] を選択します。

  4. [RDSCloudHsmAuthorization] ロールを選択します。このロールは、単一アカウントの CloudHSM-RDS 用に作成したものです。

  5. [Edit Trust Relationship] を選択します。

  6. 信頼されたアカウントとして DB アカウントを追加します。ポリシードキュメントは次のようになります。ただし、プレースホルダーの <DB_ACCOUNT_ID> を DB アカウントに置き換えます。

    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. [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 ピア接続をセットアップします。

2 つの VPC 間の VPC ピア接続をセットアップするには

  1. DB アカウントに作成された既存の VPC を使用するか、DB アカウントを使用して新しい VPC を作成します。このとき、その VPC の CIDR 範囲が、HSM 固有の VPC の CIDR 範囲と重複しないようにします。

  2. DB VPC と HSM VPC の間で VPC ピア接続を確立します。手順については、『Amazon Virtual Private Cloud ユーザーガイド』の「VPC ピア接続」を参照してください。

  3. VPC ルーティングテーブルが、HSM ネットワークインターフェイスの VPC サブネットおよび VPC セキュリティグループと正しく関連付けられていることを確認します。

ネットワークトラフィックが正しい 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