이 가이드에서는 pg_dump 및 pg_restore를 사용하여
투명 데이터 암호화
(TDE)가 사용 설정된 클러스터와 암호화되지 않은 클러스터 간에 데이터를 이전하는 방법을 설명합니다.
TDE에서 암호화되지 않은 클러스터로의 이전과 그 반대의 이전 모두 지원되며 표준 PostgreSQL 논리 백업 도구를 사용합니다.
pg_dump를 사용하는 논리적 이전은 소스에서 암호화된 데이터를 즉시 디코딩하고 암호화되지 않은 SQL 문으로 덤프합니다. 데이터를 복원하면 대상 클러스터가 자체 암호화 설정에 따라 데이터를 씁니다.
TDE가 사용 설정된 경우 대상 클러스터는 데이터를 암호화하고 TDE가 사용 중지된 경우 일반 텍스트로 씁니다.
시작하기 전에
- AlloyDB Omni를 설치했는지 확인합니다. 자세한 내용은 다음 컨테이너를 사용하여 AlloyDB Omni 설치를 참조하세요.
- TDE가 사용 설정된 데이터베이스 서버로 이전하는 경우 키 관리 제공업체를 설정했는지 확인합니다. 자세한 내용은 TDE가 사용 설정된 클러스터 만들기를 참조하세요.
TDE가 사용 설정된 데이터베이스를 TDE가 사용 중지된 데이터베이스로 이전
TDE가 사용 설정된 데이터베이스 서버에서 호스트의 파일로 데이터베이스를 덤프합니다.
Docker
docker exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sqlPodman
podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sqlDocker를 사용하여 AlloyDB Omni 설치의 안내에 따라 TDE가 사용 중지된 AlloyDB Omni 서버를 시작합니다.
덤프 파일을 암호화되지 않은 데이터베이스 서버로 복원합니다.
Docker
docker exec -i NON_TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" docker exec -i NON_TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sqlPodman
podman exec -i NON_TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" podman exec -i NON_TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sql
TDE가 사용 중지된 데이터베이스를 TDE가 사용 설정된 데이터베이스로 이전
pg_dump를 사용하여 암호화되지 않은 데이터베이스 서버에서 데이터베이스를 덤프합니다.Docker
docker exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sqlPodman
podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sqlTDE가 사용 설정된 클러스터 만들기의 안내에 따라 TDE가 사용 설정된 AlloyDB Omni 서버를 시작합니다.
TDE가 사용 설정된 데이터베이스 서버로 복원합니다. 데이터가 작성될 때 투명하게 암호화됩니다.
Docker
docker exec -i TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" docker exec -i TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sqlPodman
podman exec -i TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" podman exec -i TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sql