View a markdown version of this page

AWS 轉換持續現代化 - AWS 轉換

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

AWS 轉換持續現代化

什麼是 AWS 轉型持續現代化?

AWS 轉換持續現代化可為您的原始程式碼儲存庫提供分析和修復。您可以連接 GitHub 組織、GitLab 群組、Bitbucket 工作區和本機儲存庫,然後執行自動化分析,以在整個程式碼庫中識別技術債務、安全漏洞、現代化機會和客服人員就緒度。

所有分析和修復 AWS 帳戶 都會使用您的 登入資料在 中執行。您的原始程式碼仍由您控制。

注意

我們建議您從 Kiro Power 或代理程式外掛程式開始。客服人員技能會協調持續現代化的設定、加入和持續使用,包括基礎設施佈建、來源組態、分析執行、問題清單分類和修復。如需安裝指示,請參閱開發人員工具

關鍵功能

AWS 轉型持續現代化提供下列功能:

  • 技術債務分析 — 掃描儲存庫是否有過時的相依性、安全漏洞、程式碼品質問題和現代化機會。跨套件資訊清單或全面的程式碼層級分析執行快速中繼資料掃描。使用為您的環境量身打造的轉換定義來定義自訂分析條件。

  • 自主修復 — 大規模產生經過驗證的提取請求。每個問題清單都可以使用其相關聯的轉換定義自動修復。修復會在 GitHub、GitLab 和 Bitbucket 中自動建立分支並開啟 PRs/MRs。

  • 報告 — 產生 HTML 報告,依嚴重性、儲存庫和分析類型顯示問題清單。追蹤一段時間內的修復進度和問題清單解決方案。

  • 持續監控 — 排程重複分析,以持續監控您的產品組合是否有新問題。在沒有設定的情況下在 AWS 轉換受管基礎設施上執行,或使用 Amazon EventBridge 排程器在佈建的 Amazon EC2 或 Batch 堆疊上執行。 EventBridge 設定每日、每週或每月節奏。

分析類型

AWS 轉換持續現代化支援下列分析類型,以滿足您的現代化需求。

Type 說明
rapid-techdebt-analysis 快速掃描僅中繼資料的套件資訊清單 (pom.xmlpackage.jsonrequirements.txt),以識別過時的版本和過時的相依性。不會分析原始程式碼。
tech-debt-comprehensive 使用 AWS Transform 代理程式進行深度程式碼層級的技術負債分析。檢查原始程式碼以識別債務模式、程式碼品質問題、架構問題和改善機會。
security 使用 Security Agent AWS 的安全漏洞和 CVE 偵測。掃描原始程式碼和相依性是否有已知漏洞、不安全的編碼模式,以及可利用的弱點。需要一次性基礎設施設定。
agentic-readiness AI 和客服人員整合整備度評估。分為五個類別的 56 個條件:基礎設施與平台、應用程式架構、資料基礎、Identity/Security/Governance,以及營運與可觀測性。
modernization-readiness 雲端現代化機會評估。評估基礎設施、應用程式、資料、安全性和操作維度的準備程度。識別容器化、無伺服器遷移和平台升級的候選者。
custom 執行任何轉換定義 (TD) 做為分析。使用此類型來定義您自己的分析條件,或執行內建類型未涵蓋的 AWS 受管轉換。

了解核心概念

來源

來源會告知儲存庫所在位置的持續現代化。支援的來源類型:

  • GitHub — 具有個人存取字符的組織 (傳統)

  • GitLab — 群組或使用者,包括自我託管執行個體

  • Bitbucket — Workspaces (雲端) 或專案 (資料中心)

  • Local — 包含 git 儲存庫的父目錄

儲存庫

掃描來源會探索儲存庫。探索之後,您可以依來源、標籤或其他條件進行篩選;套用組織標籤 (團隊、優先順序、遷移波);並將特定儲存庫設為目標以進行分析或修復。

分析

分析是使用特定分析類型的一或多個儲存庫的掃描。每個分析都會產生問題清單,以識別程式碼中的問題。您可以隨需執行分析,或將分析排程為自動執行。分析類型包括rapid-techdebt-analysis、tech-debt-comprehensive、 安全性、代理程式就緒性、現代化就緒性和自訂。每個分析都會追蹤其狀態 (待定、執行中、完成、取消或失敗) 及其掃描的儲存庫。

調查結果

調查結果是分析的結果。每個調查結果都包含嚴重性 (高、中或低)、狀態 (開啟、關閉或淘汰),以及可以修復它的修正轉換 (如果可自動修正)。新問題清單開始為開啟。使用者可以根據原因關閉問題清單。重新分析會將已解決的問題清單自動標記為已淘汰。

