为服务器设置加密密钥

您可以设置加密密钥来加密服务器密码。这些密钥是客户管理的加密密钥 (CMEK),您可以使用 Cloud Key Management Service (Cloud KMS) 对其进行管理。您可以在预配新服务器或为现有服务器重装映像时设置这些密钥。您可以将一个加密密钥用于多台服务器。

使用加密密钥是可选操作。不过,设置加密密钥后,您必须使用该密钥。您无法更改此设置。但是,您可以更改密钥或其版本。

此功能仅适用于 裸金属解决方案支持的 Linux 操作系统

准备工作

  1. 使用 Cloud KMS 创建加密密钥。

    如需创建加密密钥,请按以下步骤操作:

    1. 在要创建密钥的项目中, 启用 Cloud KMS API

      每个项目只需执行一次此操作。

    2. 将以下角色 分配给您的裸金属解决方案服务帐号。每个项目只需执行一次此操作。

      • 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:包含您的 裸金属解决方案服务器的项目
    3. 创建非对称解密密钥

      您可以根据需要创建任意数量的密钥和版本。

在预配服务器时设置加密密钥

您可以在通过Google Cloud 控制台登记表预配新的裸金属解决方案服务器时为其设置加密密钥。

如需在预配服务器时设置加密密钥,请参阅 使用 Google Cloud 控制台登记表输入您的选择

在为服务器重装映像时设置加密密钥

如需在为服务器重装映像时设置加密密钥,请参阅 更改服务器的操作系统

查看服务器的加密密钥和密码

如需查看服务器的加密密钥和密码,请按以下步骤操作:

控制台

  1. 进入服务器页面。

    进入服务器页面

  2. 点击服务器名称。

    服务器详情 页面上,查看密码加密密钥 字段中的加密密钥。

  3. 如需查看用户账号及其对应的加密密码,请前往用户账号 部分。

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:裸金属解决方案服务器的区域

解密密码

如需获取原始密码,请按以下步骤操作:

  1. 获取密文。使用 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:与您要解密的密码关联的 账号的用户名。该值为 rootcustomeradmin
    • 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
    
  2. 解密密码。按照解密数据中的步骤操作。

后续步骤