

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

Amazon RDS는 Oracle Enterprise Edition에서 지원되는 Oracle Advanced Security 옵션의 한 가지 기능인 Oracle Transparent Data Encryption(TDE)을 지원합니다. 이 기능은 스토리지에 데이터를 쓰기 전에 자동으로 데이터를 암호화한 뒤에 데이터를 스토리지에서 읽을 때 다시 자동으로 해독합니다. 이 옵션은 기존 보유 라이선스 사용(BYOL) 모델에만 지원됩니다.

TDE는 제3자가 데이터 파일 및 백업을 가져올 경우 민감한 데이터를 암호화해야 하는 시나리오에서 유용합니다. 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 열 암호화의 두 가지 모드를 지원합니다. TDE 테이블스페이스 암호화는 전체 애플리케이션 테이블을 암호화하는 데 사용됩니다. TDE 열 암호화는 중요 데이터를 포함하는 개별 데이터 요소를 암호화하는 데 사용됩니다. TDE 테이블스페이스 암호화와 열 암호화를 모두 사용하는 하이브리드 암호화 솔루션을 적용할 수도 있습니다.

**참고**  
Amazon RDS가 DB 인스턴스의 Oracle Wallet 및 TDE 마스터 키를 관리합니다. [`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>

TDE 옵션은 영구적이고 지속적입니다. TDE 옵션이 활성화된 옵션 그룹에 DB 인스턴스를 연결한 후에는 다음 작업을 수행할 수 없습니다.
+ 현재 연결된 옵션 그룹에서 `TDE` 옵션을 비활성화합니다.
+ DB 인스턴스를 `TDE` 옵션이 포함되지 않은 다른 옵션 그룹에 연결합니다.
+ `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>

DB 인스턴스가 `TDE` 옵션을 활성화한 옵션 그룹과 연결되어 있는지 확인할 수 있습니다. DB 인스턴스와 연동되어 있는 옵션 그룹은 RDS 콘솔, [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 명령 또는 API 작업 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html)를 사용하여 확인할 수 있습니다.

## TDE 옵션 추가
<a name="Appendix.Oracle.Options.AdvSecurity.Add"></a>

DB 인스턴스에 `TDE` 옵션을 추가하려면 다음 단계를 완료하세요.

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. **옵션 추가**를 선택합니다.
**중요**  
하나 이상의 DB 인스턴스에 현재 연결되어 있는 옵션 그룹에 **TDE** 옵션을 추가하면 모든 DB 인스턴스가 자동으로 다시 시작되는 동안 인스턴스가 잠시 중단됩니다.

   옵션 추가에 대한 자세한 내용은 [옵션 그룹에 옵션 추가](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption) 섹션을 참조하세요.

1. 옵션 그룹을 새 DB 인스턴스 또는 기존 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)를 참조하세요.

대상 LinuxmacOS, 또는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>

TDE 옵션을 DB 인스턴스에서 제거하거나 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)`를 지원합니다. Amazon RDS는 Oracle Data Pump에 대해 투명 암호화 모드 `(ENCRYPTION_MODE=TRANSPARENT)`를 지원하지 않습니다. 자세한 내용은 [Oracle Data Pump를 사용한 가져오기](Oracle.Procedural.Importing.DataPump.md) 섹션을 참조하세요.