View a markdown version of this page

發行準備度程式碼檢閱 - AWS DevOps 代理程式

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

發行準備度程式碼檢閱

發行整備性程式碼檢閱會評估程式碼變更的跨儲存庫相依性風險、內部標準合規和存取控制正確性。它也會在由 AWS DevOps 代理程式管理的驗證環境中,執行自動化驗證測試 – 建置、執行和測試程式碼變更。

開始使用

若要使用發行準備度程式碼檢閱,請完成下列設定步驟。

步驟 1:在您的儲存庫上啟用 功能

程式碼檢閱和自動測試功能必須在連線的 GitHub 或 GitLab 儲存庫上啟用,才能觸發。

管道提供者整合設定中的程式碼檢閱和自動測試區段提供兩個每個儲存庫的功能:

  • 自動觸發變更檢閱 — 啟用時,DevOps 代理程式會在每次開啟或更新提取請求或合併請求時自動執行發行整備碼檢閱。檢閱問題清單會在 PR/MR 上顯示為內嵌註解。

  • 自動化驗證測試 — 啟用時,DevOps 代理程式會在程式碼檢閱期間,在受管驗證環境中建置、執行和測試您的程式碼變更。這可提供靜態分析以外的功能驗證。如需詳細資訊,請參閱自動化驗證測試

您可以個別啟用或停用每個儲存庫的每個功能,允許您使用變更檢閱,而無需驗證測試,反之亦然。

本節也包含:

  • 執行時間角色 (選用) — 選擇 DevOps 代理程式擔任的 IAM 角色,以便在您選取的儲存庫上執行自動化功能。在建置期間存取內部服務時會使用此角色,例如私有套件登錄檔或成品存放區。如需詳細資訊,請參閱步驟 2

對於 GitHub:導覽至 GitHub 整合設定中的程式碼檢閱和自動測試區段,並啟用每個儲存庫的功能。當您連接儲存庫時,預設會啟用這兩個功能。如需詳細說明,請參閱設定程式碼檢閱和自動測試

對於 GitLab:導覽至 GitLab 整合設定中的程式碼檢閱和自動測試區段,並啟用專案的功能。如需詳細說明,請參閱設定程式碼檢閱和自動測試

步驟 2:設定驗證測試環境的私有 VPC 存取 (選用)

發行準備度程式碼檢閱可以透過在驗證環境中建置、執行和測試程式碼變更,來執行自動化驗證測試 (請參閱自動化驗證測試)。如果您的程式碼建置程序需要來自內部系統的成品,例如私有映像儲存庫 (例如 Artifactory、Docker Hub Enterprise)、內部建置成品存放區或相依程式碼儲存庫,您需要提供驗證測試環境存取可連接這些服務端點的 VPC。

根據預設,驗證測試環境無法存取網路存取您的內部系統。若要啟用存取,請建立私有連線,並將其與您的管道提供者 (GitHubGitLab) 建立關聯。驗證測試環境會使用與該私有連線相關聯的 VPC,方法是在 VPC 內建立和管理 ENI,讓建置環境網路存取您的內部服務。

注意

與 帳戶中VPCs 整合會遵循任何網路限制,透過內部路由路由網路流量。

若要設定私有 VPC 存取以進行驗證測試:

  1. 建立私有連線,以可連線內部建置服務的 VPC 為目標。如需說明,請參閱連線至私有託管工具

  2. 開啟 AWS DevOps 代理程式主控台並導覽至您的代理程式空間。

  3. 前往功能索引標籤,然後選取您的管道提供者 (GitHub 或 GitLab)。

  4. 程式碼檢閱和自動測試區段中,透過從可用連線中選取私有連線,將私有連線與您的管道提供者建立關聯。

  5. 針對執行期角色,選取 DevOps Agent 在建置期間存取內部服務時將擔任的 IAM 角色。此角色必須具有許可,才能在與客服人員空間相同的 AWS 帳戶中存取 AWS Secrets Manager。我們建議您使用與主要客服人員角色不同的角色。

  6. 選擇儲存以套用您的組態。

建立關聯後,驗證測試環境將在私有連線的 VPC 中佈建 ENI,以便在程式碼檢閱建置期間直接存取您的內部服務。

執行程式碼檢閱

您可以透過 DevOps Agent 聊天功能隨需請求程式碼檢閱:

  • 「檢閱儲存庫付款服務上的分支功能/付款,了解發行風險」

  • 「檢閱儲存庫基礎設施上的遞交 abc123 以準備發行」

  • 「儲存庫訂單服務的最新變更中存在哪些發行風險?」

