이 페이지에서는 Database Migration Service 이전 작업에서 고객 관리 암호화 키 (CMEK)가 작동하는 방식을 설명합니다.
기본적으로 Database Migration Service (Oracle에서 PostgreSQL용 AlloyDB로)는 고객 저장 콘텐츠를 암호화합니다. Database Migration Service (Oracle에서 PostgreSQL용 AlloyDB로)는 사용자의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 부릅니다.
암호화 키를 제어하려면 데이터베이스 이전 서비스(Oracle에서 PostgreSQL용 AlloyDB로)를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키 (CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 키 사용을 추적하고, 감사 로그를 보고, 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 Database Migration Service (Oracle에서 PostgreSQL용 AlloyDB로) 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.
Database Migration Service에서 CMEK를 지원하는 리전
CMEK는 모든 Database Migration Service 위치에서 사용할 수 있습니다.
Cloud KMS Autokey를 사용하는 CMEK
CMEK를 수동으로 만들어 Database Migration Service (Oracle에서 PostgreSQL용 AlloyDB로) 리소스를 보호하거나 Cloud KMS Autokey를 사용할 수 있습니다. Autokey를 사용하면 Database Migration Service (Oracle에서 PostgreSQL용 AlloyDB로)에서 리소스를 만들거나 업데이트할 때 필요에 따라 키링과 키가 생성됩니다. 암호화 및 복호화 작업에 키를 사용하는 서비스 에이전트가 없으면 생성되며, 필요한 Identity and Access Management(IAM) 역할이 부여됩니다. 자세한 내용은 Autokey 개요를 참조하세요.
서비스 계정 이해
Database Migration Service 마이그레이션 작업에 CMEK가 사용 설정된 경우 서비스 계정을 사용하여 Cloud Key Management Service에서 키 액세스를 요청해야 합니다.
프로젝트에서 CMEK를 사용하려면 서비스 계정이 있어야 하며 키에 서비스 계정에 대한 액세스 권한을 부여해야 합니다. 서비스 계정은 프로젝트 내에 있어야 합니다. 모든 리전에서 서비스 계정을 볼 수 있습니다.
키 이해
Cloud Key Management Service에서 위치가 설정된 암호화 키를 사용하여 키링을 만들어야 합니다. Database Migration Service에서 새 마이그레이션 작업을 만들 때 이 키를 선택하여 마이그레이션 작업을 암호화합니다.
CMEK를 사용하는 새 마이그레이션 작업을 만들 때는 키 ID와 키 리전을 알아야 합니다. 대상 데이터베이스는 이전 작업과 연결된 CMEK와 동일한 리전에 있어야 합니다. 키와 대상 데이터베이스 모두에 대해 하나의 프로젝트를 만들거나 각각에 대해 서로 다른 프로젝트를 만들 수 있습니다.
CMEK는 다음 형식을 사용합니다.
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
CMEK로 암호화된 데이터에 영구적으로 액세스할 수 없도록 하려면 어떻게 해야 하나요?
CMEK로 암호화된 데이터를 영구적으로 폐기하려는 경우가 있을 수 있습니다. 이렇게 하려면 CMEK 버전을 삭제합니다. 키링이나 키를 삭제할 수 없지만 키의 키 버전을 삭제할 수 있습니다.
제한사항
CMEK를 사용할 때는 다음 제한사항이 적용됩니다.
실행 중인 이전 작업에서는 CMEK를 업데이트할 수 없습니다.
CMEK를 사용하여 소스 데이터베이스의 데이터를 암호화할 수는 있지만, 이러한 키를 사용하여 마이그레이션 작업 ID, 소스 데이터베이스의 IP 주소와 같은 마이그레이션 작업 메타데이터를 암호화할 수는 없습니다.
CMEK 사용
다음 섹션에서는 다음에 대해 CMEK를 설정하는 방법을 설명합니다.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Google Cloud CLI를 설치하고 초기화합니다.
- 사용자 계정에 데이터베이스 마이그레이션 관리자 역할이 할당되었는지 확인합니다.
-
Enable the Cloud Key Management Service API.
- Database Migration Service API를 사용 설정합니다.
CMEK를 사용하여 Database Migration Service에서 마이그레이션 작업을 만드는 워크플로
gcloud CLI 및 API 사용자만 해당: CMEK가 필요한 각 프로젝트에 서비스 계정이 있는지 확인합니다. 자세한 내용은 서비스 계정 만들기를 참고하세요.
키링과 키를 만들고 각 키의 위치를 설정합니다. 위치는 Google Cloud 리전입니다.
키에 대한 키 ID (
KMS_KEY_ID
) 및 위치와 키링의 ID (KMS_KEYRING_ID
)를 복사하거나 기록해 둡니다. 서비스 계정에 키 액세스 권한을 부여할 때 이 정보가 필요합니다.프로젝트로 이동하여 Database Migration Service에서 마이그레이션 작업을 만들고 고급 암호화 옵션 섹션에서 CMEK를 사용합니다.
이제 Database Migration Service의 마이그레이션 작업이 CMEK로 사용 설정되었습니다.
서비스 계정 만들기
CMEK가 필요한 각 프로젝트에 서비스 계정을 만들어야 합니다. 사용자가 서비스 계정을 관리할 수 있도록 다음 역할 중 하나를 부여합니다.
- 서비스 계정 사용자(
roles/iam.serviceAccountUser
): 서비스 계정을 나열하고, 서비스 계정 세부정보를 가져오고, 서비스 계정을 가장할 수 있는 권한을 포함합니다. - 서비스 계정 관리자(
roles/iam.serviceAccountAdmin
): 서비스 계정을 나열하고 서비스 계정 세부정보를 가져올 수 있는 권한을 포함합니다. 서비스 계정을 생성, 업데이트, 삭제하고 서비스 계정에서 Database Migration Service (Oracle에서 PostgreSQL용 AlloyDB로) 정책을 보거나 변경할 수 있는 권한도 포함됩니다.
gcloud CLI
명령어만 사용하여 CMEK에 필요한 서비스 계정 유형을 만들 수 있습니다.
gcloud CLI
로 서비스 계정을 만들려면 다음 명령어를 실행합니다.
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
이전 명령어는 서비스 계정 이름을 반환합니다. 이 서비스 계정 이름은 서비스 계정에 키 액세스 권한 부여의 절차를 진행하면서 사용합니다.
키 만들기
Database Migration Service의 이전 작업과 동일한 Google Cloud 프로젝트 또는 별도의 사용자 프로젝트에서 키를 만들 수 있습니다. Cloud KMS 키링 위치는 이전 작업과 연결된 대상 데이터베이스의 리전과 일치해야 합니다. 멀티 리전 또는 전역 리전 키는 지원되지 않습니다. 리전이 일치하지 않으면 마이그레이션 작업을 만들 수 없습니다.
Cloud KMS 키를 만들려면 다음 안내를 따르세요.
콘솔
- Google Cloud 콘솔에서 암호화 키 페이지로 이동합니다.
- 키링 만들기를 클릭합니다.
- 키링 이름을 추가합니다. 서비스 계정에 키 액세스 권한을 부여할 때 필요하므로 이 이름을 기록해 둡니다.
- 키링 위치를 추가합니다.
- 만들기를 클릭합니다. 키 만들기 페이지가 열립니다.
- 키 이름을 추가합니다.
- 용도를 선택합니다(대칭 또는 비대칭).
- 순환 기간과 시작 날짜를 선택합니다.
- 만들기를 클릭합니다.
- 키 표에서 마지막 열에 있는 3개의 점을 클릭하고 리소스 ID 복사를 선택하거나 기록해 둡니다. 이는
KMS_KEY_ID
이며 서비스 계정에 키 액세스 권한을 부여할 때KMS_KEY_ID
가 필요합니다.
gcloud CLI
- 새 키링을 만듭니다.
서비스 계정에 키 액세스 권한을 부여할 때 필요하므로 이 이름을 기록해 둡니다.gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- 키링에 키를 만듭니다.
서비스 계정에 키 액세스 권한을 부여할 때 필요하므로 이 이름을 기록해 둡니다.gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
서비스 계정에 키에 대한 액세스 권한 부여
이 절차는 gcloud CLI
또는 API를 사용하는 경우에만 수행하면 됩니다.
서비스 계정에 액세스 권한을 부여하려면 다음 코드를 사용하세요.
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
CMEK를 사용하여 Database Migration Service에서 마이그레이션 작업 만들기
Database Migration Service에서 마이그레이션 작업을 만드는 과정에서 CMEK를 사용하여 데이터 암호화를 관리할 수 있습니다.
키 버전 중지 및 다시 사용 설정
다음 주제를 참조하세요.