为服务器设置加密密钥
您可以设置加密密钥来加密服务器密码。这些密钥是客户管理的加密密钥 (CMEK),您可以使用 Cloud Key Management Service (Cloud KMS) 对其进行管理。您可以在预配新服务器或为现有服务器重装映像时设置这些密钥。您可以将一个加密密钥用于多台服务器。
使用加密密钥是可选操作。不过,设置加密密钥后,您必须使用该密钥。您无法更改此设置。但是,您可以更改密钥或其版本。
此功能仅适用于 裸金属解决方案支持的 Linux 操作系统。
准备工作
使用 Cloud KMS 创建加密密钥。
如需创建加密密钥,请按以下步骤操作:
在要创建密钥的项目中, 启用 Cloud KMS API。
每个项目只需执行一次此操作。
将以下角色 分配给您的裸金属解决方案服务帐号。每个项目只需执行一次此操作。
roles/cloudkms.viewer:验证CryptoKeyVersion是否可供使用。roles/cloudkms.publicKeyViewer:检索公钥。
如需了解如何授予角色,请参阅 授予对资源的角色。
如需分配这些角色,请使用
gcloud projects add-iam-policy-binding命令。gcloud projects add-iam-policy-binding KMS_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bms.iam.gserviceaccount.com \ --role roles/cloudkms.publicKeyViewer
gcloud projects add-iam-policy-binding KMS_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bms.iam.gserviceaccount.com \ --role roles/cloudkms.viewer
替换以下内容:
- KMS_PROJECT_ID:包含您的 Cloud KMS 密钥的项目
- PROJECT_NUMBER:包含您的 裸金属解决方案服务器的项目
-
您可以根据需要创建任意数量的密钥和版本。
在预配服务器时设置加密密钥
您可以在通过Google Cloud 控制台登记表预配新的裸金属解决方案服务器时为其设置加密密钥。
如需在预配服务器时设置加密密钥,请参阅 使用 Google Cloud 控制台登记表输入您的选择。
在为服务器重装映像时设置加密密钥
如需在为服务器重装映像时设置加密密钥,请参阅 更改服务器的操作系统。
查看服务器的加密密钥和密码
如需查看服务器的加密密钥和密码,请按以下步骤操作:
控制台
进入服务器页面。
点击服务器名称。
在服务器详情 页面上,查看密码加密密钥 字段中的加密密钥。
如需查看用户账号及其对应的加密密码,请前往用户账号 部分。
gcloud
使用 gcloud alpha bms instances auth-info 命令:
gcloud alpha bms instances auth-info SERVER_NAME --project=PROJECT_ID --region=REGION
替换以下内容:
- SERVER_NAME:裸金属解决方案服务器的名称
- PROJECT_ID:项目的 ID
- REGION:裸金属解决方案服务器的区域
解密密码
如需获取原始密码,请按以下步骤操作:
获取密文。使用
gcloud alpha bms instances auth-info命令。gcloud alpha bms instances auth-info SERVER_NAME \ --project=PROJECT_ID \ --region=REGION \ --format='value(userAccounts.USERNAME.ENCRYPTED_PASSWORD_FILE)' | tr -d ' \n' | base64 -d > CIPHERTEXT_FILE
替换以下内容:
- SERVER_NAME:裸金属解决方案服务器的名称
- PROJECT_ID:裸金属解决方案项目的 ID
- REGION:裸金属解决方案服务器的位置
- USERNAME:与您要解密的密码关联的
账号的用户名。该值为
root或customeradmin。 - ENCRYPTED_PASSWORD_FILE:您在其中保存加密
密码的文件。为避免复制密码后出现格式问题,
请移除空格和换行符 (
'\n')。 - CIPHERTEXT_FILE:密文文件的名称
示例:
gcloud alpha bms instances auth-info my-instance \ --region=europe-west3 \ --project=project-testing \ --format='value(userAccounts.customeradmin.encryptedPassword)' | tr -d ' \n' | base64 -d > ciphertext
如需从 Google Cloud 控制台中复制的密码获取密文, 请使用以下命令:
cat ENCRYPTED_PASSWORD_FILE | tr -d ' \n' | base64 -d > CIPHERTEXT_FILE
替换以下内容:
- ENCRYPTED_PASSWORD_FILE:您在其中保存
加密密码的文件。为避免复制密码后出现格式问题,请移除空格和换行符 (
'\n')。 - CIPHERTEXT_FILE:密文文件的名称
示例:
cat encrypted_password | tr -d ' \n' | base64 -d > ciphertext
解密密码。按照解密数据中的步骤操作。