轮替密钥

密钥可以具有轮替计划,用于确定是否以及何时进行自动轮替。

要通过设置轮替周期(更新密钥)或手动轮替密钥(创建新的密钥版本)来自动轮替密钥,用户需要 IAM 角色 roles/cloudkms.adminroles/ownerroles/editor

密钥轮替后,其先前的密钥版本(不再是主密钥版本)既不会被停用或销毁,并且仍可用于解密数据。

自动轮替:设置键的旋转周期

要启用密钥的自动轮替,请使用以下 gcloud 命令行语法设置轮替计划:

命令行

gcloud kms keys update KEY_NAME \
  --location LOCATION \
  --keyring KEYRING_NAME \
  --rotation-period ROTATION_PERIOD \
  --next-rotation-time NEXT_ROTATION_TIME

Windows cmd.exe

gcloud kms keys update KEY_NAME ^
  --location LOCATION ^
  --keyring KEYRING_NAME ^
  --rotation-period ROTATION_PERIOD ^
  --next-rotation-time NEXT_ROTATION_TIME

PowerShell

gcloud kms keys update KEY_NAME `
  --location LOCATION `
  --keyring KEYRING_NAME `
  --rotation-period ROTATION_PERIOD `
  --next-rotation-time NEXT_ROTATION_TIME

轮替计划语法

轮替计划的格式取决于所使用的客户端库。对于 gcloud 命令行工具,下一个轮替时间必须采用 ISO 或 RFC 3339 格式,轮替周期必须采用 INTEGER[UNIT] 格式,其中单位可以是秒 (s)、分钟 (m)、小时 (h) 或天 (d)。例如,与 gcloud 命令搭配使用的有效轮替计划可以是以下格式:

--rotation-period=30d
--next-rotation-time=2016-10-12T12:34:56.1234Z

使用轮替计划创建密钥

要为密钥环创建新密钥,请使用以下工具:

命令行

gcloud kms keys create KEY_NAME \
  --location LOCATION \
  --keyring KEYRING_NAME \
  --purpose ENCRYPTION \
  --rotation-period ROTATION_PERIOD \
  --next-rotation-time NEXT_ROTATION_TIME

Windows cmd.exe

gcloud kms keys create KEY_NAME ^
  --location LOCATION ^
  --keyring KEYRING_NAME ^
  --purpose ENCRYPTION ^
  --rotation-period ROTATION_PERIOD ^
  --next-rotation-time NEXT_ROTATION_TIME

PowerShell

gcloud kms keys create KEY_NAME `
  --location LOCATION `
  --keyring KEYRING_NAME `
  --purpose ENCRYPTION `
  --rotation-period ROTATION_PERIOD `
  --next-rotation-time NEXT_ROTATION_TIME

其中命令使用以下参数:密钥环的 KEYRING_NAME 的新密钥 KEY_NAME,其轮替计划由 ROTATION_PERIODNEXT_ROTATION_TIME 定义。

手动轮替:生成新的密钥版本

要使用 gcloud 创建新密钥版本并将其设置为主版本,针对密钥环 KEYRING_NAME 的密钥 KEY_NAME,请运行以下命令:

命令行

gcloud kms keys versions create --location LOCATION \
  --keyring KEYRING_NAME \
  --key KEY_NAME --primary

Windows cmd.exe

gcloud kms keys versions create --location LOCATION ^
  --keyring KEYRING_NAME ^
  --key KEY_NAME --primary

PowerShell

gcloud kms keys versions create --location LOCATION `
  --keyring KEYRING_NAME `
  --key KEY_NAME --primary

这相当于您将创建一个非主版本的新密钥版本,然后将该版本设置为主版本。这将需要您知道新创建的密钥版本的版本号 VERSION_ID。这相当于以下 gcloud 命令:

命令行

gcloud kms keys versions create \
  --location LOCATION \
  --keyring KEYRING_NAME \
  --key KEY_NAME
gcloud kms keys update KEY_NAME \
  --primary-version VERSION_ID \
  --location LOCATION \
  --keyring KEYRING_NAME

Windows cmd.exe

gcloud kms keys versions create ^
  --location LOCATION ^
  --keyring KEYRING_NAME ^
  --key KEY_NAME
gcloud kms keys update KEY_NAME ^
  --primary-version VERSION_ID ^
  --location LOCATION ^
  --keyring KEYRING_NAME

PowerShell

gcloud kms keys versions create `
  --location LOCATION `
  --keyring KEYRING_NAME `
  --key KEY_NAME
gcloud kms keys update KEY_NAME `
  --primary-version VERSION_ID `
  --location LOCATION `
  --keyring KEYRING_NAME

停用自动轮替

要停用自动旋转,请清除密钥的轮替计划:

命令行

gcloud kms keys update KEY_NAME \
  --remove-rotation-schedule \
  --location LOCATION \
  --keyring KEYRING_NAME

Windows cmd.exe

gcloud kms keys update KEY_NAME ^
  --remove-rotation-schedule ^
  --location LOCATION ^
  --keyring KEYRING_NAME

PowerShell

gcloud kms keys update KEY_NAME `
  --remove-rotation-schedule `
  --location LOCATION `
  --keyring KEYRING_NAME

将现有版本设置为主密钥版本

要将版本 42(已启用)设置为密钥环 hitchhiker 中的主密钥版本 dont-panic,请运行以下命令:

命令行

gcloud kms keys update dont-panic \
  --primary-version 42 \
  --location global \
  --keyring hitchhiker

Windows cmd.exe

gcloud kms keys update dont-panic ^
  --primary-version 42 ^
  --location global ^
  --keyring hitchhiker

PowerShell

gcloud kms keys update dont-panic `
  --set-=primary-version 42 `
  --location global `
  --keyring hitchhiker

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud KMS