이 페이지에서는 자동 또는 수동으로 키를 순환하는 방법을 보여줍니다. 일반적인 키 순환에 대한 자세한 내용은 키 순환을 참조하세요.
필요한 역할
키를 순환하는 데 필요한 권한을 얻으려면 관리자에게 키에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- 
  
  
    
      Cloud KMS 관리자(roles/cloudkms.admin)
- 
            데이터 다시 암호화:
              
  
  
    
      Cloud KMS CryptoKey 암호화/복호화  (roles/cloudkms.cryptoKeyEncrypterDecrypter)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 키를 순환하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
키를 순환하려면 다음 권한이 필요합니다.
- 
                기본 키 버전 변경: cloudkms.cryptoKeys.update
- 
                자동 순환 변경 또는 사용 중지: cloudkms.cryptoKeys.update
- 
                새 키 버전 만들기: cloudkms.cryptoKeyVersions.create
- 
                이전 키 버전 사용 중지: cloudkms.cryptoKeyVersions.update
- 
                데이터 다시 암호화: - 
                      cloudkms.cryptoKeyVersions.useToDecrypt
- 
                      cloudkms.cryptoKeyVersions.useToEncrypt
 
- 
                      
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
이러한 모든 권한이 포함된 커스텀 역할을 가진 단일 사용자는 스스로 키를 순환하고 데이터를 다시 암호화할 수 있습니다. Cloud KMS 관리자 역할 및 Cloud KMS CryptoKey 암호화/복호화 역할의 사용자는 함께 협력해서 키를 순환하고 데이터를 다시 암호화할 수 있습니다. 역할을 할당할 때 최소 권한의 원칙을 따릅니다. 자세한 내용은 권한 및 역할을 참조하세요.
키를 순환해도 이전 키 버전으로 암호화된 데이터는 자동으로 다시 암호화되지 않습니다. 자세히 알아보려면 복호화 및 다시 암호화를 참조하세요. 키를 순환해도 기존 키 버전이 자동으로 사용 중지되거나 폐기되지는 않습니다. 더 이상 필요하지 않은 키 버전을 폐기하면 비용을 절감할 수 있습니다.
자동 순환 구성
새 키를 만들 때 자동 순환을 구성하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔을 사용하여 키를 만들면 Cloud KMS가 순환 기간과 다음 순환 시간을 자동으로 설정합니다. 기본값을 사용하도록 선택하거나 다른 값을 지정할 수 있습니다.
다른 순환 주기와 시작 시간을 지정하려면, 키를 만들 때 만들기 버튼을 클릭하기 전에 다음을 수행합니다.
- 키 순환 기간에서 옵션을 선택합니다. 
- 시작일에서 첫 번째 자동 순환을 실행할 날짜를 선택합니다. 시작일을 기본값으로 설정하여 키를 생성한 시점부터 첫 번째 자동 순환 단일 키 순환 기간을 시작할 수 있습니다. 
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --purpose "encryption" \
    --rotation-period ROTATION_PERIOD \
    --next-rotation-time NEXT_ROTATION_TIME
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- ROTATION_PERIOD: 키를 순환하는 간격입니다(예:- 30d는 키를 30일마다 순환). 순환 기간은 최소 1일에서 최대 100년이어야 합니다. 자세한 내용은 CryptoKey.rotationPeriod를 참조하세요.
- NEXT_ROTATION_TIME: 첫 번째 순환을 완료할 타임스탬프입니다(예:- 2023-01-01T01:02:03). 명령어를 실행하는 시점으로부터 하나의 순환 기간 동안 첫 번째 순환을 예약하려면- --next-rotation-time을 생략할 수 있습니다. 자세한 내용은- CryptoKey.nextRotationTime을 참조하세요.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help 플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK를 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
키를 만들려면 CryptoKey.create 메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
다음을 바꿉니다.
- PURPOSE: 키의 용도입니다.
- ROTATION_PERIOD: 키를 순환하는 간격입니다(예:- 30d는 키를 30일마다 순환). 순환 기간은 최소 1일에서 최대 100년이어야 합니다. 자세한 내용은 CryptoKey.rotationPeriod를 참조하세요.
- NEXT_ROTATION_TIME: 첫 번째 순환을 완료할 타임스탬프입니다(예:- 2023-01-01T01:02:03). 자세한 내용은- CryptoKey.nextRotationTime를 참조하세요.
기존 키에서 자동 순환을 구성하려면 다음 안내를 따르세요.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 순환 일정을 추가할 키가 포함 된 키링의 이름을 클릭합니다. 
- 순환 일정을 추가할 키를 클릭합니다. 
- 헤더에서 순환 주기 수정을 클릭합니다. 
- 프롬프트에서 순환 주기 및 시작일 입력란에 새 값을 선택합니다. 
- 프롬프트에서 저장을 클릭합니다. 
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys update KEY_NAME \
    --location LOCATION \
    --keyring KEY_RING \
    --rotation-period ROTATION_PERIOD \
    --next-rotation-time NEXT_ROTATION_TIME
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- ROTATION_PERIOD: 키를 순환하는 간격입니다(예:- 30d는 키를 30일마다 순환). 순환 기간은 최소 1일에서 최대 100년이어야 합니다. 자세한 내용은 CryptoKey.rotationPeriod를 참조하세요.
- NEXT_ROTATION_TIME: 다음 순환을 완료할 타임스탬프입니다(예:- 2023-01-01T01:02:03). 명령어를 실행하는 시점으로부터 하나의 순환 기간 동안 다음 순환을 예약하려면- --next-rotation-time을 생략할 수 있습니다. 자세한 내용은- CryptoKey.nextRotationTime을 참조하세요.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help 플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK를 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
키를 업데이트하려면 CryptoKey.patch 메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?updateMask=rotationPeriod,nextRotationTime" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
다음을 바꿉니다.
- ROTATION_PERIOD: 키를 순환하는 간격입니다(예:- 30d는 키를 30일마다 순환). 순환 기간은 최소 1일에서 최대 100년이어야 합니다. 자세한 내용은 CryptoKey.rotationPeriod를 참조하세요.
- NEXT_ROTATION_TIME: 다음 순환을 완료할 타임스탬프입니다(예:- 2023-01-01T01:02:03). 자세한 내용은- CryptoKey.nextRotationTime를 참조하세요.
수동으로 키 순환
먼저 새 키 버전을 만듭니다.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 새 키 버전을 만들 키가 포함된 키링의 이름을 클릭합니다. 
- 새 키 버전을 만들 키를 클릭합니다. 
- 헤더에서 순환을 클릭합니다. 
- 표시되는 메시지에서 순환을 클릭하여 확인합니다. 
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys versions create \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
키 버전은 번호가 순차적으로 지정됩니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help 플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK를 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
키를 수동으로 순환하려면 먼저 CryptoKeyVersions.create 메서드를 호출하여 새 키 버전을 만듭니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions" \
    --request "POST" \
    --header "authorization: Bearer TOKEN"
