使用 Cloud Code 创建和管理 Secret

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


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

操作演示


准备工作

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

  3. 安装 Git,以便 Cloud Code 可以执行 Git 操作,例如克隆示例。
  4. 如果您尚未安装 Cloud Code 插件,请先安装该插件。

创建 Cloud Run 服务

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

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

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

    状态栏中的活跃项目名称

  2. 在显示的“快速选择”菜单中,选择新建应用,然后 然后点击 Cloud Run 应用

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

  4. 为您的示例选择一个文件夹,然后点击 Create New Application(创建新应用)。

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

创建 Secret

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

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

  1. 点击 秘密 管理器,并稍等片刻。
  2. 如果系统提示您授权 Cloud Shell 进行 Google Cloud API 调用,请点击授权
  3. 依次点击 add(添加)Create Secret(创建 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. 打开 云 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==2.1.0
    

    将会自动保存您的更改。

  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。

    如需随时获取密钥版本的 ID,请前往 秘密 经理 >[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 模拟器上运行/调试”标签页中,点击 Run
  4. 首次运行配置时,此过程最多可能需要 5 分钟。输出面板会显示应用构建和部署的进度。

  5. 构建好应用后,点击 出现在您的 输出 面板。您的密钥值会显示在成功图形下方。

查看和创建新的 Secret 版本

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

查看 Secret 版本的值

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

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

创建新的 Secret 版本

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

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

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

查看和管理 Secret

停用 Secret 版本

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

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

  1. 点击 Cloud Code,然后展开 Secret Manager 部分。
  2. 点击 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 进行确认,然后点击关停

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