轮替 MACsec 密钥

本页面介绍如何轮替 MACsec for Cloud Interconnect 的密钥。

如需轮替密钥,您需要完成以下操作:

  1. 创建新密钥,其开始日期晚于现有密钥。
  2. 将新密钥添加到本地路由器。
  3. 等待新密钥的开始时间。
  4. 验证新密钥是否处于活跃状态。
  5. 删除最早的密钥。

您最多可以创建五个具有指定开始时间的预共享密钥。密钥的开始时间必须按递增顺序排列,且不是在前一个密钥开始时间后的 6 小时内。如需轮替您不再需要使用的密钥,请移除该密钥。

预共享密钥不会过期。配置多个密钥时,所有密钥都必须配置开始时间。

所需的角色

如需获得检索 MACsec 密钥所需的权限,请让管理员向您授予对项目的 Compute Network Admin (roles/compute.networkAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

如果您选择使用自定义角色,请确保用于管理 MACsec for Cloud Interconnect 的自定义角色包含 compute.interconnects.getMacsecConfig IAM 权限。

可选:更新现有密钥开始时间

如果您的密钥没有开始时间并尝试创建新密钥,则 Cloud Interconnect 会显示错误。要修复开始时间,请选择以下选项之一,为现有密钥设置开始时间:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。

    转到物理连接

  2. 选择您要修改的连接。

  3. MACsec 标签页上,转到预共享密钥部分,然后点击代管式预共享密钥

  4. 开始时间字段中,选择或输入新的开始时间。

  5. 点击提交

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

创建新密钥

  1. 如需添加新密钥,请选择以下选项之一:

    控制台

    1. 在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。

      转到物理连接

    2. 选择您要修改的连接。

    3. MACsec 标签页上,转到预共享密钥部分,然后点击代管式预共享密钥

    4. 点击添加密钥

    5. 指定预共享密钥的详细信息:

      • 密钥名称:密钥的名称。此名称显示在 Google Cloud 控制台中,gcloud CLI 会使用此名称引用该密钥,例如 psk-2

      • 开始时间:密钥的生效时间。确保新的预共享密钥的开始时间至少比上一个密钥的开始时间晚 6 个小时。

    6. 要添加其他预共享密钥,请点击添加密钥。连续预共享密钥的开始时间必须至少相隔 6 小时。

    7. 点击提交

    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 创建的所有密钥设置开始时间。

  2. 如需列出现有密钥并记下新密钥的连接关联密钥 (CAK) 和连接关联密钥名称 (CKN),请选择以下选项之一:

    控制台

    1. 预共享密钥部分,找到您添加的预共享密钥的名称,然后点击查看。一个窗口会显示连接关联密钥 (CAK) 和连接关联密钥名称 (CKN)。点击任一值旁边的 复制,将该值复制到计算机的剪贴板。

    2. 点击关闭

    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 是新添加的键。

  3. 将新密钥的开始时间、CAK 和 CKN 值添加到本地路由器的配置。

Google 的边缘路由器会使用开始时间最近的密钥,并随着时间的推移自动切换到下一个密钥。所有配置的键都有无限的到期时间。这意味着要完成密钥轮替,您必须移除不需要的旧密钥

验证有效密钥

请完成以下步骤:

  1. 如需列出现有密钥,请选择以下选项之一:

    控制台

    1. 在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。

      转到物理连接

    2. 选择您要查看的连接。

    3. 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 值。

  2. 要验证在移除旧密钥之前是否列出了有效密钥,请选择以下选项之一:

    控制台

    • 预共享密钥部分中,验证新密钥的密钥状态是否显示有效,正在使用中

    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 会阻止您移除最后一个有效密钥。

如需移除旧密钥,请完成以下步骤:

  1. 从本地路由器配置中移除旧密钥。这样可以确保在从 Cloud Interconnect 中删除旧密钥之前,本地路由器不会使用旧密钥。

  2. 要从 Cloud Interconnect 连接配置中移除旧密钥,请选择以下选项之一:

    控制台

    1. 在 Google Cloud 控制台中,前往 Cloud Interconnect 物理连接标签页。

      转到物理连接

    2. 选择您要查看的连接。

    3. MACsec 标签页上,转到预共享密钥,选择要删除的密钥,然后点击删除

    4. 预共享密钥部分中,验证新密钥的密钥状态是否显示为有效,正在使用中,以及您要删除的密钥是否不再列出。

    gcloud

    1. 运行以下命令:

      gcloud compute interconnects macsec remove-key INTERCONNECT_CONNECTION_NAME \
          --key-name=KEY_NAME
      

      请替换以下内容:

      • INTERCONNECT_CONNECTION_NAME:Cloud Interconnect 连接的名称
      • KEY_NAME:密钥的名称
    2. 要验证是否已移除正确的密钥,请运行以下命令:

      gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
      

      输出类似于以下内容:

      preSharedKeys:
      - name: key2
        ckn: 0202020289abcdef...0123456789abcdef
        cak: 0123456889abcdef...0123456789abcdef
        startTime: 2023-08-01T12:12:12Z
      

后续步骤