通过 Assured Open Source Software (Assured OSS) 高级层级,您可以使用 Google 在自己的开发者工作流中使用的 OSS 软件包来增强代码安全性。使用 Assured OSS 时,您的开发者可以利用 Google 在保护自有开源依赖项方面的安全专业知识和经验。
将 Assured OSS 与 Security Command Center 集成后,您可以执行以下操作:
- 从数以千计的精选最热门 Java 和 Python 软件包中进行选择,包括 TensorFlow、Pandas 和 Scikit-learn 等常见的机器学习和人工智能项目。
- 配置安全代理以从 Assured OSS 下载具有认证的所有 Java、Python 和 JavaScript 软件包,从而将 Google 视为知名且值得信赖的供应商。
- 使用以 SPDX 和 CycloneDX 等业界标准格式提供的 Assured OSS 中的 SBOM 和 VEX,详细了解您的组成部分。
- 通过 Google 提供的有签名防篡改构建来源,提高对您所用软件包完整性的信心。
- Google 会主动扫描精选软件包,发现并修复其中的新漏洞,从而降低安全风险。
准备工作
请先完成这些任务,然后再完成本页面上的其余任务。
激活 Security Command Center Enterprise 层级
确认 Security Command Center Enterprise 层级已在组织级层激活,并且您已完成设置指南中的前六个步骤。
在组织级别设置权限
您必须在组织级和项目级设置权限。
-
Make sure that you have the following role or roles on the organization: Security Center Admin, Organization Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
前往 IAM - 选择组织。
- 点击 授予访问权限。
-
在新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。
- 在选择角色列表中,选择一个角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击保存。
在项目级设置权限
-
Make sure that you have the following role or roles on the project: Service Usage Admin, Service Account Admin, Project IAM Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
前往 IAM - 选择项目。
- 点击 授予访问权限。
-
在新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。
- 在选择角色列表中,选择一个角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击保存。
设置 Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
设置 Assured OSS
控制台
在 Google Cloud 控制台中,前往 Security Command Center 的风险概览页面。
确认您查看的是已激活 Security Command Center Enterprise 层级的组织。
点击查看设置指南。
点击设置代码安全性。
选择一个新服务账号,或选择要向其添加“受信任的开源软件”权限的现有服务账号。
选择要将 Assured OSS 资源放置到的 Google Cloud 项目。
点击设置 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 实例中设置 Assured OSS 代理服务。系统会为每种语言(Java、Python 和 JavaScript)预配一个代码库。这些代码库可以自动从精选投资组合中拉取软件包。如果某个软件包未包含在精选投资组合中,这些代码库会将请求重定向到规范代码库。代理服务仅支持美国区域。
- 向您和服务账号授予访问 Google 自有项目中的软件包元数据和通知的权限。
- 如果选中,系统会创建新的服务账号
为每个指定的 Assured OSS 服务账号创建服务账号,并以 JSON 格式下载该密钥。
在本地机器的命令行中,对下载的密钥文件运行以下命令,以获取 base64 编码的字符串:
base64 KEY_FILENAME.json
将
KEY_FILENAME.json
替换为您下载的服务账号密钥的名称。为 Assured OSS 设置远程代码库时,您需要使用 base64 编码的字符串。
如需下载软件包,请使用 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
替换为您在设置 Assured OSS 时选择的项目的 ID。- Java:
点击下一步。使用贵组织的工件仓库管理器(例如 JFrog Artifactory 或 Sonatype Nexus)配置 Assured OSS。
gcloud
使用您要用于启用 Assured OSS 的用户账号向 Google Cloud 进行身份验证:
gcloud auth revoke gcloud auth application-default revoke gcloud auth login
搜索您要将 Assured OSS 资源放置到的项目:
gcloud alpha projects search --query="displayName=PROJECT_NAME"
将
PROJECT_NAME
替换为项目名称。设置要将 Assured OSS 资源放置在其中的项目:
gcloud config set project PROJECT_ID
将
PROJECT_ID
替换为项目标识符。向用户账号授予角色以设置 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
是您的用户账号的电子邮件地址。在项目中启用 Assured OSS。启用 Assured OSS 还会启用 Artifact Registry API。
gcloud services enable assuredoss.googleapis.com
如需为 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
)。为 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
:项目标识符。
通过创建 Assured OSS 代码库,在 Artifact Registry 实例中设置 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
替换为您在设置 Assured OSS 时选择的项目的 ID。这些代码库可以自动从精选投资组合中拉取软件包。如果某个软件包不在精选投资组合中,代码库会将请求重定向到规范代码库。
为每个 Assured OSS 服务账号创建服务账号,并以 JSON 格式下载该密钥。
在命令行中,对下载的密钥文件运行以下命令,以获取 base64 编码的字符串:
base64 KEY_FILENAME.json
将
KEY_FILENAME.json
替换为您下载的服务账号密钥的名称。为 Assured OSS 设置远程代码库时,您需要使用 base64 编码的字符串。
如需下载软件包,请使用 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
替换为您在设置 Assured OSS 时选择的项目的 ID。- Java:
配置 Assured OSS,以便使用贵组织的工件代码库管理器(例如 JFrog Artifactory 或 Sonatype Nexus)下载软件包。
(可选)查看可用的 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
替换为您在设置 Assured OSS 时选择的项目的 ID。
后续步骤
-
-