使用 Cloud KMS 创建加密密钥
本快速入门介绍了如何在您拥有的项目中使用 Cloud Key Management Service 创建和使用加密密钥。以下说明介绍了如何使用 Google Cloud 控制台在 Cloud KMS 中创建密钥环、密钥和密钥版本。如需了解如何使用其他方法,请参阅方法指南。
本快速入门使用命令行将请求发送到 Cloud KMS API。如需了解使用客户端库向 Cloud KMS API 发送请求的编程示例,请参阅加密和解密。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
密钥环和密钥
要对内容进行加密和解密,您需要一个 Cloud KMS 密钥,该密钥是密钥环的一部分。
创建一个名为 test
的密钥环和一个名为 quickstart
的密钥。如需了解有关这些对象及其相互关系的更多信息,请参阅对象层次结构概览。
gcloud kms keyrings create "test" \
--location "global"
gcloud kms keys create "quickstart" \
--location "global" \
--keyring "test" \
--purpose "encryption"
您可以使用 list
选项来查看您刚创建的密钥的名称和元数据。
gcloud kms keys list \
--location "global" \
--keyring "test"
您应该会看到:
NAME PURPOSE PRIMARY_STATE projects/project-id/locations/global/keyRings/test/cryptoKeys/quickstart ENCRYPT_DECRYPT ENABLED
加密数据
现在您有了密钥,就可以使用该密钥对文本或二进制内容进行加密。
将“some text to be encrypted”存储在名为“mysecret.txt”的文件中。
echo -n "Some text to be encrypted" > mysecret.txt
要使用 gcloud kms encrypt
加密数据,请提供密钥信息,指定要加密的纯文本文件的名称,并指定将要包含加密后的内容的文件名称:
gcloud kms encrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--plaintext-file ./mysecret.txt \
--ciphertext-file ./mysecret.txt.encrypted
encrypt
方法将会把加密后的内容保存在 --ciphertext-file
标志指定的文件中。
对密文进行解密
要使用 gcloud kms decrypt
解密数据,请提供密钥信息,指定要解密的加密文件(密文文件)的名称,并指定将包含解密后的内容的文件名称:
gcloud kms decrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--ciphertext-file ./mysecret.txt.encrypted \
--plaintext-file ./mysecret.txt.decrypted
decrypt
方法将会把解密后的内容保存在 --plaintext-file
标志指定的文件中。
要对已加密内容进行解密,您必须使用加密该内容时使用的相同密钥。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
列出您的密钥可用的版本:
gcloud kms keys versions list \
--location "global" \
--keyring "test" \
--key "quickstart"
如需销毁版本,请运行以下命令,将 key-version 替换为要销毁的密钥版本的编号:
gcloud kms keys versions destroy key-version \ --location "global" \ --keyring "test" \ --key "quickstart"