使用 Cloud Code 创建和管理 Secret

了解如何使用 Cloud Code 的 Secret Manager 集成创建和管理 Secret。


如需遵循有关此任务的分步指导,请直接在 Cloud Shell Editor 中点击 操作演示:

操作演示


准备工作

  1. 在 Google Cloud 控制台中,前往项目选择器页面。

    转到“项目选择器”

  2. 选择或创建 Google Cloud 项目。

    选择或创建项目所需的角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予 角色。
  3. 创建 Cloud Run 服务

    将 Cloud Shell Editor 用作创建 Cloud Run 服务和 Secret 的环境。编辑器会预加载云开发所需的工具。

    如需创建服务,请执行以下操作:

    1. 在 Cloud Code 状态栏中,点击活跃项目名称。

      状态栏中的有效项目名称

    2. 在随即显示的“快速选择”菜单中,依次点击新建应用 和 Cloud Run 应用。

    3. 从 Cloud Run 示例列表中选择 Python (Flask): Cloud Run 。

    4. 为示例选择一个文件夹,然后点击新建应用 。

    Cloud Shell Editor 在新工作区中加载您的服务后,您可以在 资源管理器 视图中查看其文件。

    创建 Secret

    Secret Manager 允许您将 Secret 作为二进制 blob 或文本字符串进行安全存储、管理和访问。此外,它还会管理您的 Secret,这意味着您无需处理虚拟机或操作服务。

    如需使用 Cloud Code 的 Secret Manager 集成创建 Secret,请执行以下操作:

    1. 点击 Secret Manager,并等待其加载。
    2. 如果系统提示您授权 Cloud Shell 进行 Google Cloud API 调用,请点击授权 。
    3. 点击 “添加” 图标 创建 Secret。
    4. 在系统提示时,从下拉选择器中选择您的 Google Cloud 云项目。
    5. 如果系统提示,请启用 Secret Manager API。
    6. 在随即显示的 Secret Manager - 创建 Secret 标签页中,在名称字段中输入以下内容:

      my-secret
      
    7. 在 Secret 值字段中,输入:

      Hello secret!
      
    8. 点击创建 Secret ,系统会显示一条消息,告知您 Secret 已成功创建。

    向代码添加 Secret

    Secret 非常适合用于存储应用运行时所需的数据库密码、API 密钥或 TLS 证书等配置信息。

    如需向代码添加 Secret,请执行以下操作:

    1. 打开 Cloud API视图,然后选择 Secret Manager API。

      系统随即会打开一个 Google Cloud API“详情”标签页,标题为 Secret Manager API 。

    2. 在安装客户端库 部分,点击 Python 标签页,然后 点击 play_arrow 在终端中运行。这会安装 google-cloud-secret-manager 客户端库。

    3. 打开 requirements.txt,并在文件底部添加以下行:

      google-cloud-secret-manager==VERSION_NUMBER
      

      在上一步中运行安装后,您可以在控制台中找到版本号。例如,控制台可能会显示: Successfully installed google-cloud-secret-manager-2.23.1

      将会自动保存您的更改。

    4. 如需获取 Secret 的最新值,请打开 app.py ,然后将以下函数: 复制并粘贴到 hello 函数后面:

      def access_secret_version(secret_version_id):
          """Return the value of a secret's version"""
          from google.cloud import secretmanager
      
          # Create the Secret Manager client.
          client = secretmanager.SecretManagerServiceClient()
      
          # Access the secret version.
          response = client.access_secret_version(name=secret_version_id)
      
          # Return the decoded payload.
          return response.payload.data.decode('UTF-8')
      
      
    5. 如需调用 access_secret_version 函数,请将 消息变量 替换为以下代码:

      message = access_secret_version("<SECRET_VERSION_ID>")
      
    6. 如果您仍打开着 Secret Manager - 创建 Secret 标签页,请点击 file_copy 复制 该 ID。

      如需随时获取 Secret 版本的 ID,请依次前往 Secret Manager > [SECRET_NAME] > 版本,将 光标悬停在相应版本上,然后点击 复制资源 ID。

    7. 如需添加版本 ID,请将占位符 <SECRET_VERSION_ID> 替换为您复制的版本 ID。

    在 Cloud Run 模拟器上运行

    如需测试新 Secret,请在 Cloud Run 模拟器上本地运行 Cloud Run 服务。

    1. 从状态栏启动 Cloud Code 菜单。
    2. 如需构建服务并将其部署到模拟器,请选择 在 Cloud Run 模拟器上运行。
    3. 在随即显示的“在 Cloud Run 模拟器上运行/调试”标签页中,点击运行 。
    4. 首次运行配置时,此过程最多可能需要 5 分钟。 输出 面板会显示应用构建和部署的进度。

    5. 应用构建完毕后,点击 输出 面板中显示的 localhost 链接以启动应用。Secret 的值会显示在成功图形下方。

    查看和创建新的 Secret 版本

    借助 Cloud Code 的 Secret Manager 视图,您可以快速查看项目的 Secret,并执行管理 Secret 的操作。

    查看 Secret 版本的值

    1. 点击 Secret Manager 视图。
    2. 点击 Secret 以展开 Secret。
    3. 在版本 文件夹中,右键点击您要查看其值的编号版本,然后选择显示版本值 。

    请注意,您无法修改 Secret 版本。如需更新 Secret 的值,您必须创建新的版本。

    创建新的 Secret 版本

    Secret 的值存储在 Secret 版本中。一个 Secret 可以有多个版本。这在 Secret 发生变化的情况下非常有用。使用新版本更新 Secret 意味着您无需更新代码。

    1. 点击 Secret Manager 视图。
    2. 右键点击 Secret 的名称,然后选择创建 Secret 版本 。
    3. 在随即显示的 Secret Manager - 创建版本 标签页中,输入新值,然后点击创建版本 。
    4. Secret Manager - 创建 Secret 标签页打开后,点击 file_copy 复制 以复制 ID。
    5. 如需添加较新版本 ID,请将 app.py 中显示的消息变量的当前版本替换为您复制的较新版本 ID。

    如果您希望代码始终使用最新版本,请将版本 ID 末尾的版本号替换为 latest。

    查看和管理 Secret

    停用 Secret 版本

    Secret 版本在创建后默认处于启用状态,这意味着可以访问这些版本。已停用的密文无法访问,但您可以随时恢复对该密文的访问权限。

    如需停用 Secret 版本,请执行以下操作:

    1. 点击 Cloud Code ,然后展开 Secret Manager 部分。
    2. 点击 Secret 以展开 Secret。
    3. 在版本 文件夹下,右键点击要停用的编号版本。
    4. 选择停用版本 。

    销毁密文版本

    密文版本一旦销毁,便无法访问。销毁 Secret 版本是永久的。

    1. 点击 Cloud Code ,然后展开 Secret Manager 部分。
    2. 点击 Secret 以展开 Secret。
    3. 在版本 文件夹下,右键点击要销毁的版本。
    4. 选择销毁版本 。

    清理

    如需仅删除您为此快速入门创建的集群,请执行以下操作:

    1. 点击 Cloud Code ,然后展开 Kubernetes 部分。
    2. 将指针悬停在集群名称上,然后点击 open_in_new 在 Google Cloud 控制台中打开。
    3. 点击删除 ,然后再次点击删除 。

    如需删除项目(以及关联的资源,包括所有集群),请执行以下操作:

    1. 前往 控制台中的“项目”页面: Google Cloud

      转到“项目”页面

    2. 选择您为本快速入门创建的项目,然后点击删除。

    3. 输入项目 ID 进行确认,然后点击关停。

      这将关闭该项目并安排将其删除。