이 문서에서는 Cloud KMS 키와 함께 키 캡슐화 메커니즘 (KEM)을 사용하여 공유 보안 비밀을 설정하는 방법을 설명합니다.
캡슐화는 KEM 키 쌍의 공개 키를 사용하고, 캡슐 해제는 키 쌍의 비공개 키를 사용합니다. Cloud KMS를 사용하면 공개 키를 검색할 수 있으며, 이 공개 키를 표준 라이브러리와 함께 사용하여 공유 보안 비밀을 캡슐화할 수 있습니다. 공유 보안 비밀을 캡슐 해제하려면 Cloud KMS 캡슐 해제 메서드를 사용합니다. Cloud KMS 외부에서는 비공개 키 자료를 사용할 수 없습니다.
시작하기 전에
- 이 문서에서는 명령줄에서 실행되는 예를 제공합니다. 예시를 간단히 사용하려면 Cloud Shell을 사용하세요. 암호화 예시는 Cloud Shell에 사전 설치된 OpenSSL을 사용합니다. 그렇지 않으면 머신에 OpenSSL을 설치합니다.
- 키 용도가
KEY_ENCAPSULATION인 KEM 키를 만듭니다. 키 용도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 위치입니다.