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 成為已知且值得信賴的供應商。
- 使用以 SPDX 和 CycloneDX 等業界標準格式提供的 Assured OSS 中的 SBOM 和 VEX,進一步瞭解要素。
- 透過 Google 經過簽署和防竄改的來源,提高所用套件完整性的可信度。
- Google 會主動掃描、找出並修正精選套件中的新安全性漏洞,降低安全風險。
事前準備
請先完成這些工作,再完成本頁面上的其餘工作。
啟用 Security Command Center Enterprise 級別
確認Security Command Center Enterprise 層級已在組織層級啟用。
在機構層級設定權限
您必須在機構層級和專案層級設定權限。
-
請確認您在機構中具備下列角色: 安全中心管理員、機構管理員
檢查角色
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取機構。
-
在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。
- 針對指定或包含您的所有列,請檢查「角色」欄,確認角色清單是否包含必要角色。
授予角色
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取機構。
- 按一下「Grant access」(授予存取權)。
-
在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。
- 按一下「選取角色」,然後搜尋角色。
- 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
- 按一下「Save」(儲存)。
-
設定專案層級權限
-
確認您在專案中具備下列一或多個角色: 服務使用情形管理員、服務帳戶管理員、專案 IAM 管理員
檢查角色
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取專案。
-
在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。
- 針對指定或包含您的所有列,請檢查「角色」欄,確認角色清單是否包含必要角色。
授予角色
-
前往 Google Cloud 控制台的「IAM」頁面。
前往「IAM」頁面 - 選取專案。
- 按一下「Grant access」(授予存取權)。
-
在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。
- 按一下「選取角色」,然後搜尋角色。
- 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
- 按一下「Save」(儲存)。
-
設定 Google Cloud CLI
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
設定 Assured OSS
控制台
前往 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
使用要啟用 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 Premium 後,如要存取安全性中繼資料存放區,請傳送電子郵件至 customer-support-aoss@google.com,並附上您為 Assured OSS 啟用的服務帳戶。
在 Artifact Registry 執行個體中建立 Assured OSS 存放區,設定 Assured OSS Proxy 服務。您必須為所有語言建立存放區。供應存放區的 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"}' 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。