이 페이지에서는 Cloud Key Management Service 키 버전을 영구 폐기하도록 예약하는 방법을 보여줍니다. Cloud KMS에서 데이터를 암호화, 복호화, 서명, 확인하는 데 사용하는 암호화 키 자료는 하나의 키 버전에 저장됩니다. 키에는 0개 이상의 키 버전이 있습니다. 키를 순환할 때는 새 키 버전을 생성하세요.
키 버전을 폐기하면 키 자료가 영구적으로 삭제됩니다. 키 버전을 폐기해도 키 이름 및 키 버전 번호와 같은 다른 세부정보는 삭제되지 않습니다. 키가 폐기되면 해당 키 버전으로 암호화된 데이터를 복호화할 수 없습니다.
키 폐기는 되돌릴 수 없으므로 Cloud KMS에서 키 버전을 즉시 폐기할 수 없습니다. 대신 키 버전 폐기를 예약합니다. 키 버전은 구성 가능한 시간 동안 폐기 예약됨 상태로 유지됩니다. 폐기 예약 기간 동안 키 버전을 복원하여 폐기를 취소할 수 있습니다.
기본 폐기 예약 기간은 30일입니다. 키 생성 중에 키에 커스텀 폐기 예약 기간을 설정할 수 있습니다. 조직에서는 조직 정책에 키당 최소 폐기 예약 기간 제약조건을 설정하여 최소 폐기 예약 기간을 적용할 수 있습니다.
Identity and Access Management(IAM)를 사용하여 키에 대한 액세스를 관리할 수도 있습니다. IAM 작업은 수초 범위 내에서 일관성을 갖습니다. 자세한 내용은 IAM 사용을 참조하세요.
또한 일시적으로 키 버전을 사용 중지할 수도 있습니다. 키를 안전하게 폐기할 수 있도록 키 버전의 폐기를 예약하기 전에 사용 중지하는 절차를 확립하는 것이 좋습니다. 조직 정책에 따라서는 키 버전 폐기를 예약하기 전에 사용 중지해야 할 수 있습니다. 조직 정책을 사용하여 키 버전 폐기를 제어하는 방법에 대한 자세한 내용은 키 버전 폐기 제어를 참조하세요.
이 문서의 나머지 부분에서는 비록 즉시 폐기는 아니지만 폐기를 위해 키를 예약하는 것을 키 폐기라고 지칭합니다.
시작하기 전에
위험 이해
키 버전 폐기는 영구적인 작업입니다. 계속 필요한 키 버전을 폐기하면 다음을 포함한 위험이 있습니다.
서비스 중단: 컨테이너 또는 인스턴스를 시작하는 데 필요한 키를 폐기하면 서비스 또는 애플리케이션을 사용할 수 없게 됩니다.
영구적인 데이터 손실: 데이터 암호화에 사용된 키를 폐기하면 데이터를 사용할 수 없게 됩니다. 폐기된 키로 암호화된 데이터는 암호화 파쇄로 간주됩니다. 경우에 따라 키를 폐기하면 암호화된 리소스가 영구적으로 삭제될 수 있습니다.
규제 또는 규정 준수 문제: 보관 기간이 완료되기 전에 보관 기간이 적용되는 데이터에 액세스하는 데 필요한 키를 폐기하면 규제 또는 규정 준수 요건을 위반할 수 있습니다.
필요한 역할
키 버전을 폐기하고 복원하는 데 필요한 권한을 얻으려면 관리자에게 키에 대한 Cloud KMS 관리자(roles/cloudkms.admin
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
키 버전이 사용 중인지 확인
키 버전을 폐기하기 전에 다음 단계를 완료하여 키 버전이 사용 중인지 확인합니다.
키의 키 사용 추적 세부정보를 확인합니다. 리소스가 폐기하려는 키 버전으로 보호되는 경우 다른 키 버전으로 다시 암호화합니다.
해당 키 버전을 사용할 가능성이 있는 모든 서비스나 애플리케이션의 로그를 사용 설정합니다.
해당 키가 포함된 Cloud KMS 프로젝트에서 로그를 사용 설정합니다.
키 버전을 사용 중지합니다. 키 버전을 사용 중지하면 해당 키 버전이 사용되지 않습니다. 키 버전을 사용 중지하면 해당 키 버전 사용 시도가 실패합니다.
사용 중지한 키 버전이 여전히 애플리케이션 또는 서비스에서 사용되지 않는지 확인할 때까지 로그를 모니터링합니다. 키 버전 액세스 실패를 나타내는 오류가 발생하면 다른 키 버전을 사용하도록 애플리케이션 또는 리소스를 구성하세요.
키 버전을 폐기하기 전 로그를 모니터링하는 데 걸리는 시간은 키 유형, 사용 패턴, 민감도 수준에 따라 다릅니다. 예를 들어 분기별로 실행되는 프로세스에서 사용되는 키 버전을 폐기하기 전에 이 프로세스가 성공적으로 완료될 때까지 키 버전을 사용 중지된 상태로 유지합니다.
키 사용을 관련 규정 준수 요구사항을 기준으로 확인합니다. 예를 들어 키 버전 및 이러한 버전으로 암호화된 데이터는 데이터 보관 기간이 적용될 수 있습니다.
이 단계는 키가 여전히 필요한지 여부를 식별하는 데 도움이 됩니다. 그러나 키 버전이 더 이상 필요하지 않을 것이라고 보장할 수는 없습니다. 조직에서는 키 버전 폐기가 부정적인 효과를 일으키지 않도록 절차와 가이드라인을 구현해야 합니다.
키 버전 폐기
사용 또는 사용 중지된 키 버전을 폐기할 수 있습니다.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
폐기 예약할 키 버전 옆의 체크박스를 선택합니다.
헤더에서 폐기를 클릭합니다.
확인 대화상자에서 키 이름을 입력한 다음 폐기 예약을 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys versions destroy KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION
다음을 바꿉니다.
KEY_VERSION
: 폐기하려는 키 버전의 버전 번호입니다.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.destroy 메서드를 호출하여 키 버전을 폐기합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION:destroy" \ --request "POST" \ --header "authorization: Bearer TOKEN"
키 버전을 폐기할 수 없는 경우 조직에서 키 버전을 폐기하기 전에 사용 중지해야 할 수 있습니다. 키 버전을 사용 중지한 후에 폐기해 보세요.
폐기 요청을 제출하면 키 버전 상태는 폐기 예약됨 상태가 됩니다. 키의 구성된 폐기 예약 기간이 지나면 키 버전의 상태가 폐기됨 상태가 됩니다. 즉, 활성 시스템에서 키 자료의 논리적 삭제가 시작되었으며 고객이 키 자료를 복구할 수 없습니다. 키 자료는 예약된 삭제 시점으로부터 최대 45일까지 Google 시스템에 유지될 수 있습니다.
키 버전 폐기를 예약했을 때 알림을 받으려면 Cloud KMS에서 Cloud Monitoring 사용을 참조하세요.
폐기된 키 버전은 청구 대상 리소스가 아닙니다.
외부 키 폐기
Cloud EKM 키와 외부 키 간의 연결을 영구 삭제하려면 키 버전을 폐기하면 됩니다. 폐기 예약 기간이 지나면 키가 폐기됩니다. 키 버전이 폐기되면 Cloud EKM 키 버전으로 암호화된 데이터를 더 이상 암호화하거나 복호화할 수 없습니다.
Cloud KMS에서 수동으로 관리되는 키 버전을 폐기해도 외부 키 관리자에서 키가 수정되지 않습니다. 먼저 Google Cloud에서 키 또는 키 버전을 폐기하는 것이 좋습니다. Cloud EKM 키 버전이 폐기되면 외부 키 관리자에서 키 자료를 폐기할 수 있습니다.
Cloud KMS에서 조정된 외부 키 버전을 폐기하면 먼저 Google Cloud에서 키 버전을 폐기한 다음 EKM에 폐기 요청을 전송하여 외부 키 자료를 폐기합니다.
키 버전 복원
키 버전 상태가 폐기되도록 예약된 기간 동안에는 복원 요청을 제출하여 키 버전을 복원할 수 있습니다.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키 버전을 복원할 키가 포함된 키링의 이름을 클릭합니다.
복원할 키 버전의 키를 클릭합니다.
복원하려는 키 버전 옆의 체크박스를 선택합니다.
헤더에서 복원을 클릭합니다.
확인 대화상자에서 복원을 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys versions restore key-version \ --key key \ --keyring key-ring \ --location location
key-version을 복원할 키 버전으로 바꿉니다. key를 키 이름으로 바꿉니다. 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.restore 메서드를 호출하여 키 버전을 복원합니다.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys/crypto-key-id/cryptoKeyVersions/version-id:restore" \ --request "POST" \ --header "authorization: Bearer token"
복원 요청이 완료되면 키 버전의 상태가 사용 중지됨으로 바뀝니다. 키를 사용하려면 먼저 키를 사용 설정해야 합니다.
필수 IAM 권한
키 버전을 폐기하려면 호출자는 키, 키링 또는 프로젝트, 폴더 또는 조직에 대한 cloudkms.cryptoKeyVersions.destroy
IAM 권한이 필요합니다.
키 버전을 복원하려면 호출자에게 cloudkms.cryptoKeyVersions.restore
권한이 필요합니다.
이 두 권한은 모두 Cloud KMS 관리자 역할(roles/cloudkms.admin
)에 부여됩니다.
삭제 타임라인
Cloud KMS는 예약된 삭제 시간에서 45일 이내에 모든 Google 인프라에서 고객 키 자료를 삭제합니다. 여기에는 활성 시스템 및 데이터 센터 백업의 데이터 삭제도 포함됩니다. 다른 고객 데이터에는 표준 Google Cloud 삭제 타임라인인 180일이 적용됩니다.