이 명령어는 새 키 버전을 생성하지만, 기본 버전으로 설정되지는 않습니다.
새 키 버전을 기본 버전으로 설정하려면 기존 버전을 기본 키 버전으로 설정을 참조하세요.
필요한 경우 이전 키 버전을 사용하여 암호화된 데이터를 다시 암호화합니다.
기존 버전을 기본 키 버전으로 설정
다른 키 버전을 키의 기본 버전으로 설정하려면 새 기본 버전 정보로 키를 업데이트합니다. 기본 버전으로 구성하려면 먼저 키 버전을 사용 설정해야 합니다.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 기본 버전을 업데이트할 키가 포함된 키링의 이름을 클릭합니다. 
- 기본 버전을 업데이트할 키를 클릭합니다. 
- 기본값으로 지정하려는 키 버전에 해당하는 행에서 더보기를 클릭합니다. 
- 메뉴에서 기본 버전으로 설정을 클릭합니다. 
- 확인 대화상자가 표시되면 기본으로 설정을 클릭합니다. 
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys update KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --primary-version KEY_VERSION
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- KEY_VERSION: 새 기본 키 버전의 버전 번호입니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help 플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK를 설치하세요.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
CryptoKey.updatePrimaryVersion 메서드를 호출하여 기본 키 버전을 변경합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME:updatePrimaryVersion" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"cryptoKeyVersionId": "KEY_VERSION"}'
다음을 바꿉니다.
- PROJECT_ID: 키링이 포함된 프로젝트의 ID입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- KEY_NAME: 키의 이름입니다.
- KEY_VERSION: 새 기본 키 버전의 버전 번호입니다.
기본 키 버전을 변경하면 일반적으로 변경사항이 1분 이내에 일관성을 갖습니다. 하지만 예외적인 경우에 이 변경사항이 전파되는 데 최대 3시간이 걸릴 수 있습니다. 이 시간 중에는 이전 기본 버전이 데이터를 암호화하는 데 사용될 수 있습니다. 자세한 내용은 Cloud KMS 리소스 일관성을 참조하세요.
자동 순환 사용 중지
키 자동 순환을 사용 중지하려면 키의 순환 일정을 삭제합니다.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 순환 일정을 삭제할 키가 포함 된 키링의 이름을 클릭합니다. 
- 순환 일정을 삭제할 키를 클릭합니다. 
- 헤더에서 순환 주기 수정을 클릭합니다. 
- 프롬프트에서 순환 주기 필드를 클릭하고 사용 안함(수동 순환)을 선택합니다. 
- 프롬프트에서 저장을 클릭합니다. 
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys update KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --remove-rotation-schedule
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help 플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK를 설치하세요.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
키를 업데이트하려면 CryptoKey.patch 메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?updateMask=rotationPeriod,nextRotationTime" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"rotationPeriod": null, "nextRotationTime": null}'
rotationPeriod 및 nextRotationTime에 대한 자세한 내용은 keyRings.cryptoKeys를 참조하세요.
  
