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

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

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

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

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

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

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

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

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

DB サブネットグループ

Oracle DB インスタンスに割り当てる DB サブネットグループには、AWS CloudHSM Classic が使用する 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. 次の環境変数を設定します。

    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 の場合:

    ls ${AWS_RDS_HOME}/bin

    Windows の場合:

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

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

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

    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 システムの場合、認証情報ファイルの所有者にのみアクセス権限を制限します。

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

      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. 次の環境変数を設定します。

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

      Linux、OS X、Unix の場合:

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

      Windows の場合:

      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 インスタンスに関する情報を出力します。

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

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

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

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

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

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

  1. IAM コンソールを開きます。

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

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

  4. [AWS Service] をクリックし、[RDS] を選択します。

  5. [Select your use case] で、[RDS] を選択します。

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

  7. [Attached permissions policy] ページで、[Next: Review] を選択します。

  8. [Review] ページの [Role name] で、RDSCloudHsmAuthorization と入力します。現在は、この名前を使用する必要があります。

    [Role description] に、ロールの説明を入力することもできます。

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

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

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

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

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

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

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

  1. IAM ポリシーの作成

    1. IAM コンソールを開きます。

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

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

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

    5. [JSON] タブを選択します。

    6. 以下のポリシー情報をコピーして、ポリシーテキストフィールドに貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "*" } ] }
    7. [Review policy] を選択します。

    8. [Name] に、AssumeRole と入力します。オプションで [Description] 値を追加することもできます。

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

  2. ロールを作成し、

    1. IAM コンソールのナビゲーションペインで [Roles] を選択します。

    2. [Create role] を選択します。

    3. [AWS service] で、[RDS] を選択します。

    4. [Select your use case] で、[RDS] を選択します。

    5. [Next: Permissions] を選択します。

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

    7. [Review] ページの [Role name] で、RDSCloudHsmAssumeAuthorization と入力します。現在は、この名前を使用する必要があります。

      [Role description] に、ロールの説明を入力することもできます。

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

  3. ロールへのポリシーの付与

    1. IAM コンソールのナビゲーションペインで [Roles] を選択します。

    2. [Search] フィールドに、RDSCloudHsmAssumeAuthorization と入力し、リストに表示されたらロールをクリックします。

    3. [Permissions] タブで、ポリシーから次のデフォルト ロールをデタッチします。

      • AmazonRDSDirectoryServiceAccess

      • RDSCloudHsmAuthorizationRole

      ロールをデタッチするには、右側のロールに関連付けられている X をクリックし、[Detach] をクリックします。

    4. [Permissions] タブで [Attach policy] を選択します。

    5. [Attach policy] ページで、[Search] フィールドに AssumeRole と入力します。

    6. リストに表示されたら、[AssumeRole] ポリシーを選択します。

    7. [Attach policy] を選択します。

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

  1. IAM コンソールを開きます。

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

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

  4. [Search] フィールドに、RDSCloudHsmAuthorization と入力し、リストに表示されたらロールをクリックします。このロールは、単一アカウントの CloudHSM-RDS 用に作成したものです。

  5. [Trust relationships] タブを選択します。

  6. [Edit trust relationship] を選択します。

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

    { "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" } ] }
  8. [Update Trust Policy] を選択します。

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

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

AWS CloudHSM Classic を Amazon RDS DB インスタンスの異なる VPC で使用するには (VPC に DB インスタンスを作成する に説明されているとおりに DB アカウントで作成したもの)、DB インスタンスを含む VPC から HSM アプライアンスを含む HSM 特定の 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 の場合:

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 の場合:

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

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

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

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

Linux、OS X、Unix の場合:

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

Windows の場合:

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

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

OPTION TDE_HSM y n Oracle Advanced Security - TDE with HSM

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

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

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

AWS CloudHSM Classic で使用する新しい 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 Classic アクセスを提供する 2 つのパラメータを含み、tdehsm-option-group というオプショングループを使用する、HsmInstance-test01 という新しい Oracle Enterprise Edition DB インスタンスを作成します。

Linux、OS X、Unix の場合:

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 の場合:

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>

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

DBINSTANCE hsminstance-test01 db.m1.medium oracle-ee 40 fooooo creating 1 **** n 11.2.0.4.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 Classic のパラメータを追加するように既存の DB インスタンスを変更する

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

Linux、OS X、Unix の場合:

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 の場合:

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

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

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.4.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