在您之后 将 Assured OSS 与 Security Command Center 集成, 有保障的开源软件包 托管在 Artifact Registry 代码库中,而该代码库是在 控制。
本页介绍了如何连接到 Artifact Registry 代码库以便使用 Assured OSS 直接访问和下载 Python 软件包。
本文档仅适用于 Assured OSS 高级层级。对于免费层级,请参阅使用免费层级的直接代码库访问权限下载 Python 软件包。
准备工作
验证连接 针对请求的服务账号向 Assured OSS 转移数据。
安装最新版本的 Google Cloud CLI。
如果您之前安装了 Google Cloud CLI,请运行以下命令以确保您拥有最新版本:
gcloud components update
设置身份验证
您可以向 Assured OSS Python 软件包进行身份验证 存储库:
- 使用密钥串进行身份验证
- 使用服务账号密钥进行身份验证
以下部分介绍了如何设置这些身份验证方法。
使用密钥环进行身份验证
如需使用 Python 密钥库对 Artifact Registry 进行身份验证,请参阅使用密钥库进行身份验证以及凭据搜索顺序相关信息。我们建议您使用 Python 密钥库进行身份验证。
如需设置密钥环以进行身份验证,请执行以下操作:
安装
keyring
库:pip install keyring
安装 Artifact Registry 后端:
pip install keyrings.google-artifactregistry-auth
列出后端以确认安装:
keyring --list-backends
该列表应包含以下内容:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
-
此步骤可确保 Assured OSS 凭据帮助程序 在与代码库连接时获取您的密钥。
使用服务账号密钥进行身份验证
当应用需要时,使用服务账号密钥进行身份验证 使用用户名和密码进行身份验证。
将软件包代码库网址 https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
替换为网址 https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
替换以下内容:
- 将
PROJECT_ID
替换为您在设置 Assured Open Source Software 时选择的项目的 ID。 将
BASE64_KEY
替换为经过 base64 编码的服务账号 JSON 密钥文件。将整个服务账号 JSON 密钥文件转换为 base64 编码,请使用以下命令:BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
将
KEY_FILE_LOCATION
替换为服务的位置 账号 JSON 密钥文件。
安装软件包
以下说明假定您使用 PyPI 作为代码库来下载依赖项。如果您使用的是其他 因此您必须按照不同的步骤下载依赖项。
安装 Assured OSS 中现有的软件包
如需指定要下载的 Assured OSS Python 软件包,请创建两个 requirements.txt
文件。示例文件如下:
requirements-google.txt
# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74e
requirements-pypi.txt
# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
如需下载软件包,请运行以下命令:
如需下载 适用于 Assured OSS 的 Artifact Registry,请运行以下命令:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python repo/simple -v \ --no-deps
请考虑以下事项:
--require-hashes
为可选项。如果包含,则会为 软件包和requirements.txt
文件中的所有软件包版本。- 将
BASE64_KEY
替换为 base64 编码的服务 账号 JSON 文件。 -v
为可选项。如果指定,该命令会提供更多 output。
如需下载 Artifact Registry for Assured OSS 中不存在的所需软件包,请运行以下命令:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
此命令还会下载您使用上一个命令下载的软件包缺少的依赖项。
列出 Assured OSS 中提供的所有 Python 软件包
要使用 API 如需获取 Artifact Registry 代码库中所有 Python 软件包的列表,请参阅 列出 Assured OSS 中可用的所有 Python 软件包。
生成 requirements-google.txt
文件
本部分提供了有关如何生成
requirements-google.txt
文件,您需要下载 Python
软件包下载哈希值并生成 requirements-google.txt
文件
可以使用以下两个选项之一:
使用脚本为所有工件生成一个需求文件。
为每个工件下载单独的要求文件。
以下部分详细介绍了这些选项。
方法 1:使用脚本为所有工件生成单个要求文件
使用 generator.sh
脚本为适用于 Linux 操作系统的 Assured OSS 提供的所有 Python 软件包(及其哈希)生成单个 requirements-google.txt
文件。软件包必须满足 Python 版本、机器架构和操作系统等限制。然后,您可以删除
需要使用生成的文件。
generator.sh
脚本有以下两种帮助作用:
- 它会生成最新的可用 Python 软件包版本列表 可成功安装在您的系统上。
- 它会生成
requirements-google.txt
文件以及所有哈希。
所需的脚本及其 README.md
文件位于 Cloud Storage 存储桶 (gs://cloud-aoss/utils/python-requirements-txt/v1.0
) 中,您可以使用 Google Cloud CLI 下载该存储桶。
如需下载脚本和 README.md
文件,请按以下步骤操作:
使用以下命令通过服务账号进行身份验证,以访问 Cloud Storage 存储桶:
gcloud auth activate-service-account --key-file KEY_FILE
将
KEY_FILE
替换为包含设置过程中提供的服务账号凭据的文件的路径。使用以下命令将
generator.sh
下载到您的机器上:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
将
PATH_TO_LOCAL_STORE
替换为本地路径,其中 您想保存下载的文件使用以下命令下载
README.md
文件:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
将
PATH_TO_LOCAL_STORE
替换为本地路径,其中 您想保存下载的文件README.md
文件包含说明 如何使用该脚本。
如需运行脚本,请使用以下命令:
如需生成
requirements-google.txt
文件,请运行以下命令:chmod +x generator.sh ./generator.sh
如需在 CSV 文件中获取软件包的信息,请运行以下命令:
chmod +x generator.sh ./generator.sh -i
方法 2:为每个必需的工件下载 requirements.txt
您也可以下载单独的 requirements.txt
(包含哈希)文件
然后将它们组合成单个 requirements.txt
文件。
制品哈希位于 Cloud Storage 存储桶中,该存储分区可供下载
使用 gcloud CLI。每个软件包和版本的哈希值位于 gs://cloud-aoss/python/PACKAGE_NAME/VERSION
Cloud Storage 存储桶位置。
如需下载 requirements.txt
文件,请按以下步骤操作:
使用服务账号进行身份验证,以访问 Cloud Storage 存储桶 运行这些命令:
gcloud auth activate-service-account --key-file KEY_FILE
将
KEY_FILE
替换为包含 服务账号凭据将特定软件包和版本的
requirements.txt
下载到 本地机器gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
替换以下内容:
PACKAGE_NAME
:软件包名称VERSION
:软件包的版本PATH_TO_LOCAL_STORE
:您要访问的本地路径 即可下载文件
示例命令:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
--recursive示例
requirements.txt
文件:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
每个此类
requirements.txt
文件的内容都可以组合成 单个requirements-google.txt
文件。