轮替 Secret

本页介绍了如何更新用于签名请求的 Media CDN 密钥。对于每个密钥集,最多可以指定 3 个公钥和 3 个验证共享密钥,共计 6 个密钥。为避免在密钥轮替期间超出这些限制,请参阅以下关于如何删除验证共享密钥和如何添加密钥的说明。

准备工作

  1. 在 Secret Manager 中配置验证共享密钥

  2. 向 Media CDN 服务账号授予 Secret Manager Access 角色 (roles/secretmanager.secretAccessor)。

    控制台

    1. 在 Google Cloud 控制台中,前往 Secret Manager 页面。

      前往 Secret Manager

    2. 选择相应密钥。
    3. 在信息面板中,点击添加主账号
    4. 对于新的主账号,请按如下方式输入媒体 CDN 服务账号:
      service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

      PROJECT_NUMBER 替换为您的项目编号。

    5. 对于选择角色,请选择 Secret Manager,然后选择 Secret Manager Secret Accessor
    6. 点击保存

    gcloud

    使用 gcloud secrets add-iam-policy-binding 命令

       gcloud secrets add-iam-policy-binding projects/PROJECT_NUMBER/secrets/SECRET_ID \
           --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
           --role="roles/secretmanager.secretAccessor"
        

    替换以下内容:

    • PROJECT_NUMBER:您的项目编号
    • SECRET_ID:Secret 的 ID

删除密钥

控制台

  1. 在 Google Cloud 控制台中,前往 Media CDN 页面。

    前往“媒体 CDN”

  2. 点击密钥集标签页。

  3. 选择包含要删除的密文的密钥集,然后点击修改

  4. 如需删除密钥,请依次点击密钥 > 验证共享密钥部分中密钥名称旁边的 删除

  5. 点击更新密钥集

gcloud

如需从密钥集中删除密钥,请使用 gcloud edge-cache keysets update 命令。省略要删除的键集,并指定要保留的键集。

在以下示例中,KEY_VERSION_1 未列出,而 KEY_VERSION_2KEY_VERSION_3 已列出。省略 KEY_VERSION_1 会将其从按键集中删除。

gcloud edge-cache keysets update KEYSET_NAME \
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2'
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3'

替换以下内容:

  • KEYSET_NAME:按键集的名称
  • PROJECT_NUMBER:您的项目编号
  • SECRET_ID:要更新的 Secret 的 ID
  • KEY_VERSION:密钥版本

文本编辑器

  1. 将键集导出到 YAML 文件。使用 gcloud edge-cache keysets export 命令

    gcloud edge-cache keysets export KEYSET_NAME \
        --destination=FILENAME.yaml
    

    替换以下内容:

    • KEYSET_NAME:键集的名称,例如 prod-vod-keyset
    • FILENAME:YAML 文件名
  2. 修改导出的密钥集配置文件以移除密钥。以下示例展示了如何移除以 KEY_VERSION_1 结尾的最早 Secret 密钥:

    name: projects/my-project/locations/global/edgeCacheKeysets/prod-vod-keyset
    validationSharedKeys:
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_1"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3"
    

    替换以下内容:

    • PROJECT_NUMBER:您的项目编号
    • SECRET_ID:要更新的 Secret 的 ID
    • KEY_VERSION:密钥版本

    修改后的文件类似于以下内容:

    name: projects/my-project/locations/global/edgeCacheKeysets/prod-vod-keyset
    validationSharedKeys:
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3"
    
  3. 导入修改后的键集。使用 gcloud edge-cache keysets import 命令

    gcloud edge-cache keysets import KEYSET_NAME \
        --source=FILENAME.yaml
    

添加密钥

控制台

  1. 在 Google Cloud 控制台中,前往 Media CDN 页面。

    前往“媒体 CDN”

  2. 点击密钥集标签页。

  3. 选择要为其添加密钥对的密钥集,然后点击修改

  4. 如需添加密文,请依次点击密钥 > 验证共享密钥部分中的密文。然后,从列表中选择一个 Secret,通过指定其资源 ID 手动输入一个 Secret,或创建新 Secret,然后选择该 Secret。

  5. 从列表中选择一个密文版本或创建新的密文版本,然后选择该版本。

  6. 点击更新密钥集

gcloud

如需向密钥集添加密钥,请使用 gcloud edge-cache keysets update 命令。指定您已有的键集以及要添加的键集。

在以下示例中,KEY_VERSION_1 之前已被删除,KEY_VERSION_4 是添加的键集。除了 KEY_VERSION_2KEY_VERSION_3 之外,列出 KEY_VERSION_4 会将其添加到键集。

gcloud edge-cache keysets update KEYSET_NAME \
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2'
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3'
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_4'

替换以下内容:

  • KEYSET_NAME:按键集的名称
  • PROJECT_NUMBER:您的项目编号
  • SECRET_ID:您要更新的 Secret 的 ID
  • KEY_VERSION:密钥版本

文本编辑器

  1. 将键集导出到 YAML 文件。使用 gcloud edge-cache keysets export 命令

    gcloud edge-cache keysets export KEYSET_NAME \
        --destination=FILENAME.yaml
    

    替换以下内容:

    • KEYSET_NAME:密钥集的名称
    • FILENAME:YAML 文件名
  2. 在导出的密钥集配置文件中,添加包含新密钥版本的新 secretVersion 行,如下所示:

    name: projects/my-project/locations/global/edgeCacheKeysets/prod-vod-keyset
    validationSharedKeys:
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_4"
    
  3. 导入修改后的键集。使用 gcloud edge-cache keysets import 命令

    gcloud edge-cache keysets import KEYSET_NAME \
        --source=FILENAME.yaml