외부 키 순환
조정된 외부 키 순환
대칭 좌표 외부 키의 자동 순환을 구성할 수 있습니다. 대칭 또는 비대칭 좌표 외부 키의 새 키 버전을 수동으로 만들 수도 있습니다.
새 키 버전을 순환하거나 만들면 해당 키로 보호되는 모든 새로 생성되는 데이터가 새로운 키 버전을 사용해서 암호화됩니다. 이전 키 버전으로 보호되는 데이터는 다시 암호화되지 않습니다. 따라서 외부 키 관리자가 이전 키 버전의 키 자료를 계속 사용할 수 있게 해야 합니다.
조정된 외부 키의 새 키 버전을 만들려면 다음 단계를 완료하세요.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 키 링을 선택한 다음 키를 선택합니다. 
- 버전 만들기를 클릭합니다. Cloud KMS와 EKM 모두에서 새 키 버전이 생성된다는 메시지가 표시됩니다. 키 경로 또는 키 URI 필드가 표시되면 선택한 키는 조정된 외부 키가 아닙니다. 
- 새 키 버전을 만들 것인지 확인하려면 버전 만들기를 클릭합니다. 
새 키 버전이 생성 대기 중 상태로 표시됩니다. 대칭 키의 경우 수동으로 생성된 키 버전이 기본 키 버전으로 자동 설정되지 않습니다. 새 키 버전을 기본 버전으로 설정할 수 있습니다.
gcloud CLI
새 대칭 키 버전을 만들고 기본 키 버전으로 설정하려면 kms keys versions create 명령어를 --primary 플래그와 함께 사용합니다.
gcloud kms keys versions create \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --primary
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
새로운 비대칭 키 버전을 만들거나 기본 키 버전이 아닌 새 대칭 키 버전을 만들려면 kms keys versions
create 명령어를 사용합니다.
gcloud kms keys versions create \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
VPC 키를 통해 수동으로 관리되는 Cloud EKM 순환
먼저 외부 키 관리자에서 외부 키 자료를 순환합니다. 그 결과 새 키 경로가 발생하면 새 Cloud EKM 키 버전을 순환하거나 새 키 경로로 만들어야 합니다. 대칭 암호화 키의 경우 Cloud EKM 키를 순환하고 외부 키 관리자에서 새 키 경로를 지정합니다. 비대칭 키의 경우 새 키 버전을 만들고 새 키 경로를 지정합니다.
새 키 버전을 순환하거나 만들면 해당 키로 보호되는 모든 새로 생성되는 데이터가 새로운 키 버전을 사용해서 암호화됩니다. 이전 키 버전으로 보호되는 데이터는 다시 암호화되지 않습니다. 따라서 외부 키 관리자가 이전 키 버전의 키 자료를 계속 사용할 수 있게 해야 합니다.
외부 키 관리 파트너 시스템의 키 자료는 변경되지 않았으나 키 경로가 변경된 경우에는 키를 순환할 필요 없이 키의 외부 경로를 업데이트하면 됩니다.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 키 링을 선택한 다음 키를 선택합니다. 
- 키 순환을 클릭합니다. 
- 키 경로에 새 버전의 키 경로를 입력합니다. 
- 키 순환을 클릭하여 확인합니다. 
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
새 대칭 키 버전을 만들고 기본 키 버전으로 설정하려면 kms keys versions create 명령어를 --primary 플래그와 함께 사용합니다.
gcloud kms keys versions create \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --ekm-connection-key-path EXTERNAL_KEY_PATH \
    --primary
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- EXTERNAL_KEY_PATH: 새 외부 키 버전의 경로입니다.
새로운 비대칭 키 버전을 만들거나 기본 키 버전이 아닌 새 대칭 키 버전을 만들려면 kms keys versions
create 명령어를 사용합니다.
gcloud kms keys versions create \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --ekm-connection-key-path EXTERNAL_KEY_PATH
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- EXTERNAL_KEY_PATH: 새 외부 키 버전의 경로입니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help 플래그와 함께 명령어를 실행하세요.
키 버전이 성공적으로 생성되면 다른 Cloud KMS 키 버전을 사용할 때처럼 사용하면 됩니다.
인터넷 키를 통해 수동으로 관리되는 Cloud EKM 순환
먼저 외부 키 관리자에서 외부 키 자료를 순환합니다. 그 결과 새 URI가 발생하면 새 Cloud EKM 키 버전을 순환하거나 새 URI로 만들어야 합니다. 대칭 암호화 키의 경우 Cloud EKM 키를 순환하고 외부 키 관리자에서 새 키 URI를 지정합니다. 비대칭 키의 경우 새 키 버전을 만들고 새 키 URI를 지정합니다.
새 키 버전을 순환하거나 만들면 해당 키로 보호되는 모든 새로 생성되는 데이터가 새로운 키 버전을 사용해서 암호화됩니다. 이전 키 버전으로 보호되는 데이터는 다시 암호화되지 않습니다. 따라서 외부 키 관리자가 이전 키 버전의 키 자료를 계속 사용할 수 있게 해야 합니다.
외부 키 관리 파트너 시스템의 키 자료는 변경되지 않지만 URI가 변경되면 키를 순환하지 않고도 키의 외부 URI를 업데이트할 수 있습니다.
콘솔
- Google Cloud 콘솔에서 키 관리 페이지로 이동합니다. 
- 키 링을 선택한 다음 키를 선택합니다. 
- 대칭 키의 경우 키 순환을 선택하거나 비대칭 키의 경우 버전 만들기를 선택하세요. 
- 새 키 URI를 입력한 후 대칭 키에 대해 키 순환을 선택하고 비대칭 키에 대해서는 버전 만들기를 선택합니다. 
새 키 버전이 기본 버전이 됩니다.
gcloud CLI
새 대칭 키 버전을 만들고 기본 키 버전으로 설정하려면 kms keys versions create 명령어를 --primary 플래그와 함께 사용합니다.
gcloud kms keys versions create \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --external-key-uri EXTERNAL_KEY_URI \ --primary
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- EXTERNAL_KEY_URI: 새 외부 키 버전의 키 URI입니다.
새로운 비대칭 키 버전을 만들거나 기본 키 버전이 아닌 새 대칭 키 버전을 만들려면 kms keys versions
create 명령어를 사용합니다.
gcloud kms keys versions create \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --external-key-uri EXTERNAL_KEY_URI
다음을 바꿉니다.
- KEY_NAME: 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- LOCATION: 키링의 Cloud KMS 위치입니다.
- EXTERNAL_KEY_URI: 새 외부 키 버전의 키 URI입니다.
다음 단계
- 키를 순환한 후에는 해당 키로 암호화된 데이터를 다시 암호화할 수 있습니다.
- 데이터를 다시 암호화한 후 키 버전이 사용 중인지 확인할 수 있습니다.
- 키 버전이 더 이상 사용되지 않는지 확인한 후 키 버전을 폐기할 수 있습니다.