本页面介绍如何轮替 MACsec for Cloud Interconnect 的密钥。
如需轮替密钥,您需要完成以下操作:
- 创建新密钥,其开始日期晚于现有密钥。
- 将新密钥添加到本地路由器。
- 等待新密钥的开始时间。
- 验证新密钥是否处于活跃状态。
- 删除最早的密钥。
您最多可以创建五个具有指定开始时间的预共享密钥。密钥的开始时间必须按递增顺序排列,且不是在前一个密钥开始时间后的 6 小时内。如需轮替您不再需要使用的密钥,请移除该密钥。
预共享密钥不会过期。配置多个密钥时,所有密钥都必须配置开始时间。
所需的角色
如需获得检索 MACsec 密钥所需的权限,请让管理员向您授予对项目的 Compute Network Admin (roles/compute.networkAdmin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如果您选择使用自定义角色,请确保用于管理 MACsec for Cloud Interconnect 的自定义角色包含 compute.interconnects.getMacsecConfig
IAM 权限。
可选:更新现有密钥开始时间
如果您的密钥没有开始时间并尝试创建新密钥,则 Cloud Interconnect 会显示错误。要修复开始时间,请选择以下选项之一,为现有密钥设置开始时间:
控制台
在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。
选择您要修改的连接。
在 MACsec 标签页上,转到预共享密钥部分,然后点击代管式预共享密钥。
在开始时间字段中,选择或输入新的开始时间。
点击提交
gcloud
gcloud compute interconnects macsec update-key INTERCONNECT_CONNECTION_NAME \
--key-name=KEY_NAME \
--start-time=START_TIME
请替换以下内容:
INTERCONNECT_CONNECTION_NAME
:Cloud Interconnect 连接的名称KEY_NAME
:要更新的密钥的名称START_TIME
:此密钥的生效时间(采用 ISO 8601 格式),例如2023-07-01T21:00:01.000Z
创建新密钥
如需添加新密钥,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。
选择您要修改的连接。
在 MACsec 标签页上,转到预共享密钥部分,然后点击代管式预共享密钥。
点击添加密钥。
指定预共享密钥的详细信息:
密钥名称:密钥的名称。此名称显示在 Google Cloud 控制台中,gcloud CLI 会使用此名称引用该密钥,例如
psk-2
。开始时间:密钥的生效时间。确保新的预共享密钥的开始时间至少比上一个密钥的开始时间晚 6 个小时。
要添加其他预共享密钥,请点击添加密钥。连续预共享密钥的开始时间必须至少相隔 6 小时。
点击提交。
gcloud
gcloud compute interconnects macsec add-key INTERCONNECT_CONNECTION_NAME \ --key-name=KEY_NAME \ --start-time="START_TIME"
请替换以下内容:
INTERCONNECT_CONNECTION_NAME
:Cloud Interconnect 连接的名称KEY_NAME
:密钥的名称START_TIME
:此密钥的生效时间(采用 ISO 8601 格式),例如2023-07-01T21:00:01.000Z
最佳做法是针对为 MACsec for Cloud Interconnect 创建的所有密钥设置开始时间。
如需列出现有密钥并记下新密钥的连接关联密钥 (CAK) 和连接关联密钥名称 (CKN),请选择以下选项之一:
控制台
在预共享密钥部分,找到您添加的预共享密钥的名称,然后点击查看。一个窗口会显示连接关联密钥 (CAK) 和连接关联密钥名称 (CKN)。点击任一值旁边的
复制,将该值复制到计算机的剪贴板。点击关闭。
gcloud
gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
输出类似于以下内容:
preSharedKeys: - name: key1 ckn: 0101010189abcdef...0123456789abcdef cak: 0123456789abcdef...0123456789abcdef startTime: 2023-07-01T12:12:12Z - name: key2 ckn: 0202020289abcdef...0123456789abcdef cak: 0123456889abcdef...0123456789abcdef startTime: 2023-08-01T12:12:12Z
在此示例中,
key2
是新添加的键。将新密钥的开始时间、CAK 和 CKN 值添加到本地路由器的配置。
Google 的边缘路由器会使用开始时间最近的密钥,并随着时间的推移自动切换到下一个密钥。所有配置的键都有无限的到期时间。这意味着要完成密钥轮替,您必须移除不需要的旧密钥。
验证有效密钥
请完成以下步骤:
如需列出现有密钥,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。
选择您要查看的连接。
在 MACsec 标签页上,预共享密钥部分列出了此连接的所有预共享密钥。
gcloud
gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
输出类似于以下内容:
preSharedKeys: - name: key1 ckn: 0101010189abcdef...0123456789abcdef cak: 0123456789abcdef...0123456789abcdef startTime: 2023-07-01T12:12:12Z - name: key2 ckn: 0202020289abcdef...0123456789abcdef cak: 0123456889abcdef...0123456789abcdef startTime: 2023-08-01T12:12:12Z
请记下最后一个密钥前面列出的密钥的 CKN 值。
要验证在移除旧密钥之前是否列出了有效密钥,请选择以下选项之一:
控制台
- 在预共享密钥部分中,验证新密钥的密钥状态是否显示有效,正在使用中。
gcloud
gcloud compute interconnects get-diagnostics INTERCONNECT_CONNECTION_NAME
输出类似于以下内容;查找
macsec
:bundleAggregationType: BUNDLE_AGGREGATION_TYPE_STATIC bundleOperationalStatus: BUNDLE_OPERATIONAL_STATUS_UP links: - circuitId: LOOP-0 googleDemarc: fake-local-demarc-0 lacpStatus: googleSystemId: '00:11:22:33:44:55' neighborSystemId: '55:44:33:22:11:00' state: ACTIVE macsec: ckn: 0202020289abcdef...0123456789abcdef operational: true operationalStatus: LINK_OPERATIONAL_STATUS_UP receivingOpticalPower: state: OK value: -2.49 transmittingOpticalPower: state: OK value: -0.88 macAddress: 00:11:22:33:44:55
gcloud compute interconnects get-diagnostics
命令显示有效密钥的 CKN 值。如果您配置了多个密钥,则系统会选择开始时间最新的密钥作为有效密钥。Google 的边缘路由器会拒绝任何尝试使用旧密钥的新 MACsec 会话。
移除旧密钥
为安全起见,MACsec for Cloud Interconnect 会阻止您移除最后一个有效密钥。
如需移除旧密钥,请完成以下步骤:
从本地路由器配置中移除旧密钥。这样可以确保在从 Cloud Interconnect 中删除旧密钥之前,本地路由器不会使用旧密钥。
要从 Cloud Interconnect 连接配置中移除旧密钥,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。
选择您要查看的连接。
在 MACsec 标签页上,转到预共享密钥,选择要删除的密钥,然后点击删除。
在预共享密钥部分中,验证新密钥的密钥状态是否显示为有效,正在使用中,以及您要删除的密钥是否不再列出。
gcloud
运行以下命令:
gcloud compute interconnects macsec remove-key INTERCONNECT_CONNECTION_NAME \ --key-name=KEY_NAME
请替换以下内容:
INTERCONNECT_CONNECTION_NAME
:Cloud Interconnect 连接的名称KEY_NAME
:密钥的名称
要验证是否已移除正确的密钥,请运行以下命令:
gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
输出类似于以下内容:
preSharedKeys: - name: key2 ckn: 0202020289abcdef...0123456789abcdef cak: 0123456889abcdef...0123456789abcdef startTime: 2023-08-01T12:12:12Z