

# Oracle Secure Sockets Layer
<a name="Appendix.Oracle.Options.SSL"></a>

RDS for Oracle DB インスタンスの SSL 暗号化を有効するには、その DB インスタンスに関連付けられているオプショングループに、Oracle SSL オプションを追加します。Oracle からの要求があるため、Amazon RDS では SSL 接続のために 2 番目のポートを使用しています。この方法では、クリアテキストと SSL 暗号化の両方の通信を、DB インスタンスと SQL\*Plus 間で同時に実行できます。例えば、このポートで SSL 暗号化通信を使用して VPC 外部のリソースと通信する一方で、このポートでクリアテキスト通信を使用して VPC 内の他のリソースと通信できます。

**注記**  
同じ RDS for Oracle DB インスタンスで SSL またはネイティブネットワークの暗号化 (NNE) のいずれかを使用できますが、両方使用することはできません。SSL 暗号化を使用する場合は、他のすべての接続の暗号化を無効にする必要があります。詳細については、「[Oracle ネイティブネットワーク暗号化](Appendix.Oracle.Options.NetworkEncryption.md)」を参照してください。

SSL/TLS と NNE は、Oracle Advanced Security の一部ではなくなりました。RDS for Oracle では、以下のデータベースバージョンのすべてのライセンスされたエディションで、SSL 暗号化を使用できます。
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [Oracle SSL オプションの TLS バージョン](#Appendix.Oracle.Options.SSL.TLS)
+ [Oracle SSL オプションの暗号スイート](#Appendix.Oracle.Options.SSL.CipherSuites)
+ [FIPS のサポート](#Appendix.Oracle.Options.SSL.FIPS)
+ [暗号スイートと証明書の互換性](#Appendix.Oracle.Options.SSL.CertificateCompatibility)
+ [SSL オプションの追加](Appendix.Oracle.Options.SSL.OptionGroup.md)
+ [RDS for Oracle DB インスタンスで SSL を使用するように SQL\*Plus を設定する](Appendix.Oracle.Options.SSL.ClientConfiguration.md)
+ [SSL を使用した RDS for Oracle DB インスタンスへの接続](Appendix.Oracle.Options.SSL.Connecting.md)
+ [JDBC を介した SSL 接続のセットアップ](Appendix.Oracle.Options.SSL.JDBC.md)
+ [SSL 接続で DN を一致させる](Appendix.Oracle.Options.SSL.DNMatch.md)
+ [SSL 接続のトラブルシューティング](Appendix.Oracle.Options.SSL.troubleshooting.md)

## Oracle SSL オプションの TLS バージョン
<a name="Appendix.Oracle.Options.SSL.TLS"></a>

Amazon RDS for Oracle は、Transport Layer Security (TLS) バージョン 1.0 および 1.2 をサポートしています。新しい Oracle SSL オプションを追加するときは、`SQLNET.SSL_VERSION` を有効な値に明示的に設定します。オプション設定には、次の値を使用できます。
+ `"1.0"` - クライアントは、TLS バージョン 1.0 のみを使用して DB インスタンスに接続できます。既存の Oracle SSL オプションで、`SQLNET.SSL_VERSION` は自動的に `"1.0"` に設定されます。必要に応じて設定を変更できます。
+ `"1.2"` - クライアントは、TLS 1.2 のみを使用して DB インスタンスに接続できます。
+ `"1.2 or 1.0"` - クライアントは、TLS 1.2 または 1.0 のいずれかを使用して DB インスタンスに接続できます。

## Oracle SSL オプションの暗号スイート
<a name="Appendix.Oracle.Options.SSL.CipherSuites"></a>

Amazon RDS for Oracle は、複数の SSL 暗号スイートをサポートしています。デフォルトでは、Oracle SSL オプションは `SSL_RSA_WITH_AES_256_CBC_SHA` 暗号スイートを使用するように設定されています。SSL 接続で使用する別の暗号スイートを指定するには、`SQLNET.CIPHER_SUITE` オプション設定を使用します。

`SQLNET.CIPHER_SUITE` には複数の値を指定することができます。この手法は、DB インスタンス間にデータベースリンクがあり、暗号スイートを更新する場合に便利です。

次の表は、Oracle Database 19c および 21c のすべてのエディションでの RDS for Oracle の SSL サポートをまとめたものです。


| 暗号スイート (SQLNET.CIPHER\_SUITE) | TLS バージョン (SQLNET.SSL\_VERSION) | FIPS のサポート | FedRAMP 準拠 | 
| --- | --- | --- | --- | 
| SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA (デフォルト) | 1.0 および 1.2 | あり | いいえ | 
| SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256 | 1.2 | あり | いいえ | 
| SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | あり | いいえ | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | はい | あり | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256 | 1.2 | はい | あり | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384 | 1.2 | はい | あり | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256 | 1.2 | はい | あり | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA | 1.2 | はい | あり | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | 1.2 | はい | あり | 
| TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | はい | あり | 
| TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | 1.2 | はい | あり | 

## FIPS のサポート
<a name="Appendix.Oracle.Options.SSL.FIPS"></a>

RDS for Oracle では、連邦情報処理規格 (FIPS) 140-2 標準を使用できます。FIPS 140-2 は、暗号化モジュールのセキュリティ要件を規定する米国政府のスタンダード規格です。FIPS 標準は、Oracle SSL オプションの `FIPS.SSLFIPS_140` を `TRUE` に設定することでオンにします。SSL に FIPS 140-2 を設定した場合、暗号化ライブラリはクライアントと RDS for Oracle DB インスタンスの間のデータを暗号化します。

クライアントは、FIPS 準拠の暗号スイートを使用する必要があります。接続を確立する際、クライアントと RDS for Oracle DB インスタンスはメッセージの送受信に使用する暗号スイートをネゴシエートします。[Oracle SSL オプションの暗号スイート](#Appendix.Oracle.Options.SSL.CipherSuites) の表に、各 TLS バージョンについて FIPS 準拠の SSL 暗号スイートを示します。詳細については、Oracle データベースドキュメントの「[Oracle データベース FIPS 140-2 設定](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/oracle-database-fips-140-settings.html#GUID-DDBEB3F9-B216-44BB-8C18-43B5E468CBBB)」を参照してください。

## 暗号スイートと証明書の互換性
<a name="Appendix.Oracle.Options.SSL.CertificateCompatibility"></a>

RDS for Oracle は、RSA 証明書と楕円曲線デジタル署名アルゴリズム (ECDSA) 証明書の両方をサポートしています。DB インスタンスの SSL を設定するときは、`SQLNET.CIPHER_SUITE` オプション設定で指定した暗号スイートが DB インスタンスで使用される証明書タイプと互換性があることを確認する必要があります。

次の表は、証明書タイプと暗号スイート間の互換性を示しています。


| [証明書タイプ] | 互換性のある暗号スイート | 互換性のない暗号スイート | 
| --- | --- | --- | 
| RSA 証明書 (rds-ca-2019、rds-ca-rsa2048-g1、rds-ca-rsa4096-g1) | SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256<br />SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | 
| ECDSA 証明書 (rds-ca-ecc384-g1) | TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256<br />SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | 

`SQLNET.CIPHER_SUITE` オプション設定で複数の暗号スイートを指定する場合は、DB インスタンスで使用される証明書タイプと互換性のある暗号スイートを少なくとも 1 つ含めてください。証明書タイプが異なる複数の DB インスタンスでオプショングループを使用している場合は、証明書タイプごとに少なくとも 1 つの暗号スイートを含めます。

DB インスタンスの証明書タイプと互換性のない暗号スイートのみを含む SSL オプションにオプショングループを関連付けようとすると、オペレーションは失敗し、非互換性を示すエラーメッセージが表示されます。