Assured Open Source Software (Assured OSS) 進階層級可讓您使用 Google 用於自家開發人員工作流程的 OSS 套件,提升程式碼安全性。使用 Assured OSS 時,開發人員可運用 Google 在保護自家開放原始碼依附元件時採用的安全防護專業知識和經驗。
將 Assured OSS 與 Security Command Center 整合後,您就能執行下列操作:
- 從數千個精選和最熱門的 Java、Python 和 Go 套件中選擇,包括 TensorFlow、Pandas 和 Scikit-learn 等常見的機器學習和人工智慧專案。
- 設定安全 Proxy,從 Assured OSS 下載所有 Java、Python、Go 和 JavaScript 套件的認證,讓 Google 成為已知且值得信賴的供應商。
- 使用 Assured OSS 中以 SPDX 和 CycloneDX 等業界標準格式提供的 SBOM 和 VEX,進一步瞭解要素。
- 透過 Google 經過簽署和防竄改的來源,提高所用套件完整性的可信度。
- Google 會主動掃描、找出並修正精選套件中的新漏洞,降低安全風險。
事前準備
請先完成這些工作,再完成本頁面上的其餘工作。
啟用 Security Command Center Enterprise 或 Premium 級別
確認已在機構層級啟用 Security Command Center Premium 或 Security Command Center Enterprise 方案。
在機構層級設定權限
您必須在機構層級和專案層級設定權限。
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取機構。
-
在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。
- 針對指定或包含您的所有列,請檢查「角色」欄,確認角色清單是否包含必要角色。
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取機構。
- 按一下「Grant access」(授予存取權)。
-
在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。
- 按一下「Select a role」(選取角色),然後搜尋角色。
- 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
- 按一下「Save」(儲存)。
請確認您在機構中具備下列角色: 安全中心管理員、機構管理員
檢查角色
授予角色
設定專案層級權限
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取專案。
-
在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。
- 針對指定或包含您的所有列,請檢查「角色」欄,確認角色清單是否包含必要角色。
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取專案。
- 按一下「Grant access」(授予存取權)。
-
在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。
- 按一下「Select a role」(選取角色),然後搜尋角色。
- 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
- 按一下「Save」(儲存)。
確認您在專案中具備下列一或多個角色: 服務使用情形管理員、服務帳戶管理員、專案 IAM 管理員
檢查角色
授予角色
設定 Google Cloud CLI
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能需要幾秒鐘的時間才能完成初始化。
設定 Assured OSS
控制台
這些步驟僅適用於 Security Command Center Enterprise 級別。
在 Google Cloud 控制台中,前往 Security Command Center 的設定指南。
確認您目前查看的組織,是啟用 Security Command Center Enterprise 級別的組織。
展開「查看安全功能摘要」面板。
依序點選「程式碼安全防護」>「設定」。
在「設定程式碼安全性」面板中,按一下「AOSS 設定」。
選取新的服務帳戶,或選取要新增 Assured Open Source Software 權限的現有服務帳戶。
選取要尋找 Assured OSS 資源的 Google Cloud 專案。
按一下「設定 Assured OSS」。
設定程序會自動完成下列事項:
- 如果選取這個選項,系統會建立新的服務帳戶
assuredoss@PROJECT_ID.gservicesaccount.com。 - 將 Assured OSS 使用者角色指派給專用服務帳戶,以便搭配 Assured OSS 使用。
- 將 Assured OSS 管理員角色指派給登入的使用者帳戶,讓該帳戶可以設定服務。
- 啟用 Assured Open Source Software API,以及 (如果尚未啟用) Artifact Registry API。
- 在所選專案的 Artifact Registry 執行個體中設定 Assured OSS Proxy 服務。系統會為每種語言 (Java、Python、Go 和 JavaScript) 提供存放區。這些存放區可自動從精選組合中提取套件。如果套件不屬於精選組合,存放區會將要求重新導向至標準存放區。Proxy 服務僅支援美國區域。 詳情請參閱「Assured OSS 存放區選項」。
- 授予您和服務帳戶權限,讓您可以存取 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 - Go:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
將
PROJECT_ID替換為設定 Assured OSS 時選取的專案 ID。- Java:
點選「下一步」。使用貴機構的構件存放區管理工具 (例如 JFrog Artifactory 或 Sonatype Nexus) 設定 Assured OSS。
gcloud
這些步驟適用於 Security Command Center Premium 和企業版。
使用要啟用 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替換為專案 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:專案 ID。
- 使用 gcloud 設定 Assured OSS 進階版後,如要存取安全性中繼資料存放區,請傳送電子郵件至 customer-support-aoss@google.com,並附上您為 Assured OSS 啟用的服務帳戶。
在 Artifact Registry 執行個體中建立 Assured OSS 存放區,設定 Assured OSS Proxy 服務。您必須為所有語言建立存放區。供應存放區的 Assured OSS Proxy 服務僅支援美國地區。
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"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-go -d '{"format": "GO", "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 - Go:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
將
PROJECT_ID替換為設定 Assured OSS 時選取的專案 ID。- Java:
設定 Assured OSS,透過貴機構的構件存放區管理工具 (例如 JFrog Artifactory 或 Sonatype Nexus) 下載套件。
(選用) 查看可用的 Java、Python、Go 和 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" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages"
將
PROJECT_ID替換為設定 Assured OSS 時選取的專案 ID。