

# Oracle Transparent Data Encryption
<a name="Appendix.Oracle.Options.AdvSecurity"></a>

Amazon RDS は、Oracle Enterprise Edition で使用可能な Oracle Advanced Security オプションの機能である Oracle Transparent Data Encryption (TDE) をサポートしています。この機能は、ストレージへの書き込み前に自動的にデータを暗号化し、ストレージからのデータの読み取り時に自動的にデータを復号します。このオプションは、Bring Your Own License (BYOL) モデルでのみサポートされています。

TDE は、データファイルやバックアップが第三者によって取得された場合に機密データを暗号化する必要があるシナリオで便利です。TDE は、セキュリティ関連の規制に準拠する必要がある場合にも役立ちます。

Oracle Database TDE に関する詳細な説明は、このガイドでは取り上げません。詳細については、次の Oracle Database リソースを参照してください。
+ Oracle Database ドキュメントの「[透過的データ暗号化の概要](https://docs.oracle.com/en/database/oracle/oracle-database/19/asoag/introduction-to-transparent-data-encryption.html#GUID-62AA9447-FDCD-4A4C-B563-32DE04D55952)」
+ Oracle Database ドキュメントの「[Oracle アドバンストセキュリティ](https://www.oracle.com/security/database-security/)」
+ Oracle ホワイトペーパーの「[Oracle アドバンストセキュリティの透過的データ暗号化のベストプラクティス](https://www.oracle.com/br/a/tech/docs/technical-resources/twp-transparent-data-encryption-bestpractices.pdf)」

RDS for Oracle で TDE を使用する方法の詳細については、次のブログを参照してください。
+ [Amazon RDS の Oracle Database 暗号化オプション](https://aws.amazon.com/blogs/apn/oracle-database-encryption-options-on-amazon-rds/)
+ [ を使用して、ダウンタイムを短縮してクロスアカウント TDE 対応 Amazon RDS for Oracle DB インスタンスを移行するAWS DMS](https://aws.amazon.com/blogs/database/migrate-a-cross-account-tde-enabled-amazon-rds-for-oracle-db-instance-with-reduced-downtime-using-aws-dms/)

## TDE 暗号化モード
<a name="Appendix.Oracle.Options.AdvSecurity.Modes"></a>

Oracle Transparent Data Encryption では、TDE テーブルスペース暗号化と TDE 列暗号化の 2 つの暗号化モードがサポートされます。TDE テーブルスペース暗号化は、アプリケーションテーブル全体の暗号化に使用されます。TDE 列暗号化は、機密データを含む個々のデータ要素を暗号化するために使用されます。TDE のテーブルスペース暗号化と列暗号化の両方を使用するハイブリッド暗号化ソリューションを適用することもできます。

**注記**  
DB インスタンス用の Oracle Wallet と TDE マスターキーは Amazon RDS によって管理されます。コマンド `ALTER SYSTEM set encryption key` を使用して暗号化キーを設定する必要はありません。

`TDE` オプションを有効にすると、次のコマンドを使用して Oracle Wallet のステータスを確認できます。

```
SELECT * FROM v$encryption_wallet;
```

暗号化されたテーブルスペースを作成するには、次のコマンドを使用します。

```
CREATE TABLESPACE encrypt_ts ENCRYPTION DEFAULT STORAGE (ENCRYPT);
```

暗号アルゴリズムを指定するには、以下のコマンドを実行します。

```
CREATE TABLESPACE encrypt_ts ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);
```

テーブルスペースを暗号化するための前述のステートメントは、オンプレミスの Oracle データベースで使用するステートメントと同じです。

## TDE オプションの制限事項
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

 オプションは永続的かつ固定的です。DB インスタンスを TDE オプションが有効になっているオプショングループに関連付けると、次のアクションを実行することはできません。
+ 現在関連付けられているオプショングループの `TDE` オプションを無効にします。
+ `TDE` オプションを含まない異なるオプショングループに DB インスタンスを関連付けます。
+ `TDE` オプションを使用している DB スナップショットを共有します。DB スナップショットの共有の詳細については、「[Amazon RDS の DB スナップショットを共有する](USER_ShareSnapshot.md)」を参照してください。

永続的および固定的オプションの詳細については、「[永続オプションと固定オプション](USER_WorkingWithOptionGroups.md#Overview.OptionGroups.Permanent)」を参照してください。

## DB インスタンスが TDE を使用しているかどうかの確認
<a name="Appendix.Oracle.Options.AdvSecurity.Querying"></a>

`TDE` オプションを含むオプショングループに DB インスタンスが関連付けられているかどうかを調べるたい場合があります。DB インスタンスが関連付けられているオプショングループを表示するには、RDS コンソール、AWS CLI コマンド ([describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html))、または API オペレーション [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) を使用します。

## TDE オプションの追加
<a name="Appendix.Oracle.Options.AdvSecurity.Add"></a>

`TDE` オプションを DB インスタンスに追加するには、次のステップを完了します。

1. (推奨) DB インスタンスのスナップショットを取ります。

1. 次のいずれかのタスクを行います。
   + 新しいオプショングループを初めから作成します。詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。
   + AWS CLI または API を使用して既存のオプショングループをコピーします。詳細については、「[オプショングループをコピーする](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy)」を参照してください。
   + デフォルト以外の既存のオプショングループを再利用します。ベストプラクティスは、DB インスタンスまたはスナップショットに現在関連付けられていないオプショングループを使用することです。

1. 前のステップからオプショングループに新しいオプションを追加します。

1. 現在 DB インスタンスに関連付けられているオプショングループでオプションが有効になっている場合は、これらのオプションを新しいオプショングループに追加します。この戦略は、新しいオプションを有効にしている間に既存のオプションがアンインストールされるのを防ぐことができます。

1. DB インスタンスに新しいオプショングループを追加します。

### コンソール
<a name="Appendix.Oracle.Options.TDE.Console"></a>

**TDE オプションをオプショングループに追加して、DB インスタンスに関連付けるには**

1. RDS コンソールで、[**オプショングループ**] を選択します。

1. オプションを追加するオプショングループの名前を選択します。

1. **[オプションを追加]** を選択します。

1. [**オプション名**] として [**TDE**] を選択し、オプション設定を行います。

1. **[オプションを追加]** を選択します。
**重要**  
1 つ以上の DB インスタンスにアタッチされているオプショングループに **TDE** オプションを追加すると、すべての DB インスタンスが自動的に再起動する間に短い停止が発生します。

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

1. オプショングループを新規または既存の DB インスタンスに関連付けます。
   + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。DB インスタンスは、この操作の一部として再起動されません。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### AWS CLI
<a name="Appendix.Oracle.Options.TDE.CLI"></a>

次の例では、AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) コマンドを使用して、`TDE` オプションを `myoptiongroup` という名前のオプショングループに追加します。詳細については、「[開始方法: Flink 1.13.2](https://docs.aws.amazon.com/managed-flink/latest/java/earlier.html#getting-started-1-13)」を参照してください。

Linux、macOS、Unix の場合:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TDE" \
    --apply-immediately
```

Windows の場合:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TDE" ^
    --apply-immediately
```

## TDE オプションを含まない DB インスタンスへのデータのコピー
<a name="Appendix.Oracle.Options.AdvSecurity.Remove"></a>

DB インスタンスから TDE オプションを削除したり、TDE オプションを含まないオプショングループに関連付けることはできません。TDE オプションを含まないインスタンスにデータを移行するには、次の手順を実行します。

1.  DB インスタンス上のデータを復号します。

1.  `TDE` が有効になっているオプショングループに関連付けられていない新しい DB インスタンスにデータをコピーします。

1.  元の DB インスタンスを削除します。

新しいインスタンスには、前の DB インスタンスと同じ名前を付けることができます。

## Oracle Data Pump で TDE を使用する場合の考慮事項
<a name="Appendix.Oracle.Options.AdvSecurity.Pump"></a>

暗号化されたダンプファイルをインポートまたはエクスポートするには、Oracle Data Pump を使用します。Amazon RDS は、Oracle Data Pump 用のパスワード暗号化モード `(ENCRYPTION_MODE=PASSWORD)` をサポートしています。Oracle Data Pump 用の透過的暗号化モード `(ENCRYPTION_MODE=TRANSPARENT)` は、Amazon RDS でサポートされていません。詳細については、「[Oracle Data Pump を使用したインポート](Oracle.Procedural.Importing.DataPump.md)」を参照してください。