代理程式會評估指定的範圍:分支、遞交或一組變更,並傳回發行整備報告。報告包括:

  • 建議的動作 — 封鎖、小心操作或安全釋出

  • 變更摘要 — 修改的內容和影響範圍

  • 風險分析 — 具有受影響程式碼位置的特定調查結果

  • 建議 — 解決每個問題清單的可行步驟

視變更的大小和複雜性而定,審核通常會在 8-10 分鐘內完成。

自動化程式碼檢閱

自動化程式碼檢閱無需手動介入即可執行。它們可以在兩個內容中觸發:

程式碼產生期間的程式碼檢閱

使用 Kiro Power 或 Claude Code 外掛程式時,編碼代理程式可以在產生程式碼時叫用發行整備審查。審核會根據您的政策和相依性評估進行中的變更,並在遞交程式碼之前直接在 IDE 中浮現問題清單。

如果發現問題,編碼代理程式會收到通知,並可以立即解決這些問題:修正政策違規、修正許可過高的 IAM 政策,或準備其他儲存庫中的相依變更。

提取請求和合併請求中的程式碼檢閱

啟用自動 PR/MR 檢閱時,代理程式會檢閱連線儲存庫中的每個新提取請求和合併請求。在下列情況下檢閱觸發條件:

  • 新的 PR/MR 已開啟

  • 新的遞交會推送到現有的 PR/MR

調查結果在受影響的程式碼行上顯示為內嵌註解,整體評估以 PR/MR 註解形式發佈。您可以設定問題清單區塊合併 (必要的狀態檢查) 還是僅限諮詢。

自動化驗證測試

觸發發行準備度風險評估時,DevOps Agent AWS會建立受管驗證環境,並將您的程式碼複製到其中。環境在具有網路限制的專用運算資源上執行,以限制對建置、成品儲存和擷取之信任服務的存取。

DevOps 代理程式會讀取應用程式的程式碼和專案檔案,以判斷所需的建置工具和相依性,然後將它們安裝在驗證環境中。成功建置應用程式後,代理程式會產生測試計畫並執行,以識別功能風險,例如可能導致失敗或非預期行為的邊緣案例。

最終版本整備報告中包含來自驗證測試的問題清單,以及標準、相依性和存取控制問題清單。

