Cloud KMS 리소스 삭제

이 문서에서는 Cloud Key Management Service 키와 키 버전을 영구적으로 삭제하는 방법을 보여줍니다. 이 작업은 되돌릴 수 없습니다.

Cloud KMS에서 삭제와 삭제는 서로 다른 작업입니다.

  • 폐기: 지정된 폐기 기간이 지난 후 기본 키 자료를 되돌릴 수 없을 정도로 폐기하는 것을 포함하여 키 버전을 영구적으로 사용 중지합니다. DESTROYED 상태의 키 버전은 암호화 작업에 사용할 수 없으며 더 이상 청구되지 않습니다. 데이터 암호화에 사용된 키 버전을 폐기하여 영구적으로 복구할 수 없도록 하려는 데이터를 암호화 삭제할 수 있습니다. 삭제된 키 버전은 Cloud KMS 리소스 목록에 계속 포함됩니다.

  • 삭제: Google Cloud 콘솔, Google Cloud CLI, Cloud Key Management Service API, 클라이언트 라이브러리의 Cloud KMS 리소스 목록에서 키 또는 키 버전을 삭제합니다. 더 이상 활성 상태가 아닌 키 또는 키 버전이 많은 프로젝트의 경우 삭제하면 검색 및 목록 작업이 간소화됩니다. 삭제된 CryptoKey 이름은 재사용할 수 없습니다. retiredResources.list 메서드를 사용하여 재사용할 수 없는 삭제된 CryptoKey 이름 목록을 볼 수 있습니다.

시작하기 전에

