將 Docker Scout 與 Amazon ECR 整合
將 Docker Scout 與 Amazon Elastic Container Registry (ECR) 整合,讓您能夠檢視託管在 ECR 儲存庫中映像檔的洞察。在 Docker Scout 與 ECR 整合並為儲存庫啟用 Docker Scout 後,將映像檔推送到儲存庫會自動觸發映像檔分析。您可以使用 Docker Scout 儀表板或 docker scout CLI 指令來檢視映像檔洞察。
運作方式
為協助您將 Docker Scout 與 ECR 整合,您可以使用 CloudFormation 堆疊模板,它會建立並設定必要的 AWS 資源,以將 Docker Scout 與您的 ECR 註冊表整合。有關 AWS 資源的更多詳細資訊,請參閱CloudFormation 堆疊模板。
下圖顯示了 Docker Scout ECR 整合的運作方式。

整合後,Docker Scout 會自動拉取並分析您推送到 ECR 註冊表的映像檔。您的映像檔中繼資料會儲存在 Docker Scout 平台上,但 Docker Scout 不會儲存容器映像檔本身。有關 Docker Scout 如何處理映像檔資料的更多資訊,請參閱資料處理。
CloudFormation 堆疊模板
下表描述了設定資源。
注意建立這些資源會在 AWS 帳戶中產生少量、經常性的費用。表中「費用」欄代表當整合一個每天推送 100 個映像檔的 ECR 註冊表時,這些資源的預估每月費用。
此外,當 Docker Scout 從 ECR 拉取映像檔時,也會產生出口費用。出口費用約為每 GB 0.09 美元。
| 資源類型 | 資源名稱 | 描述 | 費用 |
|---|---|---|---|
AWS::SNSTopic::Topic | SNSTopic | 用於在 AWS 資源建立完成時通知 Docker Scout 的 SNS 主題。 | 免費 |
AWS::SNS::TopicPolicy | TopicPolicy | 定義初始設定通知的主題。 | 免費 |
AWS::SecretsManager::Secret | ScoutAPICredentials | 儲存 EventBridge 用於向 Scout 觸發事件的憑證。 | $0.42 |
AWS::Events::ApiDestination | ApiDestination | 設定 EventBridge 連線至 Docker Scout,用於傳送 ECR 推送和刪除事件。 | $0.01 |
AWS::Events::Connection | Connection | EventBridge 連線至 Scout 的憑證。 | 免費 |
AWS::Events::Rule | DockerScoutEcrRule | 定義將 ECR 推送和刪除事件傳送至 Scout 的規則。 | 免費 |
AWS::Events::Rule | DockerScoutRepoDeletedRule | 定義將 ECR 儲存庫刪除事件傳送至 Scout 的規則。 | 免費 |
AWS::IAM::Role | InvokeApiRole | 授予事件存取 ApiDestination 的內部角色。 | 免費 |
AWS::IAM::Role | AssumeRoleEcrAccess | 此角色擁有存取 ScoutAPICredentials 的權限,用於設定 Docker Scout 整合。 | 免費 |
整合您的第一個註冊表
在您的 AWS 帳戶中建立 CloudFormation 堆疊,以啟用 Docker Scout 整合。
先決條件
- 您必須擁有具有建立資源權限的 AWS 帳戶。
- 您必須是 Docker 組織的擁有者。
建立堆疊
前往 Docker Scout 儀表板上的ECR 整合頁面。
選擇「在 AWS 上建立」按鈕。
這會在新的瀏覽器分頁中開啟 AWS CloudFormation 主控台的「建立堆疊」精靈。如果您尚未登入 AWS,將會先重新導向至登入頁面。
如果按鈕呈現灰色,表示您在 Docker 組織中缺少必要的權限。
按照「建立堆疊」精靈中的步驟直到結束。選擇您要整合的 AWS 區域。透過建立資源來完成程序。
精靈中的欄位已由 CloudFormation 模板預先填入,因此您無需編輯任何欄位。
當資源建立完成(AWS 主控台中 CloudFormation 狀態顯示
CREATE_COMPLETE)時,返回 Docker Scout 儀表板的 ECR 整合頁面。「已整合的註冊表」清單會顯示您剛整合的 ECR 註冊表的帳戶 ID 和區域。如果成功,整合狀態將為「已連線」。
ECR 整合現已啟用。若要讓 Docker Scout 開始分析註冊表中的映像檔,您需要為儲存庫設定中的每個儲存庫啟用它。
啟用儲存庫後,您推送的映像檔將由 Docker Scout 進行分析。分析結果會顯示在 Docker Scout 儀表板中。如果您的儲存庫已包含映像檔,Docker Scout 會自動拉取並分析最新的映像檔版本。
整合其他註冊表
新增其他註冊表
前往 Docker Scout 儀表板上的ECR 整合頁面。
選擇清單頂部的「新增」按鈕。
完成建立 AWS 資源的步驟。
當資源建立完成時,返回 Docker Scout 儀表板的 ECR 整合頁面。
「已整合的註冊表」清單會顯示您剛整合的 ECR 註冊表的帳戶 ID 和區域。如果成功,整合狀態將為「已連線」。
接下來,在儲存庫設定中啟用 Docker Scout,以分析您想要分析的儲存庫。
移除整合
若要移除已整合的 ECR 註冊表,您必須是 Docker 組織的擁有者。
前往 Docker Scout 儀表板上的ECR 整合頁面。
在已整合註冊表清單中找到您要移除的註冊表,然後選擇「動作」欄中的移除圖示。
如果移除圖示呈現停用狀態,表示您在 Docker 組織中缺少必要的權限。
在開啟的對話方塊中,選擇「移除」以確認。
重要從 Docker Scout 儀表板移除整合不會移除您帳戶中的 AWS 資源。
在 Docker Scout 中移除整合後,前往 AWS 主控台並刪除您想要移除的 DockerScoutECRIntegration CloudFormation 堆疊。
疑難排解
無法整合註冊表
在 Docker Scout 儀表板的ECR 整合頁面檢查整合狀態。
如果狀態長時間顯示「待處理」,這表示整合尚未在 AWS 端完成。選擇「待處理」連結以開啟 CloudFormation 精靈,並完成所有步驟。
「錯誤」狀態表示後端發生問題。您可以嘗試移除整合並重新建立它。
ECR 映像檔未顯示在儀表板中
如果您的 ECR 映像檔分析結果未顯示在 Docker Scout 儀表板中
確保您已為儲存庫啟用 Docker Scout。在儲存庫設定中檢視和管理啟用中的儲存庫。
確保您的註冊表的 AWS 帳戶 ID 和區域已列在 ECR 整合頁面上。
帳戶 ID 和區域包含在註冊表主機名稱中:
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/<image>