为服务器设置加密密钥
您可以设置加密密钥来加密服务器密码。这些密钥是客户管理的加密密钥 (CMEK),您可以使用 Cloud Key Management Service (Cloud KMS) 进行管理。您可以在预配新服务器或重新映像现有服务器时设置这些参数。您可以将一个加密密钥用于多个服务器。
使用加密密钥是可选的。不过,设置加密密钥后,您必须使用该密钥。您无法更改此设置。不过,您可以更改密钥或其版本。
此功能仅适用于 Bare Metal 解决方案支持的 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
对密码进行解密。请按照解密数据中的步骤操作。