修復

修復會套用轉換定義來修正問題清單。三種模式:以問題清單為基礎 (每個問題清單都使用自己的修正轉換)、TD 覆寫 (覆寫指定問題清單的轉換定義) 和直接 TD (針對沒有問題清單的儲存庫執行轉換)。輸出取決於來源提供者 (GitHub PR、GitLab MR、Bitbucket PR 或本機分支)。

轉換定義

轉換定義包含執行特定程式碼轉換所需的指示和知識。持續現代化使用轉換定義進行自訂分析 (--type custom --transformation-name name) 和修復 ()--transformation-name name。使用 列出可用的轉換定義atx custom def list

AWS 轉型持續現代化的運作方式

AWS 轉型持續現代化通常用於需要持續分析和修復多個程式碼庫的大規模專案。團隊通常會遵循此工作流程:

  1. Connect Sources — 新增 GitHub 組織、GitLab 群組、Bitbucket 工作區或本機目錄做為來源。提供具有適當範圍的身分驗證字符。

  2. 探索儲存庫 — 執行探索掃描以列舉來源中的所有儲存庫。使用標籤依團隊、優先順序或遷移波來組織儲存庫。

  3. 執行分析 — 跨產品組合執行分析。選擇快速掃描以取得快速結果,或選擇完整分析以取得詳細的調查結果。安全分析需要一次性基礎設施設定。

  4. 分類調查結果 — 依嚴重性、儲存庫或分析類型檢閱調查結果。以記錄的原因關閉誤報。重新執行分析,將已解決的問題標記為已淘汰。

  5. 修復 — 建立修復以修正問題清單。持續現代化會自動建立分支,並使用修正開啟提取/合併請求。追蹤修復狀態和重試失敗。

  6. 設定持續分析 — 使用使用 Amazon EventBridge 排程器的atx ct schedule命令來排程週期性分析。設定分析節奏 (每日、每週或每月),以持續監控您的產品組合是否有新問題。結合自動化修復,以隨著時間維持程式碼運作狀態。

運算選項

持續現代化支援執行分析和修復的多種運算選項。分析可以在本機、您在 AWS 帳戶 (Amazon EC2 或 AWS Batch) 中佈建和管理的基礎設施,或在不需要設定的 AWS 轉換受管基礎設施上執行。Kiro Power 中的客服人員技能和客服人員外掛程式可協助您設定每個選項。

注意

無論運算選項為何,您都可以使用登入資料建立和擁有 中的所有 AWS 帳戶 資源,而原始程式碼仍由您控制。執行分析和修復的基礎設施是客戶受管 - 您在帳戶中佈建的堆疊 - 或 AWS Transform 受管,其中 會為您 AWS 操作運算,而且無需佈建。

Local (預設)

根據預設, 分析會在您的本機電腦上執行。此選項不需要額外的基礎設施。伺服器會在本機執行,並使用本機運算資源執行分析。適用於試用工具、小型儲存庫或個別使用。

AWS 轉換受管 (無需佈建基礎設施)

在 AWS 轉換受管基礎設施上執行分析,無需佈建或管理堆疊。使用 --mode aws-managed,您可以將分析提交至 AWS Transform,以在 AWS操作的基礎設施上執行。沒有 Amazon EC2 執行個體、沒有 AWS 批次堆疊,也沒有要設定的 VPC 或子網路。無需佈建或縮減 - 提交即為執行。當您不想管理任何基礎設施時,這是遠端執行的最快方法。

此選項需要在支援的 SCM 提供者 (GitHub、 GitLab或 ) 上託管的來源Bitbucket。 AWS Transform 受管基礎設施不支援本機來源,因為它無法連接機器上的儲存庫。您可以使用 --region選項選擇工作負載在其中執行 AWS 的區域。

AWS 轉換受管基礎設施只會執行分析。如需修復或執行自訂轉換定義 (--type custom),請使用 AWS Batch 或 Amazon EC2。

若要在 AWS 轉換受管基礎設施上執行,請使用 atx ct remote analysis --mode aws-managed命令 (請參閱 遠端執行),或安裝 Kiro Power 或代理程式外掛程式 (請參閱 開發人員工具),並詢問代理程式:「在沒有基礎設施 AWS 的情況下在 上執行我的分析」。 AWS 轉換受管基礎設施的重複分析需要 執行角色 (請參閱 排程週期性分析)。

