包括 Pyca 加密库

本页面介绍如何更新 gcloud 命令行工具,以支持通过安装 Pyca 加密库自动封装密钥以便安全地导入 Cloud Key Management Service。2.2.0 版或更高版本添加了对必需的 aes_key_wrap_with_padding 封装机制的支持。

准备工作

  • 安装 Cloud SDK 或将其升级到版本 253.0.0 或更高版本。
  • 如果可能,请安装 pip 命令。pipPython 软件包索引的独立于平台的命令行界面。您的操作系统提供的软件包管理器可能不会提供 2.2.0 或更高版本的 Pyca 加密库。

使用 pip 进行安装

建议使用 pip 命令。pip 是与平台无关的命令行界面。您可以在 Linux、macOS 或 Windows 系统上安装和使用 pip

此命令会将该库安装到您的用户环境中,并指定要安装的最低版本。要在系统范围内安装,请忽略 --user 标志。您可能需要以特权用户身份安装 pip

    pip install --user "cryptography>=2.2.0"
    

安装 Pyca 加密库之后,您必须启用网站软件包以便 Cloud SDK 可以使用这些库。

使用软件包管理器在 Linux 上进行安装

如果您无法使用 pip 命令,请在 Linux 系统上按照以下说明操作。

Debian 或 Ubuntu

如果您使用基于 Debian 或 Ubuntu 的系统,则可以使用 apt-get 命令安装 Pyca 加密库。

  1. 检查软件包数据库中提供的 python-cryptography 软件包版本。要求采用 2.2.0 或更高版本。

        apt policy python-cryptography
        
  2. 安装软件包。

        sudo apt-get install python-cryptography
        

    如有必要,请指定要安装的版本。

        sudo apt-get install python-cryptography=version
        

安装 Pyca 加密库之后,您必须启用网站软件包以便 Cloud SDK 可以使用这些库。

Red Hat、CentOS 或 SUSE

如果您的系统使用 RPM 进行软件包管理,则可以使用 yum 命令安装 Pyca 加密库。

  1. 检查软件包数据库中提供的 python-cryptography 版本。要求采用 2.2.0 或更高版本。

        yum --showduplicates list python2-cryptography
        
  2. 安装软件包。

        sudo yum install python2-cryptography
        

    如有必要,请指定要安装的版本。

        sudo yum install python2-cryptography-version
        

安装 Pyca 加密库之后,您必须启用网站软件包以便 Cloud SDK 可以使用这些库。

启用网站软件包

默认情况下,Cloud SDK 会忽略安装在本地系统上的 Python 库。要允许 Cloud SDK 使用 Pyca 加密库,您需要启用网站软件包。

要启用网站软件包,请将 CLOUDSDK_PYTHON_SITEPACKAGES 环境变量设置为 1。启用网站软件包后,Cloud SDK 可以使用 google-cloud-sdk/lib 目录之外的其他库。

Linux

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

macOS

    export CLOUDSDK_PYTHON_SITEPACKAGES=1
    

Windows

    set CLOUDSDK_PYTHON_SITEPACKAGES=1
    

启用网站软件包可能会导致一些 gcloud 工具命令失败。建议您在导入密钥后停用网站软件包

停用网站软件包

导入完密钥后,建议您在使用 Cloud SDK 的系统上停用网站软件包。要停用网站软件包,请将 CLOUDSDK_PYTHON_SITEPACKAGES 设置为 0

Linux

    export CLOUDSDK_PYTHON_SITEPACKAGES=0
    

macOS

    export CLOUDSDK_PYTHON_SITEPACKAGES=0
    

Windows

    set CLOUDSDK_PYTHON_SITEPACKAGES=0