为服务器设置加密密钥

您可以设置加密密钥来加密服务器密码。这些密钥是客户管理的加密密钥 (CMEK),您可以使用 Cloud Key Management Service (Cloud KMS) 管理这些密钥。您可以在配置新服务器或重新创建现有服务器时设置它们。您可以将一个加密密钥用于多个服务器。

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

此功能仅适用于 Bare Metal 解决方案支持的 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. 解密密码。按照解密数据中的步骤操作。

后续步骤