与 Assured OSS 集成,确保代码安全

有保障的开源软件 (Assured OSS) 可让您通过使用 Google 使用的 OSS 软件包来增强代码安全性 用于自己的开发者工作流程使用 Assured OSS 时,您的 开发者可以利用 Google 适用于保护自己的开源依赖项。

将 Assured OSS 与 Security Command Center 集成后,您可以执行以下操作: 以下:

  • 从 3700 多种精选的热门 Java 和 Python 中进行选择 包括常见的机器学习和人工智能, 等项目的 TensorFlow、Pandas 和 Scikit-learn 等。
  • 配置安全代理以下载所有 Java、Python 和 JavaScript 带有 Assured OSS 证明的软件包,使 Google 成为 。
  • 使用 Assured OSS 中按照行业标准提供的 SBOM 和 VEX 格式,例如 SPDX 和 CycloneDX。
  • 增强对所用软件包完整性的信心 。
  • 降低安全风险,因为 Google 会积极扫描、查找和修复新 漏洞修复。

准备工作

请先完成这些任务,然后再完成此页面上的其余任务。

激活 Security Command Center Enterprise 层级

验证 Security Command Center Enterprise 层级在 并且您已完成设置指南中的前六个步骤。

在组织级别设置权限

您必须在组织级别和项目级别设置权限。

  1. 确保您拥有组织的以下一个或多个角色: Security Center Admin, Organization Admin

    检查角色

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

      转到 IAM
    2. 选择组织。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

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

      转到 IAM
    2. 选择组织。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。

在项目级别设置权限

  1. 确保您拥有项目的以下一个或多个角色: Service Usage Admin, Service Account Admin, Project IAM Admin

    检查角色

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

      转到 IAM
    2. 选择项目。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

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

      转到 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。

设置 Google Cloud CLI

在 Google Cloud 控制台中,激活 Cloud Shell。

激活 Cloud Shell

Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

设置 Assured OSS

控制台

  1. 在 Google Cloud 控制台中,转到 Security Command Center 风险概览页面。

    转到“风险概览”

  2. 请确认您查看的是已激活 Security Command Center Enterprise 层级已启用。

  3. 点击查看设置指南

  4. 点击 Set up code security(设置代码安全性)。

  5. 选择新的服务账号,或选择需要关联 您要向其添加有保障的开源软件权限的应用。

  6. 选择您要在哪个 Google Cloud 项目中 Assured OSS 资源。

  7. 点击设置 Assured OSS

    设置过程会自动完成以下操作:

    • 如果选中此选项,则会创建新的服务账号 assuredoss@PROJECT_ID.gservicesaccount.com.
    • 将 Assured OSS User 角色分配给指定的服务账号,以便 与 Assured OSS 一起使用。
    • 将 Assured OSS Admin 角色分配给已登录的用户账号,以便 以便该账号能够配置服务
    • 启用 Assured Open Source Software API;如果尚未启用, Artifact Registry API。
    • 在 所选项目中的 Artifact Registry 实例。答 为每个语言(Java、Python 和 JavaScript)。这些代码库可以自动 精选作品集如果某个软件包未作为 代码库会将请求重定向到 规范代码库代理服务仅支持美国区域。
    • 向您和服务账号授予访问软件包的权限 元数据和通知。
  8. 创建服务账号 键 为每个指定的 Assured OSS 服务账号创建 请以 JSON 格式下载密钥。

  9. 在本地机器上的命令行中, 针对下载的密钥文件运行以下命令,以获取 base64 编码的字符串:

    base64 KEY_FILENAME.json
    

    KEY_FILENAME.json 替换为 您下载的服务账号密钥。

    为 Cloud Storage 存储分区设置远程代码库时,您需要 Assured OSS。

  10. 如需下载软件包,请使用 针对每种语言的安心 OSS 条款。记录 供以后使用

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    PROJECT_ID 替换为需要执行身份验证的项目的 ID

  11. 点击下一步配置 Assured OSS 使用贵组织的制品仓库管理员(例如 JFrog) Artifactory 或 Sonatype Nexus。

gcloud

  1. 使用要验证的用户账号向 Google Cloud 进行身份验证 用于启用 Assured OSS:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login
    
  2. 搜索要在其中查找 Assured OSS 资源:

    gcloud alpha projects search --query="displayName=PROJECT_NAME"
    

    PROJECT_NAME 替换为项目名称。

  3. 设置要在其中定位 Assured OSS 的项目 资源:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替换为项目标识符。

  4. 向用户账号授予角色以设置 Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/assuredoss.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/serviceusage.serviceUsageAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/iam.serviceAccountAdmin
    

    其中,email@domain.com 是 您的用户账号。

  5. 在项目中启用 Assured OSS。正在启用 Assured OSS 还支持 Artifact Registry API。

    gcloud services enable assuredoss.googleapis.com
    
  6. 为 Assured OSS 创建新的服务账号,而不是创建服务账号 使用现有服务账号,请完成以下操作:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --description="Service account for using Assured OSS"
      --display-name="Assured OSS service account"
    

    SERVICE_ACCOUNT_NAME 替换为 服务账号(例如 assuredoss)。

  7. 为 Assured OSS 配置服务账号:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/assuredoss.user
    

    替换以下内容:

    • SERVICE_ACCOUNT_NAME: 服务账号(例如 assuredoss)。
    • PROJECT_ID:项目标识符。
  8. 在 Artifact Registry 中设置 Assured OSS 代理服务 来创建 Assured OSS 仓库。您必须 可以针对所有语言创建代码库Assured OSS 预配代码库支持美国区域的代理服务 。

    alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java   -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript   -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python   -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}'
    

    PROJECT_ID 替换为需要执行身份验证的项目的 ID

    这些代码库可以自动 。如果某个软件包未包含在精选组合中, 代码库会将请求重定向到规范代码库。

  9. 创建服务账号 键 并下载密钥 (JSON 格式)。

  10. 在命令行中, 针对下载的密钥文件运行以下命令,以获取 base64 编码的字符串:

    base64 KEY_FILENAME.json
    

    KEY_FILENAME.json 替换为 您下载的服务账号密钥。

    为 Cloud Storage 存储分区设置远程代码库时,您需要 Assured OSS。

  11. 如需下载软件包,请使用 针对每种语言提供 Assured OSS 服务。记录这些内容 端点:

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    PROJECT_ID 替换为需要执行身份验证的项目的 ID

  12. 配置 Assured OSS 使用贵组织的制品库管理器下载软件包 例如 JFrog Artifactory 或 Sonatype Nexus。

  13. (可选)查看可用的 Java、Python 和 JavaScript 软件包:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login --cred-file=KEY_FILENAME.json
    

    KEY_FILENAME.json 替换为 您下载的服务账号密钥。

    export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
    

    KEY_FILENAME.json 替换为 您下载的服务账号密钥。

    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages"
    

    PROJECT_ID 替换为需要执行身份验证的项目的 ID

后续步骤