Oracle ネイティブネットワーク暗号化 - Amazon Relational Database Service

Oracle ネイティブネットワーク暗号化

Amazon RDS は、Oracle ネイティブネットワーク暗号化 (NNE) をサポートしています。ネイティブネットワーク暗号化を使用すると、DB インスタンスとの間でデータ移動を暗号化できます。Amazon RDS は、Oracle のすべてのエディションで NNNE をサポートしています。

Oracle ネイティブネットワーク暗号化の詳細な説明はこのガイドでは取り上げませんが、配置で使用するソリューションを決定する前に各アルゴリズムおよびキーの長所と短所を理解する必要があります。Oracle ネイティブネットワークの暗号化で使用できるアルゴリズムとキーについては、Oracle ドキュメントの「Configuring Network Data Encryption」を参照してください。AWS セキュリティの詳細については、AWS セキュリティセンターを参照してください。

注記

ネイティブネットワーク暗号化または Secure Sockets Layer を使用できますが、両方を使用することはできません。詳細については、「Oracle Secure Sockets Layer」を参照してください。

NNE オプション設定

暗号化要件は、サーバーとクライアントの両方で指定できます。DB インスタンスは、データベースリンクを使用して別のデータベースに接続する場合などに、クライアントとして機能します。サーバー側で暗号化の強制を回避できます。例えば、サーバーで必要としているからといって、すべてのクライアント通信で暗号化の使用を強制することはありません。この場合、SQLNET.*CLIENT オプションを使用してクライアント側で暗号化を強制できます。

Amazon RDS は、NNE オプションの次の設定をサポートします。

注記

オプション設定の値をコンマで区切る場合は、コンマの後にスペースを挿入しないでください。

オプション設定 有効な値 デフォルト値 説明

SQLNET.CRYPTO_CHECKSUM_CLIENT

Accepted, Rejected, Requested, Required

Requested

クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のデータ整合性動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。

Requested は、DB インスタンスによるチェックサムの実行をクライアントで必要としないことを示しています。

SQLNET.CRYPTO_CHECKSUM_SERVER

Accepted, Rejected, Requested, Required

Requested

クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のデータ整合性動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。

Requested は、クライアントによるチェックサムの実行を DB インスタンスで必要としないことを示しています。

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

SHA256, SHA384, SHA512, SHA1, MD5

SHA256, SHA384, SHA512

チェックサムアルゴリズムのリスト。

1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマを使用する場合は、コンマの後にスペースを挿入しないでください。スペースを挿入すると、InvalidParameterValue エラーが発生します。

このパラメータと SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER には、共通の暗号が必要です。

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

SHA256, SHA384, SHA512, SHA1, MD5

SHA256, SHA384, SHA512, SHA1, MD5

チェックサムアルゴリズムのリスト。

1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマを使用する場合は、コンマの後にスペースを挿入しないでください。スペースを挿入すると、InvalidParameterValue エラーが発生します。

このパラメータと SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT には、共通の暗号が必要です。

SQLNET.ENCRYPTION_CLIENT

Accepted, Rejected, Requested, Required

Requested

クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のクライアントの暗号化動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。

Requested は、クライアントでサーバーからのトラフィックを暗号化する必要がないことを示しています。

SQLNET.ENCRYPTION_SERVER

Accepted, Rejected, Requested, Required

Requested

クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のサーバーの暗号化動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。

Requested は、DB インスタンスでクライアントからのトラフィックを暗号化する必要がないことを示します。

SQLNET.ENCRYPTION_TYPES_CLIENT

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

クライアントによって使用される暗号化アルゴリズムのリスト。クライアントでは、各アルゴリズムが順序どおりに使用され、アルゴリズムが成功するか、リストの末尾に到達するまでサーバー入力の復号を試みます。

Amazon RDS は、Oracle による次のデフォルトリストを使用します。順序を変更したり、DB インスタンスで受け入れられるアルゴリズムを制限したりすることができます。

  1. RC4_256: RSA RC4 (256 ビットのキーサイズ)

  2. AES256: AES (256 ビットのキーサイズ)

  3. AES192: AES (192 ビットのキーサイズ)

  4. 3DES168: 3-key Triple-DES (112 ビットの有効キーサイズ)

  5. RC4_128: RSA RC4 (128 ビットのキーサイズ)

  6. AES128: AES (128 ビットのキーサイズ)

  7. 3DES112: 2-key Triple-DES (80 ビットの有効キーサイズ)

  8. RC4_56: RSA RC4 (56 ビットのキーサイズ)

  9. DES: Standard DES (56 ビットのキーサイズ)

  10. RC4_40: RSA RC4 (40 ビットのキーサイズ)

  11. DES40: DES40 (40 ビットのキーサイズ)

1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマの場合は、コンマの後にスペースを挿入しないでください。スペースを挿入しないと、InvalidParameterValue エラーが発生します。

このパラメータと SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER には、共通の暗号が必要です。

SQLNET.ENCRYPTION_TYPES_SERVER

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

DB インスタンスによって使用された暗号化アルゴリズムのリスト。DB インスタンスは、各アルゴリズムを順序どおりに使用し、アルゴリズムが成功するか、リストの末尾に到達するまでクライアントの復号を試みます。

