이 페이지에서는 Cloud KMS에서 키를 만드는 방법을 보여줍니다. 키는 대칭 또는 비대칭 암호화 키, 비대칭 서명 키이거나 MAC 서명 키일 수 있습니다.
키를 만들 때 특정 Cloud KMS 위치의 키링에 키를 추가합니다. 새 키링을 만들거나 기존 키링을 사용할 수 있습니다. 이 페이지에서는 새 Cloud KMS 또는 Cloud HSM 키를 생성하여 기존 키링에 추가합니다. Cloud EKM 키를 만들려면 외부 키 만들기를 참조하세요. Cloud KMS 또는 Cloud HSM 키를 가져오려면 키 가져오기를 참조하세요.
시작하기 전에
이 페이지의 작업을 완료하려면 먼저 다음 항목이 있어야 합니다.
- Cloud KMS 리소스를 포함할 Google Cloud 프로젝트 리소스. 다른 Google Cloud 리소스가 포함되지 않은 Cloud KMS 리소스에 대해 개별 프로젝트를 사용하는 것이 좋습니다.
- 키를 만들 키링의 이름과 위치. 다른 리소스 가까이에 있고 원하는 보호 수준을 지원하는 위치에서 키링을 선택합니다. 사용 가능한 위치 및 지원되는 보호 수준을 보려면 Cloud KMS 위치를 참조하세요. 키링을 만들려면 키링 만들기를 참조하세요.
- 선택사항: gcloud CLI를 사용하려면 환경을 준비합니다.
In the Google Cloud console, activate Cloud Shell.
필요한 역할
키를 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 또는 상위 리소스에 대한 Cloud KMS 관리자(roles/cloudkms.admin
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 키를 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
키를 만들려면 다음 권한이 필요합니다.
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.get
-
cloudkms.cryptoKeys.list
-
cloudkms.cryptoKeyVersions.create
-
cloudkms.cryptoKeyVersions.get
-
cloudkms.cryptoKeyVersions.list
-
cloudkms.keyRings.get
-
cloudkms.keyRings.list
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
-
공개 키를 가져오려면 다음 안내를 따르세요.
cloudkms.cryptoKeyVersions.viewPublicKey
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
대칭 암호화 키 만들기
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키를 만들 키링의 이름을 클릭합니다.
키 만들기를 클릭합니다.
키 이름에 키의 이름을 입력합니다.
보호 수준에서 소프트웨어 또는 HSM을 선택합니다.
키 자료에서 생성된 키를 선택합니다.
용도에서 Symmetric encrypt/decrypt를 선택합니다.
순환 주기 및 시작일의 기본값을 그대로 사용합니다.
만들기를 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "PROTECTION_LEVEL"
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.PROTECTION_LEVEL
: 키에 사용할 보호 수준입니다(예:software
또는hsm
).software
키의--protection-level
플래그는 생략해도 됩니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --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 액세스를 참조하세요.
키를 만들려면 CryptoKey.create
메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
다음을 바꿉니다.
PROJECT_ID
: 키링이 포함된 프로젝트의 ID입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.KEY_NAME
: 키의 이름입니다.PROTECTION_LEVEL
: 키의 보호 수준입니다(예:SOFTWARE
또는HSM
).ALGORITHM
: HMAC 서명 알고리즘입니다(예:HMAC_SHA256
). 지원되는 모든 HMAC 알고리즘을 보려면 HMAC 서명 알고리즘을 참조하세요.
커스텀 자동 순환으로 대칭 암호화 키 만들기
키를 만들 때 새로운 키 버전이 자동으로 생성되는 간격인 순환 기간을 지정할 수 있습니다. 또한 지금으로부터 하나의 순환 기간 이전 또는 이후에 다음 순환이 발생하도록 다음 순환 시간을 독립적으로 지정할 수도 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 키를 만들면 Cloud KMS가 순환 기간과 다음 순환 시간을 자동으로 설정합니다. 기본값을 사용하도록 선택하거나 다른 값을 지정할 수 있습니다.
다른 순환 주기와 시작 시간을 지정하려면, 키를 만들 때 만들기 버튼을 클릭하기 전에 다음을 수행합니다.
키 순환 기간에서 옵션을 선택합니다.
시작일에서 첫 번째 자동 순환을 실행할 날짜를 선택합니다. 시작일을 기본값으로 설정하여 키를 생성한 시점부터 첫 번째 자동 순환 단일 키 순환 기간을 시작할 수 있습니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time NEXT_ROTATION_TIME
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.ROTATION_PERIOD
: 키를 순환하는 간격입니다(예:30d
는 키를 30일마다 순환). 순환 기간은 최소 1일에서 최대 100년이어야 합니다. 자세한 내용은 CryptoKey.rotationPeriod를 참조하세요.NEXT_ROTATION_TIME
: 첫 번째 순환을 완료할 타임스탬프입니다(예:2023-01-01T01:02:03
). 명령어를 실행하는 시점으로부터 하나의 순환 기간 동안 첫 번째 순환을 예약하려면--next-rotation-time
을 생략할 수 있습니다. 자세한 내용은CryptoKey.nextRotationTime
을 참조하세요.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --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 액세스를 참조하세요.
키를 만들려면 CryptoKey.create
메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
다음을 바꿉니다.
PURPOSE
: 키의 용도입니다.ROTATION_PERIOD
: 키를 순환하는 간격입니다(예:30d
는 키를 30일마다 순환). 순환 기간은 최소 1일에서 최대 100년이어야 합니다. 자세한 내용은 CryptoKey.rotationPeriod를 참조하세요.NEXT_ROTATION_TIME
: 첫 번째 순환을 완료할 타임스탬프입니다(예:2023-01-01T01:02:03
). 자세한 내용은CryptoKey.nextRotationTime
을 참조하세요.
'폐기 예약됨' 상태 유지 기간 설정
기본적으로 Cloud KMS의 키 버전은 폐기되기 전 30일 동안 폐기 예약됨(DESTROY_SCHEDULED
) 상태로 유지됩니다. 폐기 예약됨 상태를 소프트 삭제 상태라고도 합니다. 키 버전이 이 상태로 유지되는 기간을 구성할 수 있으며 다음과 같은 제약이 있습니다.
- 키를 만드는 도중에만 기간을 설정할 수 있습니다.
- 키 기간이 지정된 후에는 변경할 수 없습니다.
- 기간은 이후에 생성되는 모든 키 버전에 적용됩니다.
- 최소 기간은 모든 키에 대해 24시간이고, 최소 기간이 0인 가져오기 전용 키는 예외입니다.
- 최대 기간은 120일입니다.
- 기본 기간은 30일입니다.
조직의 조직 정책에 최소 폐기 예약 기간 값이 정의되었을 수 있습니다. 자세한 내용은 키 폐기 제어를 참조하세요.
폐기 예약 상태에 대해 커스텀 기간을 사용하는 키를 만들려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키를 만들 키링의 이름을 클릭합니다.
키 만들기를 클릭합니다.
애플리케이션의 키 설정을 구성합니다.
추가 설정을 클릭합니다.
'폐기 예약됨' 상태 유지 기간에서 영구적으로 폐기되기 전에 키를 폐기 예약됨 상태로 유지할 기간(일)을 선택합니다.
키 만들기를 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATION
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.PURPOSE
: 키의 용도입니다(예:encryption
).DURATION
: 영구적으로 폐기하기 전에 키를 폐기 예약됨 상태로 유지할 기간입니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
특정 애플리케이션 또는 규제 요구사항에 따라 다른 값이 필요하지 않은 한 모든 키에 대해 기본 기간인 30일을 사용하는 것이 좋습니다.
비대칭 키 만들기
다음 섹션에서는 비대칭 키를 만드는 방법을 보여줍니다.
비대칭 복호화 키 만들기
다음 단계에 따라 지정된 키링 및 위치에 비대칭 복호화 키를 만듭니다. 이러한 예시를 조정하여 다른 보호 수준 또는 알고리즘을 지정할 수 있습니다. 자세한 내용 및 대체 값은 알고리즘 및 보호 수준을 참조하세요.
키를 처음 만들 때 초기 키 버전 상태는 생성 대기 중입니다. 상태가 사용 설정됨으로 바뀌면 키를 사용할 수 있습니다. 키 버전 상태에 대한 자세한 내용은 키 버전 상태를 참조하세요.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키를 만들 키링의 이름을 클릭합니다.
키 만들기를 클릭합니다.
키 이름에 키의 이름을 입력합니다.
보호 수준에서 소프트웨어 또는 HSM을 선택합니다.
키 자료에서 생성된 키를 선택합니다.
용도에서 비대칭 복호화를 선택합니다.
알고리즘에서 3072비트 RSA - OAEP 패딩 - SHA256 다이제스트를 선택합니다. 이후 키 버전에서 이 값을 변경할 수 있습니다.
만들기를 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM"
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.ALGORITHM
: 키에 사용할 알고리즘입니다(예:rsa-decrypt-oaep-3072-sha256
). 지원되는 비대칭 암호화 알고리즘 목록은 비대칭 암호화 알고리즘을 참조하세요.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --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 액세스를 참조하세요.
CryptoKey.create
를 호출하여 비대칭 복호화 키를 만드세요.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
다음을 바꿉니다.
PROJECT_ID
: 키링이 포함된 프로젝트의 ID입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.KEY_NAME
: 키의 이름입니다.ALGORITHM
: 키에 사용할 알고리즘입니다(예:RSA_DECRYPT_OAEP_3072_SHA256
). 지원되는 비대칭 암호화 알고리즘 목록은 비대칭 암호화 알고리즘을 참조하세요.
비대칭 서명 키 만들기
다음 단계에 따라 지정된 키링 및 위치에 비대칭 서명 키를 만듭니다. 이러한 예시를 조정하여 다른 보호 수준 또는 알고리즘을 지정할 수 있습니다. 자세한 내용 및 대체 값은 알고리즘 및 보호 수준을 참조하세요.
키를 처음 만들 때 초기 키 버전 상태는 생성 대기 중입니다. 상태가 사용 설정됨으로 바뀌면 키를 사용할 수 있습니다. 키 버전 상태에 대한 자세한 내용은 키 버전 상태를 참조하세요.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키를 만들 키링의 이름을 클릭합니다.
키 만들기를 클릭합니다.
키 이름에 키의 이름을 입력합니다.
보호 수준에서 소프트웨어 또는 HSM을 선택합니다.
키 자료에서 생성된 키를 선택합니다.
용도에서 비대칭 서명을 선택합니다.
알고리즘에서 타원 곡선 P-256 - SHA256 다이제스트를 선택합니다. 이후 키 버전에서 이 값을 변경할 수 있습니다.
만들기를 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM"
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.ALGORITHM
: 키에 사용할 알고리즘입니다(예:ec-sign-p256-sha256
). 지원되는 알고리즘 목록은 비대칭 서명 알고리즘을 참조하세요.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --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 액세스를 참조하세요.
CryptoKey.create
를 호출하여 비대칭 서명 키를 만드세요.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "ALGORITHM"}}'
다음을 바꿉니다.
PROJECT_ID
: 키링이 포함된 프로젝트의 ID입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.KEY_NAME
: 키의 이름입니다.ALGORITHM
: 키에 사용할 알고리즘입니다(예:EC_SIGN_P256_SHA256
). 지원되는 알고리즘 목록은 비대칭 서명 알고리즘을 참조하세요.
공개 키 가져오기
비대칭 키를 만들면 Cloud KMS에서 공개 키/비공개 키 쌍을 만듭니다. 키가 생성된 후 언제든지 사용 설정된 비대칭 키의 공개 키를 가져올 수 있습니다.
공개 키는 PEM(Privacy-enhanced Electronic Mail) 형식입니다. 자세한 내용은 RFC 7468 섹션 일반 고려사항 및 대상 공개 키 정보의 텍스트 인코딩을 참조하세요.
기존 비대칭 키 버전의 공개 키를 다운로드하려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
공개 키를 검색할 비대칭 키가 포함된 키링의 이름을 클릭합니다.
공개 키를 가져올 키의 이름을 클릭합니다.
공개 키를 검색할 키 버전에 해당하는 행에서
더보기를 클릭합니다.공개 키 가져오기를 클릭합니다.
공개 키가 프롬프트에 표시됩니다. 공개 키를 클립보드에 복사할 수 있습니다. 공개 키를 다운로드하려면 다운로드를 클릭합니다.
공개 키 가져오기 옵션이 표시되지 않으면 다음을 확인합니다.
- 키가 비대칭 키입니다.
- 키 버전이 사용 설정되었습니다.
cloudkms.cryptoKeyVersions.viewPublicKey
권한이 있습니다.
Google Cloud 콘솔에서 다운로드한 공개 키의 파일 이름이 다음 형식입니다.
KEY_RING-KEY_NAME-KEY_VERSION.pub
파일 이름의 각 부분이 하이픈으로 구분됩니다(예: ringname-keyname-version.pub
).
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
다음을 바꿉니다.
KEY_VERSION
: 키 버전 번호입니다.KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.OUTPUT_FILE_PATH
: 공개 키 파일을 저장할 경로입니다(예:public-key.pub
).
모든 플래그 및 가능한 값에 대한 정보를 보려면 --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.getPublicKey 메서드를 호출하여 공개 키를 검색합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey" \ --request "GET" \ --header "authorization: Bearer TOKEN"
다음을 바꿉니다.
PROJECT_ID
: 키링이 포함된 프로젝트의 ID입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.KEY_NAME
: 키의 이름입니다.KEY_VERSION
: 키 버전 번호입니다.
출력은 다음과 비슷하게 표시됩니다.
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
공개 키를 JWK 형식으로 변환
Cloud KMS를 사용하면 PEM 형식으로 공개 키를 검색할 수 있습니다. 일부 애플리케이션에는 JSON 웹 키(JWK)와 같은 다른 키 형식이 필요할 수 있습니다. JWK 형식에 대한 자세한 내용은 RFC 7517을 참조하세요.
공개 키를 JWK 형식으로 변환하려면 다음 단계를 따릅니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
비대칭 키에 대한 액세스 제어
서명자 또는 검증자에게는 비대칭 키에 대한 적절한 권한 또는 역할이 필요합니다.
서명을 수행할 사용자 또는 서비스의 경우 비대칭 키에 대한
cloudkms.cryptoKeyVersions.useToSign
권한을 부여합니다.공개 키를 검색할 사용자 또는 서비스에 비대칭 키에 대한
cloudkms.cryptoKeyVersions.viewPublicKey
를 부여합니다. 공개 키는 서명 검증에 필요합니다.
권한 및 역할에서 Cloud KMS 출시 버전의 권한 및 역할에 대해 알아보세요.
MAC 서명 키 만들기
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키를 만들 키링의 이름을 클릭합니다.
키 만들기를 클릭합니다.
키 이름에 키의 이름을 입력합니다.
보호 수준에서 소프트웨어 또는 HSM을 선택합니다.
키 자료에서 생성된 키를 선택합니다.
용도에서 MAC 서명/확인을 선택합니다.
선택사항: 알고리즘에서 HMAC 서명 알고리즘을 선택합니다.
만들기를 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.ALGORITHM
: HMAC 서명 알고리즘입니다(예:hmac-sha256
). 지원되는 모든 HMAC 알고리즘을 보려면 HMAC 서명 알고리즘을 참조하세요.PROTECTION_LEVEL
: 키의 보호 수준입니다(예:hsm
).software
키의--protection-level
플래그는 생략해도 됩니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --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 액세스를 참조하세요.
키를 만들려면 CryptoKey.create
메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
다음을 바꿉니다.
PROJECT_ID
: 키링이 포함된 프로젝트의 ID입니다.LOCATION
: 키링의 Cloud KMS 위치입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.KEY_NAME
: 키의 이름입니다.PROTECTION_LEVEL
: 키의 보호 수준입니다(예:SOFTWARE
또는HSM
).ALGORITHM
: HMAC 서명 알고리즘입니다(예:HMAC_SHA256
). 지원되는 모든 HMAC 알고리즘을 보려면 HMAC 서명 알고리즘을 참조하세요.
다음 단계
- 키 순환에 대해 알아보세요.
- 서명 생성 및 검증에 대해 알아보세요.
- RSA 키로 데이터 암호화 및 복호화에 대해 알아보세요.
- 공개 키 검색에 대해 알아보세요.