이 문서에서는 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
키 버전을 삭제하려면
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가 필요합니다.키 버전이 삭제되었는지 확인하려면
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: 이전 메서드에서 반환된 작업의 이름입니다.
이 메서드의 출력에
done이true로 표시되면 작업이 완료된 것입니다.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
키를 삭제하려면
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가 필요합니다.키가 삭제되었는지 확인하려면
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: 이전 메서드에서 반환된 작업의 이름입니다.
이 메서드의 출력에
done이true로 표시되면 작업이 완료된 것입니다.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, 삭제된 리소스의 전체 리소스 식별자가 포함됩니다.
다음 단계
- 키 버전 폐기 및 복원에 대해 자세히 알아보세요.