Amazon RDS は、Oracle による次のデフォルトリストを使用します。順序を変更したり、クライアントで受け入れられるアルゴリズムを制限したりすることができます。

  1. RC4_256: RSA RC4 (256 ビットのキーサイズ)

  2. AES256: AES (256 ビットのキーサイズ)

  3. AES192: AES (192 ビットのキーサイズ)

  4. 3DES168: 3-key Triple-DES (112 ビットの有効キーサイズ)

  5. RC4_128: RSA RC4 (128 ビットのキーサイズ)

  6. AES128: AES (128 ビットのキーサイズ)

  7. 3DES112: 2-key Triple-DES (80 ビットの有効キーサイズ)

  8. RC4_56: RSA RC4 (56 ビットのキーサイズ)

  9. DES: Standard DES (56 ビットのキーサイズ)

  10. RC4_40: RSA RC4 (40 ビットのキーサイズ)

  11. DES40: DES40 (40 ビットのキーサイズ)

1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマの場合は、コンマの後にスペースを挿入しないでください。スペースを挿入しないと、InvalidParameterValue エラーが発生します。

このパラメータと SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER には、共通の暗号が必要です。

NNE オプションの追加

DB インスタンスに NNE オプションを追加する一般的な手順は以下のとおりです。

  1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

  2. オプショングループに [] オプションを追加します。

  3. オプショングループを DB インスタンスに関連付けます。

オプショングループがアクティブになると、NNE がアクティブになります。

NNE オプションを DB インスタンスに追加するには

  1. [Engine] で、使用する Oracle のエディションを選択します。NNE はすべてのエディションでサポートされます。

  2. [メジャーエンジンのバージョン] で、DB インスタンスのバージョンを選択します。

    詳細については、「オプショングループを作成する」を参照してください。

  3. オプショングループに [NNE] オプションを追加します。オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。

    注記

    NNE オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに NNE がアクティブになります。

  4. 新規または既存の DB インスタンスに、DB オプショングループを適用します。

    • 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

    • 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。NNE オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに NNE がアクティブになります。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

sqlnet.ora で NNE 値を設定する

Oracle ネイティブネットワーク暗号化を使用すると、サーバー側とクライアント側でネットワーク暗号化を設定できます。クライアントとは DB インスタンスへの接続に使用されるコンピュータです。slqnet.ora では、次のクライアント設定を指定できます。

  • SQLNET.CRYPTO_CHECKSUM_CLIENT

  • SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

  • SQLNET.ENCRYPTION_CLIENT

  • SQLNET.ENCRYPTION_TYPES_CLIENT

詳細については、Oracle ドキュメントの「Oracle サーバーおよびクライアントのネットワークデータ暗号化と整合性の設定」を参照してください。

クライアントとサーバーで暗号化アルゴリズムが一致しない場合などに、DB インスタンスがアプリケーションからの接続リクエストを拒否することがあります。Oracle ネイティブネットワーク暗号化をテストするには、クライアントの sqlnet.ora ファイルに次の行を追加します。

DIAG_ADR_ENABLED=off TRACE_DIRECTORY_CLIENT=/tmp TRACE_FILE_CLIENT=nettrace TRACE_LEVEL_CLIENT=16

接続が試行されると、前の行により /tmp/nettrace* というトレースファイルがクライアントに生成されます。トレースファイルには、接続に関する情報が含まれています。Oracle ネイティブネットワーク暗号化を使用した場合の接続に関連する問題の詳細については、Oracle ドキュメントの「暗号化と整合性のネゴシエーションについて」を参照してください。

NNE オプションの設定を変更する

NNE を有効にした後、オプションの設定を変更できます。オプション設定の変更方法の詳細については、「オプションの設定を変更する」を参照してください。各設定の詳細については、「NNE オプション設定」を参照してください。

NNE オプションの設定を変更する場合は、SQLNET.CRYPTO_CHECKSUM_TYPES_SERVERSQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT に共通の暗号が少なくとも 1 つあることを確認してください。例えば、SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT のデフォルト値が SHA256,SHA384,SHA512 であるとします。値が SHA1,MD5,SHA256 になるように SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER を変更します。2 つのパラメータが SHA256 を共有しているため、この設定は有効です。

別の例では、SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER をデフォルト設定から SHA1,MD5 に変更するとします。この場合、SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT を 必ず SHA1 または MD5 に設定してください。これらのアルゴリズムは SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT のデフォルト値に含まれていません。

NNE オプションの削除

DB インスタンスから NNE を削除できます。

DB インスタンスから NNE を削除するには、次のいずれかを実行します。

  • 複数の DB インスタンスから NNE を削除するには、属しているオプショングループから NNE オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。NNE オプションを削除した後に DB インスタンスを再起動する必要はありません。詳細については、「オプショングループからオプションを削除する」を参照してください。

  • 単一の DB インスタンスから NNE を削除するには、DB インスタンスを変更し、NNE オプションが含まれていない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。NNE オプションを削除した後に DB インスタンスを再起動する必要はありません。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。