您也可以從 AWS Transform Web 應用程式中的持續現代化頁面,開始 AWS 對轉換受管基礎設施進行分析 (請參閱 AWS 轉換 Web 應用程式)。

AWS Batch (Fargate) (建議)

對於大多數產品組合,您可以在 AWS Batch with Fargate 上執行分析,這是建議的運算選項。每個分析都會在具有無伺服器運算的容器中做為隔離任務執行,因此沒有要管理的持久性基礎設施,而且任務會橫向擴展以平行分析多個來源或分析類型。

佈建會部署所需的基礎設施,包括:

  • AWS 批次任務佇列和運算環境

  • 具有持續現代化容器映像的任務定義

  • 批次任務執行的 IAM 角色

  • 用於提交任務的 Lambda 函數

佈建基礎設施需要管理員許可。若要在已佈建且具有最低權限的批次堆疊上執行分析和修復,請 AWS 連接 受管政策 AWSTransformInfrastructureExecutorAccessBatch

若要設定批次執行,請直接使用atx ct remote命令 (請參閱遠端執行),或安裝 Kiro Power 或代理程式外掛程式 (請參閱開發人員工具),並詢問代理程式:「在 Fargate 上執行我的分析」「設定批次執行以進行持續現代化」。代理程式會部署堆疊、將來源登入資料存放在 Secrets Manager 中,並將分析任務提交至 AWS Batch。

Amazon Amazon EC2

在 中的持久性 Amazon EC2 執行個體上執行分析 AWS 帳戶。此選項會從本機機器卸載運算、支援較大的分析,並啟用週期性排程分析。執行個體會在提交之間保持執行狀態。

佈建會部署 AWS CloudFormation 堆疊,其中包含:

  • 具有 Docker 和持續現代化容器的 Amazon EC2 執行個體 (Amazon Linux 2023)

  • 具有 AWS Transform、Amazon S3、 AWS KMS、Secrets Manager 和安全代理程式許可的 IAM 角色

  • AmazonSSMManagedInstanceCore 透過 SSM 進行 Shell 存取 (不需要 SSH 金鑰對或傳入連接埠)

  • 沒有傳入規則的安全群組

佈建基礎設施需要 Amazon EC2 生命週期管理、 AWS CloudFormation 堆疊操作、IAM 角色建立、Amazon S3 儲存貯體操作、Secrets Manager 秘密管理和 SSM 命令的管理員許可。若要在已佈建且具有最低權限的 Amazon EC2 堆疊上執行分析和修復,請連接 AWS 受管政策 AWSTransformInfrastructureExecutorAccessEC2

若要設定 Amazon EC2 執行,請直接使用 atx ct remote 命令 (請參閱 遠端執行),或安裝 Kiro Power 或代理程式外掛程式 (請參閱 開發人員工具),並詢問代理程式:「設定 EC2 執行個體以進行持續現代化分析」。代理程式會佈建基礎設施、驗證容器是否正常運作,並透過 SSM 提交您的分析,而不需要 SSH。

安全代理程式設定

security 分析類型使用 AWS Security Agent 服務進行漏洞和 CVE 偵測。與其他分析類型不同,它需要在 中設定一次性基礎設施 AWS 帳戶。

注意

security 分析類型不適用於下列區域:加拿大 (中部) ()ca-central-1、歐洲 (倫敦) (eu-west-2) 和亞太區域 (首爾) ()ap-northeast-2。其他分析類型不受影響。

安裝命令會佈建 AWS CloudFormation 堆疊,其中包含:

  • 用於原始碼上傳的 Amazon S3 儲存貯體

  • 擔任的 IAM 角色 securityagent.amazonaws.com

  • 安全代理程式角色的受管政策

若要在設定後以最低權限執行安全分析,請將 AWS 受管政策連接至AWSTransformSecurityAgentExecutorAccess您的 IAM 使用者或角色。

您的 IAM 使用者或角色必須具有下列額外許可,才能執行設定:

  • cloudformation:CreateStack, cloudformation:UpdateStack, cloudformation:DescribeStacks

  • iam:CreateRole, iam:PutRolePolicy, iam:AttachRolePolicy, iam:CreatePolicy

  • s3:CreateBucket, s3:PutBucketEncryption, s3:PutBucketPublicAccessBlock

使用下列命令來管理安全代理程式基礎設施:

# Provision the security agent infrastructure atx ct setup security-agent # Check the status atx ct setup security-agent --status # Delete the infrastructure atx ct setup security-agent --delete

設定完成後,您可以像其他分析類型一樣執行安全分析。