View a markdown version of this page

AWS 实现持续现代化转型 - AWS 转换

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 持续现代化通常用于需要持续分析和修复多个代码库的大型项目。团队通常遵循以下工作流程:

  1. Connect Sources — 添加 GitHub 组织、 GitLab群组、Bitbucket 工作空间或本地目录作为源。提供具有适当范围的身份验证令牌。

  2. 发现存储库-运行发现扫描以枚举源中的所有存储库。使用标签按团队、优先级或迁移浪潮来组织仓库。

  3. 运行分析-对您的投资组合执行分析。选择快速扫描以获得快速结果,或选择全面分析以获得详细结果。安全分析需要一次性基础架构设置。

  4. 分类结果-按严重性、存储库或分析类型查看结果。以记录在案的原因驳回误报。 Re-run分析以将已解决的问题标记为已过时。

  5. 修复-创建补救措施以修复发现的问题。持续现代化会自动创建分支并打开包含修复的 pull/merge 请求。跟踪补救状态和重试失败。

  6. 设置持续分析-使用命令安排重复分析,这些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: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

设置完成后,您可以像其他分析类型一样运行安全分析。