您可以使用 客服人員指示(AGENTS.md://) 來調整驗證測試的執行方式,例如,指定要執行的測試命令、構成傳遞組建的內容,或在驗證期間要執行的應用程式部分。

允許的網路目的地

驗證測試環境具有僅限於預先定義允許清單的傳出網路存取。您的應用程式可以在驗證期間到達下列網域:

網域 用途
.amazonaws.com, .aws.amazon.com AWS 服務
.public.ecr.aws Amazon ECR Public
.docker.com, .docker.io Docker Hub
.github.com, .githubusercontent.com GitHub
.gitlab.com GitLab
.npmjs.com, .npmjs.org npm 登錄檔
.pypi.org, .pypi.python.org, .pythonhosted.org Python 套件索引
.crates.io, .rustup.rs Rust 套件
.maven.org, .gradle.org Java/Gradle 套件
.nuget.org .NET 套件
.rubygems.org, .ruby-lang.org Ruby 套件
.golang.org, .pkg.go.dev, .goproxy.io Go 套件
.nodejs.org, .yarnpkg.com Node.js
.alpinelinux.org, .debian.org, .ubuntu.com, .centos.org, .fedoraproject.org Linux 發行版本儲存庫
.cloudfront.net CloudFront 分佈
.google.com, .googleapis.com Google APIs
.microsoft.com, .visualstudio.com Microsoft 服務
.sourceforge.net, .bitbucket.org 來源託管
注意

如果您的應用程式需要網路存取此清單中未列出的網域,您可以將驗證測試環境連線到 VPC,將導致代理程式使用您自己的網路防火牆設定,允許您設定應用程式需要的任何服務的存取權。

檢閱程式碼檢閱結果

每個程式碼檢閱都會產生可在 DevOps Agent Web 應用程式的變更頁面存取的報告。報告包括:

  • 尋找類別 — 政策違規、相依性風險、存取控制問題和測試涵蓋範圍差距

  • 嚴重性層級 — 封鎖 (必須在合併之前修正)、警告 (應定址) 和資訊 (僅限意識)

  • 執行日誌 — 代理程式所使用的評估步驟和工具的完整追蹤,提供如何達成結論的透明度

您也可以在 DevOps 客服人員聊天中詢問後續問題:「為什麼審核標記了第 42 行中的 IAM 變更?」 或「哪些儲存庫取決於我修改的 API 端點?」

與 Kiro IDE 和 CLI 整合

若要在 Kiro 中使用發行準備度程式碼檢閱:

  1. 從 Kiro Power Marketplace 安裝 DevOps 代理程式 Kiro Power

  2. 電源包含技能,指示編碼代理程式在重大程式碼變更後和建立 PR 之前,何時叫用發行準備度審查

  3. 調查結果會直接出現在 IDE 中,Kiro 將提供 來修正已識別的問題

您也可以從 Kiro CLI 明確觸發檢閱:編碼代理程式會叫用發行整備審查,並將問題清單納入其工作流程。

與 Claude Code 整合

若要在 Claude Code 中使用發行整備碼檢閱:

  1. 安裝 DevOps Agent Claude Code 外掛程式

  2. 外掛程式會將 Claude Code 連接至您的 Agent Space,並讓編碼代理程式調用發行準備度審查

  3. 在開發期間,Claude Code 可以在遞交之前請求審核進行中的變更並解決問題清單

與 AWS 轉換自訂整合

若要在AWS 轉換自訂 中使用發行準備度程式碼檢閱:

  1. 從 GitHub 上的AWS 轉換自訂範例儲存庫下載 AWS DevOps 代理程式發行整備程式碼檢閱技能。

  2. 遵循儲存庫 README 中的指示,將技能安裝到您的 AWS 轉換環境。

  3. 安裝後,技能會與 AWS Transform 的程式碼產生工作流程整合。當轉換產生或修改程式碼時,技能會針對提議的變更調用發行整備審查。

  4. 直接在轉換輸出中檢閱調查結果表面。如果發現問題,Transform 可以在完成程式碼變更之前解決這些問題。

在 GitHub 中使用程式碼檢閱

先決條件:連線至 Agent Space 並啟用自動檢閱的 GitHub 儲存庫。如需設定說明,請參閱設定程式碼檢閱和自動測試

  • 檢閱會顯示為提取請求差異的內嵌註解,以及整體狀態註解

  • 將 設定為必要的狀態檢查,以在封鎖問題清單存在時封鎖合併

  • 客服人員預設會檢閱所有 PRs;您可以在客服人員空間設定中設定路徑和分支篩選

在 GitLab 中使用程式碼檢閱

先決條件:連線至 Agent Space 並啟用自動檢閱的 GitLab 專案。如需設定說明,請參閱設定程式碼檢閱和自動測試

  • 檢閱會顯示為合併請求差異的內嵌註解,並附上整體備註

  • 將 設定為合併請求核准規則,以要求解決封鎖問題清單

  • 代理程式預設會檢閱所有 MRs;路徑和分支篩選可在您的代理程式空間設定中設定

在 DevOps Agent 聊天中使用程式碼檢閱

從 DevOps Agent 聊天,您可以:

  • 請求檢閱任何分支、遞交或儲存庫範圍

  • 詢問客服人員對您專案的相依性有何了解:「哪些程式碼庫與付款儲存庫中的服務互動?」

  • 詢問有關特定問題清單的後續問題

  • 請求客服人員為已識別的問題產生修正

  • 檢視連線儲存庫的相依性知識圖表

代理程式安全護欄

發行準備度審查包括內建的安全防護機制,可防止常見的不安全代理程式行為。這些護欄在審核過程中一律處於作用中狀態。特定涵蓋範圍和強制執行行為可能會隨著功能發展而改變。雖然我們的目標是盡可能涵蓋許多常見的不安全行為,但有些行為不會有對應的護欄。

防止登入資料暴露

代理程式會封鎖工具輸入包含純文字常見登入資料模式的任何工具呼叫,例如 AWS 金鑰、存取權杖和私有金鑰。

敏感檔案洩漏偵測

代理程式會掃描並封鎖 Shell 命令,這些命令結合對敏感檔案路徑的存取與網路操作,防止資料外洩嘗試。

變動 AWS 操作封鎖

代理程式會封鎖任何會修改基礎設施的 AWS API 呼叫。這可防止檢閱代理程式在分析期間變更您的 AWS 環境。允許唯讀操作 (描述、取得、列出);可變操作會遭到封鎖。

list_* 允許唯讀操作describe_*,例如 get_*、 和 。

序列階段強制執行

發行準備度檢閱階段必須依序執行。這可確保系統化且徹底的評估,並防止未完成的評估略過步驟。