Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护

本文主要是介绍Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

81858bd4fb3338b108d3f44d39b90d8f.gif

Amazon CodeGuru https://aws.amazon.com /codeguru/ 通过扫描和分析 Java 和 Python 应用程序来帮助提高代码质量并实现自动化的代码审查。Amazon CodeGuru Reviewer 可以检测代码中的潜在缺陷和错误。例如,它可就安全漏洞、资源泄漏、并发问题、错误输入验证以及偏离亚马逊云科技最佳实践等问题提出改进建议。

最广为人知的一个安全实践是集中管理密码、API 密钥和一般凭证等密钥。与许多面临严格时间要求的其他开发人员一样,我经常会在管理和使用代码中的密钥方面走捷径,在本地开发过程中使用纯文本环境变量或将静态密钥进行硬编码,然后在无意中将它们提交。当然,我总是非常后悔,希望有一种自动化的方法来检测和保护我所有存储库中的这些密钥。

我很高兴地宣布 Amazon CodeGuru Reviewer 新推出密钥检测器功能,这是一种自动化的工具,可帮助开发人员检测源代码或配置文件中的密钥,例如密码、API 密钥、SSH 密钥和访问令牌。

这种新推出的检测器在代码审查过程中使用机器学习(ML)来识别硬编码的密钥,从而帮助您确保所有新代码在合并和部署之前未包含硬编码的密钥。除 Java 和 Python 代码之外,密钥检测器还可以扫描配置和文档文件。在补救措施方面,Amazon CodeGuru Reviewer 建议使用 Amazon Secrets Manager https://aws.amazon.com/secrets-manager/ 来保护密钥,这是一项托管式的服务,可让您安全并自动地存储、轮换、管理和检索凭证、API 密钥以及其他各种类型的密钥。

这项新功能包含在Amazon CodeGuru Reviewer 服务中,无需额外付费,并支持常见的 API 提供商,例如 亚马逊云科技、Atlassian、Datadog、Databricks、GitHub、Hubspot、Mailchimp、Salesforce、SendGrid、Shopify、Slack、Stripe、Tableau、Telegram 和 Twilio。查看完整列表请扫描下方二维码。

41c23d1753a845173071fcec1cac3fe4.png

密钥检测器操作演示

首先,我从 Amazon Secrets Manager 控制台中选择 Amazon CodeGuru。此新的工作流允许我关联一个新的存储库并运行完整的存储库分析,目的是识别硬编码的密钥。

aebf97948560a5eb72988b3bb875c7ee.png

关联新存储库只需要几秒钟即可完成。我连接我的 GitHub 账户,然后选择一个名为 hawkcd https://github.com/alexcasalboni/hawkcd 的存储库,其中包含了一些 Java、C#、JavaScript 和配置文件。

84bf4e3d25be504eac158d4ca8d604ab.png

几分钟后,我完整的存储库关联成功并完成了完整扫描。我还可以看一下一个名为 DemoFullRepositoryAnalysisSecrets 的演示存储库分析。进入您的亚马逊云科技账户后,您可以在 Amazon CodeGuru 控制台的 Full repository analysis(完整存储库分析)下找到此演示。

820cdb7d03dda3dcc284ec770c94f097.png

我选中该存储库分析并找到了 42 条建议,其中包括一个针对硬编码密钥的建议(您可以用 Type=Secrets 条件来筛选推荐)。Amazon CodeGuru Reviewer 在 .travis.yml 文件中发现了硬编码的亚马逊云科技访问密钥 ID。

该建议强调了安全存储这些密钥的重要性,提供了有关此问题的更多信息的链接,并建议轮换识别出的密钥,以确保将来不会被作恶者再次利用。

c6ff6ac1878cd1868ed6527d6b90b313.png

Amazon CodeGuru Reviewer 允许我跳转到该密钥所在的准确文件和代码行,从而更深入地了解上下文,验证文件历史记录并快速采取行动。

9ab54c610f5c8e1cb1c226f956e24809.png

最后但并非最不重要的一点是,该建议包括一个 Protect your credential(保护您的凭证)按钮,让我可以快速跳转到 Amazon Secrets Manager 控制台,并使用正确的名称和值创建一个新密钥。

e316f93aba7336d3d255c5060888e40a.png

我将删除源代码中的纯文本密钥,然后更新我的应用程序以从 Amazon Secrets Manager 获取密钥值。在许多情况下,您可以保留当前的配置结构,并使用现有参数来存储密钥名称,但不存储密钥值。

fa5477ae1a7c13dec097d6152602c858.png

安全存储好密钥后,Amazon Secrets Manager 还会为我提供可以使用 Amazon SDK  https://aws.amazon.com/tools/ 以多种编程语言获取我的新密钥的代码片段。这些代码段包含了必要的Amazon SDK 调用,以及错误处理、解密和解码逻辑,从而为我节省了时间。

92c123ede837f5967ce51b8fb7c5564d.png

前面我演示了如何运行完整的存储库分析,当然也可以对每个新的拉取请求持续执行相同的分析,以帮助防止未来出现密钥硬编码和其他问题。

Amazon CodeGuru Reviewer 

现在支持此功能

Amazon CodeGuru Reviewer 密钥检测器功能已在所有提供Amazon CodeGuru Reviewer 的区域开放,无需额外付费。

如果您是Amazon CodeGuru Reviewer 新用户,则可以免费试用 90 天,使用不超过 10 万行代码的存储库。无论您的代码是托管在 Amazon CodeCommit https://aws.amazon.com/codecommit/ 、BitBucket 还是 GitHub 上,都可在几分钟内连接到存储库并开始完整扫描。如果您使用的是 GitHub,还可以参阅 GitHub 操作集成(请扫描下发二维码获取内容)。

2fde0063bf58f92352b1505e64c75ff7.png

有关密钥检测器功能的更多信息,请参阅技术文档(请扫描下方二维码获取内容)。

fe755412d79076e55d46d4ab34ec0bcc.png

本篇作者

5a110d09d1eb041031401d930bd78945.png

Alex Casalboni

高级软件工程师 &云布道者

Alex是亚马逊云科技的布道师,对网络技术和音乐充满热情。自2011年以来,他一直在开发网络产品,并用他的经验帮助其他开发者学习。他对编码的热爱遍及Python和JavaScript社区,他喜欢为开源项目做贡献,比如Amazon Lambda Power Tuning。

f950be67bf22abb9e232336960ad0aba.gif

5c8979d380f44ac1728a543e838e5b8e.gif

听说,点完下面4个按钮

就不会碰到bug了!

791f712d54f4a8040c53be8208404225.gif

这篇关于Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291463

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与