为服务器设置加密密钥

您可以设置加密密钥来加密服务器密码。这些密钥是客户管理的加密密钥 (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. 对密码进行解密。请按照解密数据中的步骤操作。

后续步骤