本頁面將說明 Google Cloud 有助於保護構件安全的服務和功能。
靜態資料加密
根據預設, Google Cloud 會使用 Google 管理的加密金鑰,自動在資料處於靜態狀態時加密資料。如果您有與保護資料的金鑰相關的特定法規或法規要求,可以建立以客戶管理的加密金鑰 (CMEK) 加密的存放區。
存取權控管
根據預設,所有存放區都是私人存放區。遵循最低權限的安全性原則,只授予使用者和服務帳戶所需的最低權限。
限制構件下載
您可以使用下載規則限制構件下載作業。下載規則可讓您允許或拒絕從存放區和套件下載構件。您也可以設定條件,讓規則套用至特定代碼或版本。
針對專案中的每個存放區,您可以在存放區層級設定一個下載規則,並為每個套件設定一個下載規則。當用戶端嘗試下載時,Artifact Registry 會先檢查構件套件中的下載規則。如果沒有規則,或是規則的條件不適用於構件,Artifact Registry 會檢查存放區中的規則。
舉例來說,您可以為存放區建立規則來拒絕所有下載作業,然後為套件建立規則,允許從該特定套件下載。套件層級規則優先,且只有屬於該套件的構件才能從存放區下載。
下載規則適用於所有存放區模式,以及下列存放區格式:
- Docker
- Go
- Maven
- npm
- Python
防範資料竊取
為防範資料外洩,您可以使用 VPC Service Controls,將 Artifact Registry 和其他 Google Cloud 服務置於網路安全防護範圍內。
安全漏洞掃描
Artifact Analysis 可掃描容器映像檔,找出公開監控套件中的安全漏洞。
可用的選項如下:
- 自動安全漏洞掃描
- 啟用這項功能後,系統會找出容器映像檔中的套件安全漏洞。當您將映像檔上傳到 Artifact Registry 時,系統會掃描映像檔,並持續監控資料,最多 30 天內找出新的安全漏洞。
- On-Demand Scanning API
- 啟用後,您可以手動掃描本機映像檔或儲存在 Artifact Registry 中的映像檔。這項功能可協助您在建構管道初期偵測及解決安全漏洞。舉例來說,您可以使用 Cloud Build 掃描建構完成的映像檔,如果掃描偵測到特定嚴重程度的安全漏洞,則封鎖上傳至 Artifact Registry。如果您也啟用了自動安全漏洞掃描功能,容器分析也會掃描您上傳至登錄檔的圖片。
部署政策
您可以使用二進位授權設定政策,當服務嘗試將容器映像檔部署至其中一個支援 Google Cloud 環境時,系統就會強制執行該政策。
舉例來說,您可以設定二進位授權,只允許在符合安全漏洞掃描政策的情況下,才允許部署作業。
移除未使用的圖片
移除未使用的容器映像檔,以降低儲存空間費用,並降低使用舊版軟體的風險。您可以使用多種工具來執行這項工作,包括 gcr-cleaner。gcr-cleaner 工具並非 Google 官方產品。
提早針對安全性進行測試
將資訊安全目標整合至日常工作中,有助於提升軟體提交效能,並建立更安全的系統。這個概念也稱為「提前進行相關作業」,因為安全性等疑慮會在軟體開發生命週期較早的階段解決 (也就是在從左到右的時間表圖表中位於左側)。改用安全機制是 DORA 開發運作研究計畫中所證實的 DevOps 功能之一。
詳情請見:
- 請參閱提早針對安全性進行測試功能。
- 請閱讀白皮書「改用安全機制」,其中說明瞭責任、做法、程序、工具和技巧,可提升對軟體開發生命週期 (SDLC) 的信心,並降低安全性風險疑慮。
公開存放區的注意事項
請仔細考量下列情況:
- 使用公開來源的構件
- 將自己的 Artifact Registry 存放區設為公開
使用公開來源的構件
下列構件公開來源提供您可能會用到的工具,或用於建構和部署作業的依附元件:
不過,貴機構可能會設有限制,影響您使用公開構件的方式。例如:
- 您想控管軟體供應鏈的內容。
- 您不想依賴外部存放區。
- 您希望能嚴格控管實際工作環境中的安全漏洞。
- 您希望能在每個映像檔中使用相同的基本作業系統。
請考慮採用下列方法保護軟體供應鏈:
- 設定自動建構作業,讓構件擁有一致且已知的內容。您可以使用 Cloud Build 建構觸發事件或其他持續整合工具。
- 使用標準化基本映像檔。Google 提供一些基本映像檔供您使用。
- 解決構件中的安全漏洞。您可以使用 On-Demand Scanning API 掃描容器映像檔,檢查是否有安全漏洞,然後再將這些映像檔儲存至 Artifact Registry。Artifact Analysis 也能掃描您推送至 Artifact Registry 的容器。
- 在映像檔部署作業中強制執行內部標準。二進位授權可針對部署至支援 Google Cloud 環境的容器映像檔,提供強制執行功能。
公開的 Artifact Registry 存放區
您可以將 Artifact Registry 存放區設為公開,方法是將 Artifact Registry Reader 角色授予 allUsers
身分。
如果所有使用者都有 Google Cloud 帳戶,您可以改為將存取權限制為已驗證的使用者,並使用 allAuthenticatedUsers
身分。
將 Artifact Registry 存放區設為公開前,請參考下列指南:
- 請確認您儲存在存放區中的所有構件皆可公開共用,且不會洩漏憑證、個人資料或機密資料。
- 在專案中,每位使用者可傳送的要求次數並沒有預設的配額上限。為避免濫用行為,請限制專案中每位使用者的配額。
- 使用者下載構件時,您必須支付網路資料移轉費用。如果預期網際網路下載流量會很多,請考慮相關費用。
網頁應用程式指南
- OWASP Top 10 列出 Open Web Application Security Project (OSWAP) 提出的十大網頁應用程式安全性風險。
容器指南
- Docker 最佳做法包含建構映像檔的建議。
網際網路安全中心 (CIS) 提供 Docker 基準,可用於評估 Docker 容器的安全性。
Docker 提供名為 Docker Bench for Security 的開放原始碼指令碼。您可以使用這個指令碼,驗證執行中的 Docker 容器是否符合 CIS Docker 基準。
Docker Bench For Security 可協助您驗證 CIS Docker 基準測試中的許多項目,但並非所有項目都能透過指令碼驗證。舉例來說,指令碼無法驗證容器主機是否已加固,或容器映像檔是否包含個人資料。查看基準測試中的所有項目,找出可能需要額外驗證的項目。