Cloud KMS 리소스를 삭제하고 보는 데 필요한 권한을 얻으려면 관리자에게 키에 대한 Cloud KMS 관리자 (roles/cloudkms.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 Cloud KMS 리소스를 삭제하고 보는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

Cloud KMS 리소스를 삭제하고 보려면 다음 권한이 필요합니다.

  • 키 버전을 삭제하려면 다음 안내를 따르세요. cloudkms.cryptoKeyVersions.delete
  • 키를 삭제하려면 다음 단계를 따르세요. cloudkms.cryptoKeys.delete
  • 삭제된 리소스를 보려면 다음 단계를 따르세요.
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

키 버전 삭제

키 버전이 DESTROYED, IMPORT_FAILED 또는 GENERATION_FAILED 상태인 경우 삭제할 수 있습니다. 키 버전을 가져온 경우 가져오기에 실패한 경우에만 삭제할 수 있습니다.

키 버전을 영구적으로 삭제하려면 다음 단계를 따르세요.

gcloud

키 버전을 삭제하려면 다음 명령어를 실행합니다.

gcloud kms keys versions delete KEY_VERSION \
    --location=LOCATION \
    --keyring=KEY_RING \
    --key=KEY_NAME

다음을 바꿉니다.

  • KEY_VERSION: 영구적으로 삭제하려는 키 버전의 번호입니다. 표시된 키 버전은 DESTROYED, IMPORT_FAILED 또는 GENERATION_FAILED 상태여야 합니다.
  • LOCATION: 키링의 Cloud KMS 위치입니다.
  • KEY_RING: 키가 포함된 키링의 이름입니다.
  • KEY_NAME: 영구적으로 삭제하려는 키 버전이 포함된 키의 이름입니다.

REST

  1. 키 버전을 삭제하려면 cryptoKeyVersions.delete 메서드를 호출합니다. 이 메서드는 키 버전이 삭제되었는지 확인하기 위해 폴링할 수 있는 장기 실행 작업을 반환합니다.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    다음을 바꿉니다.

    • PROJECT_ID: 키링이 포함된 프로젝트의 ID입니다.
    • LOCATION: 키링의 Cloud KMS 위치입니다.
    • KEY_RING: 키가 포함된 키링의 이름입니다.
    • KEY_NAME: 영구적으로 삭제하려는 키 버전이 포함된 키의 이름입니다.
    • KEY_VERSION: 영구적으로 삭제하려는 키 버전의 번호입니다. 표시된 키 버전은 DESTROYED, IMPORT_FAILED 또는 GENERATION_FAILED 상태여야 합니다.

    명령어의 출력은 Operation를 반환합니다. 다음 단계에는 작업의 name가 필요합니다.

  2. 키 버전이 삭제되었는지 확인하려면 operations.get 메서드를 호출하면 됩니다.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    다음을 바꿉니다.

    • PROJECT_ID: 키링이 포함된 프로젝트의 ID입니다.
    • LOCATION: 키링의 Cloud KMS 위치입니다.
    • OPERATION_NAME: 이전 메서드에서 반환된 작업의 이름입니다.

    이 메서드의 출력에 donetrue로 표시되면 작업이 완료된 것입니다. error가 표시되지 않으면 키 버전이 영구적으로 삭제된 것입니다.

키 삭제

다음 조건을 충족하는 경우 키를 삭제할 수 있습니다.

  • 키에 아직 삭제되지 않은 키 버전이 포함되어 있지 않습니다.
  • 키에 자동 키 순환이 예약되어 있지 않습니다.
  • 키가 Cloud KMS Autokey로 생성되지 않았습니다.

키를 영구적으로 삭제하려면 다음 단계를 따르세요.

gcloud

키를 삭제하려면 다음 명령어를 실행합니다.

gcloud kms keys delete KEY_NAME \
    --location=LOCATION \
    --keyring=KEY_RING

다음을 바꿉니다.

  • KEY_NAME: 영구적으로 삭제하려는 키의 이름입니다. 키에 아직 삭제되지 않은 키 버전이 포함되어 있으면 안 되며, Autokey로 생성된 키여도 안 됩니다.
  • LOCATION: 키링의 Cloud KMS 위치입니다.
  • KEY_RING: 키가 포함된 키링의 이름입니다.

REST

  1. 키를 삭제하려면 cryptoKey.delete 메서드를 호출합니다. 이 메서드는 키가 삭제되었는지 확인하기 위해 폴링할 수 있는 장기 실행 작업을 반환합니다.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    다음을 바꿉니다.

    • PROJECT_ID: 키링이 포함된 프로젝트의 ID입니다.
    • LOCATION: 키링의 Cloud KMS 위치입니다.
    • KEY_RING: 키가 포함된 키링의 이름입니다.
    • KEY_NAME: 영구적으로 삭제하려는 키의 이름입니다. 키에 아직 삭제되지 않은 키 버전이 포함되어 있으면 안 되며, Autokey로 생성된 키여도 안 됩니다.

    명령어의 출력은 Operation를 반환합니다. 다음 단계에는 작업의 name가 필요합니다.

  2. 키가 삭제되었는지 확인하려면 operations.get 메서드를 호출하면 됩니다.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    다음을 바꿉니다.

    • PROJECT_ID: 키링이 포함된 프로젝트의 ID입니다.
    • LOCATION: 키링의 Cloud KMS 위치입니다.
    • OPERATION_NAME: 이전 메서드에서 반환된 작업의 이름입니다.

    이 메서드의 출력에 donetrue로 표시되면 작업이 완료된 것입니다. error가 표시되지 않으면 키가 영구적으로 삭제된 것입니다.

지원 중단된 리소스의 이름 보기

삭제된 키의 이름은 동일한Google Cloud 프로젝트에서 재사용할 수 없습니다. 이렇게 하면 서로 다른 두 키가 동일한 리소스 식별자를 갖지 않습니다. 삭제된 키의 이름은 retiredResources 객체에 저장됩니다. retiredResources를 쿼리하여 새 Cloud KMS 리소스에 재사용할 수 없는 이름을 볼 수 있습니다.

지원 중단된 모든 리소스 목록을 보려면 다음 단계를 따르세요.

gcloud

다음 명령어를 실행합니다.

gcloud kms retired-resources list \
    --location=LOCATION

다음을 바꿉니다.

  • LOCATION: 지원이 종료된 리소스를 보려는 위치입니다.

REST

retiredResources.list 메서드를 사용합니다.

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

다음을 바꿉니다.

  • PROJECT_ID: 지원이 종료된 리소스를 보려는 프로젝트의 식별자입니다.
  • LOCATION: 지원이 종료된 리소스를 보려는 위치입니다.

개별 지원 종료 리소스의 메타데이터를 보려면 다음 단계를 따르세요.

gcloud

다음 명령어를 실행합니다.

gcloud kms retired-resources describe RETIRED_RESOURCE \
    --location=LOCATION

다음을 바꿉니다.

  • RETIRED_RESOURCE: 보려는 리소스의 이름입니다.
  • LOCATION: 지원이 종료된 리소스를 보려는 위치입니다.

REST

retiredResources.get 메서드를 사용합니다.

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

다음을 바꿉니다.

  • PROJECT_ID: 지원이 종료된 리소스를 보려는 프로젝트의 식별자입니다.
  • LOCATION: 지원이 종료된 리소스를 보려는 위치입니다.
  • RETIRED_RESOURCE: 보려는 리소스의 이름입니다.

이 메서드의 출력에는 resourceType, deleteTime, 삭제된 리소스의 전체 리소스 식별자가 포함됩니다.

다음 단계