本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS 实现持续现代化转型
什么是 AWS 实现持续现代化转型?
AWS Transform 持续现代化为您的源代码存储库提供分析和补救。您可以连接 GitHub 组织、 GitLab 群组、Bitbucket 工作空间和本地存储库,然后运行自动分析以识别整个代码库中的技术债务、安全漏洞、现代化机会和代理准备情况。
所有分析和补救都 AWS 账户 使用您的凭据在您身上运行。您的源代码由您控制。
注意
我们建议从 Kiro Power 或代理插件开始。代理技能可以协调持续现代化的设置、入职和持续使用,包括基础设施配置、源配置、分析执行、调查结果分类和补救。有关安装说明,请参阅开发人员工具。
关键功能
AWS Transform 持续现代化提供以下功能:
-
技术债务分析 — 扫描存储库中是否存在过时的依赖关系、安全漏洞、代码质量问题和现代化机会。对软件包清单进行快速代理驱动的扫描,或者进行全面的代码级分析。使用针对您的环境量身定制的转换定义来定义自定义分析标准。
-
自主修复-大规模生成经过验证的拉取请求。每个发现都可以使用其关联的转换定义进行自动修正。修复会创建分支并在 GitHub GitLab、和 Bitbucket 上 PRs/MRs 自动打开。
-
报告-生成 HTML 报告,按严重性、存储库和分析类型显示调查结果。随着时间的推移,跟踪修复进度并找到解决方案。
-
持续监控 — 安排定期分析,持续监控您的投资组合中是否有新问题。无需设置即可在 AWS Transform-managed 基础设施上运行它们,或者使用 Amazon Sched EventBridge uler 在预配置的 Amazon EC2 或 Batch 堆栈上运行它们。配置每日、每周或每月的节奏。
分析类型
AWS Transform 持续现代化支持以下分析类型,以满足您的现代化需求。
| 类型 | 说明 |
|---|---|
rapid-techdebt-analysis |
使用 Transf AWS orm 代理快速扫描软件包清单(pom.xmlpackage.json、、requirements.txt),以识别过时的版本和过时的依赖关系。不分析源代码。 |
tech-debt-comprehensive |
使用 Tr AWS ansform 代理进行深度代码级技术债务分析。检查源代码以确定债务模式、代码质量问题、架构问题和改进机会。 |
security |
使用安全代理进行静态应用程序安全测试 (SAST)。 AWS 扫描源代码中是否存在不安全的编码模式,例如 SQL 注入、硬编码密钥和不安全的反序列化。需要一次性基础架构设置。 |
agentic-readiness |
AI 和代理集成准备情况评估。在五个类别中评分 56 个标准:基础设施和平台、应用程序架构 Identity/Security/Governance、数据基础以及运营与可观察性。 |
modernization-readiness |
云现代化机会评估。评估基础架构、应用程序、数据、安全和运营方面的准备情况。确定容器化、无服务器迁移和平台升级的候选对象。 |
custom |
运行您自己的一个转换定义作为分析,其中描述的每个问题都作为发现进行报告,可以链接到修复该问题的 AWS 托管转换。 |
了解关键概念
来源
消息来源告诉持续现代化您的存储库在哪里。支持的源类型:
GitHub— 拥有个人访问令牌的 Organizations(经典)
GitLab— 群组或用户,包括自托管实例
Bitbucket — 工作空间(云端)或项目(数据中心)
本地-包含 git 存储库的父目录
Repositories
存储库是通过扫描源发现的。发现后,您可以按来源、标签或其他标准进行筛选;为组织应用标签(团队、优先级、迁移浪潮);并针对特定的存储库进行分析或修复。
分析
分析是使用特定分析类型对一个或多个存储库进行扫描。每次分析都会生成发现结果,以识别代码中的问题。您可以按需运行分析,也可以安排分析自动运行。分析类型包括快速技术债务分析、技术债务综合分析、安全性、代理就绪性、现代化准备情况和自定义。每项分析都会跟踪其状态(待处理、正在运行、已完成、已取消或失败)及其扫描的存储库。
结果
调查结果是分析的结果。每项发现都包括严重性(高、中或低)、状态(打开、已解除或已过时)以及可以对其进行补救的修复转换(如果可自动修复)。新的发现一开始是开放的,用户可以带着理由将其拒之门外。 Re-analysis 自动将已解决的结果标记为已过时。
补救措施
修正应用转换定义来修复发现的问题。三种模式:基于结果(每个查找结果都使用自己的修复变换)、TD 覆盖(覆盖指定查找结果的转换定义)和直接 TD(对没有发现结果的存储库运行转换)。输出取决于源提供商(GitHub PR、 GitLab MR、Bitbucket PR 或本地分支机构)。
转换定义
转换定义包含执行特定代码转换所需的指令和知识。有两种:
AWS 托管转换定义是预先构建和审核的 AWS,无需任何设置即可使用。例如
AWS/,他们的名字以开头AWS/java-version-upgrade。调查结果链接到它们作为修复方法。自定义转换定义是您创建并发布到中的转换注册表的定义 AWS 账户。使用它们通过自定义分析来查找自己的问题,或者通过补救措施进行自己的更改。
转换定义的类别决定了它可以在何处使用:自定义分析使用该analysis类别运行转换定义,修正使用该remediation类别或 AWS 托管转换运行转换定义。有关更多信息,请参阅 转换定义类别。
操作方法 AWS 转变持续的现代化工作
AWS Transform 持续现代化通常用于需要持续分析和修复多个代码库的大型项目。团队通常遵循以下工作流程:
-
Connect Sources — 添加 GitHub 组织、 GitLab群组、Bitbucket 工作空间或本地目录作为源。提供具有适当范围的身份验证令牌。
-
发现存储库-运行发现扫描以枚举源中的所有存储库。使用标签按团队、优先级或迁移浪潮来组织仓库。
-
运行分析-对您的投资组合执行分析。选择快速扫描以获得快速结果,或选择全面分析以获得详细结果。安全分析需要一次性基础架构设置。
-
分类结果-按严重性、存储库或分析类型查看结果。以记录在案的原因驳回误报。 Re-run分析以将已解决的问题标记为已过时。
-
修复-创建补救措施以修复发现的问题。持续现代化会自动创建分支并打开包含修复的 pull/merge 请求。跟踪补救状态和重试失败。
-
设置持续分析-使用命令安排重复分析,这些
atx ct schedule命令使用 Amazon S EventBridge cheduler。配置分析节奏(每日、每周或每月),持续监控您的投资组合中是否有新发行。与自动修复相结合,随着时间的推移保持代码的运行状况。
计算选项
持续现代化支持多种计算选项,用于运行分析和修复。分析可以在本地运行,也可以在您预配置和管理的基础设施 AWS 账户 (Amazon Amazon EC2 或 B AWS atch)上运行,也可以在无需设置的 AWS Transform-managed 基础设施上运行。Kiro Power 和代理插件中的特工技能可以帮助你设置每个选项。
注意
无论使用哪种计算选项,您都 AWS 账户 可以使用自己的凭证创建并拥有自己的所有资源,并且您的源代码仍处于您的控制之下。运行分析和补救的基础架构要么由客户管理(您在账户中预置堆栈) AWS Transform-managed,要么在其中为您 AWS 操作计算而无需预配置。
本地(默认)
默认情况下,分析在您的本地计算机上运行。此选项不需要额外的基础架构。服务器在本地运行,并使用本地计算资源执行分析。适合试用该工具、小型存储库或个人使用。
AWS Transform-managed (没有基础设施可供配置)
无需预置或管理堆栈,即可对 AWS Transform-managed 基础架构进行分析。使用--mode aws-managed,您可以将分析提交给 Trans AWS form,Transform 将在 AWS运营的基础架构上运行。没有 Amazon EC2 实例,没有 AWS Batch 堆栈,也没有 VPC 或子网可供配置。没有什么可以配置或拆除的——提交即可。当您不想管理任何基础架构时,这是最快的远程运行方式。
此选项需要托管在支持的 SCM 提供商(GitHubGitLab、或Bitbucket)上的源。 AWS Transform-managed 基础设施不支持本地资源,因为它无法访问您计算机上的存储库。您可以使用--region选项选择工作负载运行的 AWS 区域。
AWS Transform-managed 基础架构仅运行分析。要进行补救或运行自定义转换定义 (--type custom),请使用 B AWS atch 或 Amazon EC2。
要在 AWS Transform-managed 基础架构上运行,请使用atx ct remote analysis --mode aws-managed命令(参见远程执行),或者安装 Kiro Power 或代理插件(参见开发人员工具),然后询问代理:“在 AWS 没有基础架构的情况下运行我的分析”。对 AWS Transform-managed 基础设施的定期分析需要执行角色(参见安排重复分析)。
您也可以从 Trans AWS form Web 应用程序的持续现代化页面开始对 AWS Transform-managed 基础设施进行分析(请参阅AWS 转换 Web 应用程序)。
AWS Batch(Fargate)(推荐)
对于大多数投资组合,您可以使用 Fargate 在 Bat AWS ch 上运行分析,这是推荐的计算选项。每个分析都作为独立的作业在自己的容器中运行,具有无服务器计算,因此无需管理持久的基础架构,并且可以扩展作业以对多个源或分析类型进行并行分析。
配置会部署所需的基础架构,包括:
AWS Batch 作业队列和计算环境
使用持续现代化容器镜像定义 Job
用于执行批处理作业的 IAM 角色
用于提交任务的 Lambda 函数
配置基础架构需要管理员权限。要使用最低权限在已配置的 Batch 堆栈上运行分析和修复,请附加 AWS
托管策略。AWSTransformInfrastructureExecutorAccessBatch
要设置批量执行,请直接使用atx ct remote命令(参见远程执行),或者安装 Kiro Power 或代理插件(参见开发人员工具),然后询问代理:“在 Fargate 上运行我的分析” 或 “设置批处理执行以实现持续现代化”。代理部署堆栈,将您的源凭据存储在 Secrets Manager 中,并将分析作业提交到 B AWS atch。
Amazon EC2
在您的永久性 Amazon EC2 实例上运行分析 AWS 账户。此选项可将计算从本地计算机上卸载,支持更大规模的分析,并允许定期进行分析。实例在两次提交之间保持运行。
配置部署的堆 AWS CloudFormation 栈包括:
带有 Docker 和持续现代化容器的亚马逊 EC2 实例(亚马逊 Linux 2023)
一个具有 Trans AWS form、Amazon S3、 AWS KMS、Secrets Manager 和安全代理权限的 IAM 角色
AmazonSSMManagedInstanceCore用于通过 SSM 进行外壳访问(不需要 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 安全代理服务对源代码进行静态应用程序安全测试 (SAST)。与其他分析类型不同,它需要在您的中进行一次性基础架构设置 AWS 账户。
注意
该security分析类型不适用于以下区域:加拿大(中部)(ca-central-1)、欧洲(伦敦)(eu-west-2) 和亚太地区(首尔)(ap-northeast-2)。其他分析类型不受影响。
setup 命令提供的 AWS CloudFormation 堆栈包括:
用于上传源代码的 Amazon S3 存储桶
由担任的 IAM 角色
securityagent.amazonaws.com安全代理角色的托管策略
要在设置后以最低权限运行安全分析,请将 AWS 托管策略附加AWSTransformSecurityAgentExecutorAccess到您的 IAM 用户或角色。
您的 IAM 用户或角色必须具有以下额外权限才能运行安装程序:
cloudformation:CreateStack,cloudformation:UpdateStack,cloudformation:DescribeStacksiam:CreateRole,iam:PutRolePolicy,iam:AttachRolePolicy,iam:CreatePolicys3: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
设置完成后,您可以像其他分析类型一样运行安全分析。