KEM을 사용하여 캡슐화 및 캡슐 해제

이 문서에서는 Cloud KMS 키와 함께 키 캡슐화 메커니즘 (KEM)을 사용하여 공유 보안 비밀을 설정하는 방법을 설명합니다.

캡슐화는 KEM 키 쌍의 공개 키를 사용하고, 캡슐 해제는 키 쌍의 비공개 키를 사용합니다. Cloud KMS를 사용하면 공개 키를 검색할 수 있으며, 이 공개 키를 표준 라이브러리와 함께 사용하여 공유 보안 비밀을 캡슐화할 수 있습니다. 공유 보안 비밀을 캡슐 해제하려면 Cloud KMS 캡슐 해제 메서드를 사용합니다. Cloud KMS 외부에서는 비공개 키 자료를 사용할 수 없습니다.

시작하기 전에

  • 이 문서에서는 명령줄에서 실행되는 예를 제공합니다. 예시를 간단히 사용하려면 Cloud Shell을 사용하세요. 암호화 예시는 Cloud Shell에 사전 설치된 OpenSSL을 사용합니다. 그렇지 않으면 머신에 OpenSSL을 설치합니다.
  • 키 용도KEY_ENCAPSULATIONKEM 키를 만듭니다. 키 용도 KEY_ENCAPSULATION를 지원하는 알고리즘을 확인하려면 키 캡슐화 알고리즘을 참고하세요.

키에 대한 권한 부여

  • 보안 비밀을 캡슐화하기 위해 공개 키를 검색해야 하는 각 사용자 또는 주체에게 키에 대한 roles/cloudkms.publicKeyViewer 역할을 부여합니다.
  • 이 키로 보안 비밀을 캡슐 해제해야 하는 각 사용자 또는 주 구성원에게 키에 대한 'roles/cloudkms.decapsulator' 역할을 부여합니다.

Cloud KMS의 권한 및 역할에 대한 자세한 내용은 권한 및 역할을 참고하세요.

캡슐화

KEM 키를 사용하여 캡슐화하려면 공개 키를 검색하고 이 공개 키를 사용하여 캡슐화합니다.

gcloud

이 샘플은 로컬 시스템에 OpenSSL이 설치되어 있어야 합니다.

공개 키 다운로드

gcloud kms keys versions get-public-key KEY_VERSION \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION  \
    --output-file PUBLIC_KEY_FILE \
    --public-key-format PUBLIC_KEY_FORMAT

다음을 바꿉니다.

  • KEY_VERSION: 캡슐화에 사용할 키의 버전 번호입니다(예: 2).
  • KEY_NAME: 캡슐화에 사용할 키의 이름입니다.
  • KEY_RING: 키가 포함된 키링의 이름입니다.
  • LOCATION: 키링의 Cloud KMS 위치입니다.