新闻中心

  • 首页 i(name IAM 访问分析器更新:扩展自定义策略检查与引导撤销 新闻博客

IAM 访问分析器更新:扩展自定义策略检查与引导撤销 新闻博客

2026-01-27 12:04:04

IAM Access Analyzer 更新:扩展自定义策略检查与引导撤销

关键要点

IAM Access Analyzer 增强了自定义策略检查功能,提供了引导撤销的支持。新的自定义策略检查能够自动检测赋予特定 AWS 资源访问权限的策略。引导撤销功能为开发人员提供了清理未使用权限的指导。

在今天的更新中,我们对 IAM Access Analyzer 进行了增强,扩展了自定义策略检查功能,并提供了更易于访问的指导,帮助您优化 IAM 策略。此次推出的两个新功能基于在 reInvent 2023 上发布的 自定义策略检查和未使用访问分析。以下是我们的新发布内容:

新的自定义策略检查

新的策略检查利用自动推理的能力,帮助您发现授予特定关键 AWS 资源访问权限的策略,或授予任何类型公共访问的策略。这两个检查旨在在部署前使用,可能作为 CI/CD 管道的一部分,帮助您主动发现不符合组织安全标准和政策的更新。

引导撤销功能

IAM Access Analyzer 现在为您提供指导,以便您可以与开发人员分享这些信息,以撤销那些不再需要的访问权限。这包括未使用的角色、未使用权限的角色、未使用的 IAM 用户访问密钥以及未使用的 IAM 用户密码。这些指导包括删除多余项目或用更严格的项目替换它们所需的步骤。

新的自定义策略检查

新的策略检查可以通过命令行或调用 API 功能来触发。这些检查会检查在请求中提供的策略文档,并返回 PASS 或 FAIL 值。在这两种情况下,PASS 表示策略文档正确拒绝了给定访问权限,而 FAIL 则表示该策略可能允许某些或所有权限。以下是新的检查内容:

检查无公共访问

此检查适用于资源策略,检查该策略是否授予特定资源类型的公共访问权限。例如,您可以检查一个政策,查看它是否允许对 S3 存储桶的公共访问,方法是指定资源类型 AWSS3Bucket。有效的资源类型包括 DynamoDB 表和流、EFS 文件系统、OpenSearch 域、Kinesis 流及其流消费者、KMS 密钥、Lambda 函数、S3 存储桶和访问点、 Glacier、Secrets Manager 秘密、SNS 主题和队列,以及假设角色的 IAM 策略文档。有效资源类型的列表将随着时间的推移而扩展,详细信息可以在 CheckNoPublicAccess 文档中找到。

假设我有一个策略意外地赋予了公共访问权限给一个 Amazon Simple Queue Service (Amazon SQS) 队列。我会这样检查:

飞机专用加速器免费版

bash aws accessanalyzer checknopublicaccess policydocument file//resourcejson resourcetype AWSSQSQueue output json

返回结果如下:

json{ result FAIL message 资源策略对给定资源类型授予了公共访问权限。 reasons [ { description 在以下语句中授予公共访问权限,sid SqsResourcePolicy。 statementIndex 0 statementId SqsResourcePolicy } ]}

我编辑策略以删除访问授权并再次尝试,这次检查通过:

json{ result PASS message 资源策略不对给定资源类型授予公共访问权限。}

检查未授予访问权限

此检查一次操作一个资源策略或身份策略。它还接受可被视作 IAM 策略的一部分的操作和资源列表。此检查查看策略是否对列表中任何资源批准了不应有的访问权限。例如,可以使用此检查确保某策略不允许删除关键的 CloudTrail 路径:

bash aws accessanalyzer checkaccessnotgranted policydocument file//ctjson access resources=arnawscloudtrailuseast1123456789012trail/MySensitiveTrail policytype IDENTITYPOLICY output json

IAM Access Analyzer 表明检查失败:

json{ result FAIL message 策略文档授予对一个或多个列出的动作或资源的访问权限。 reasons [ { description 在索引为 0 的语句中列出的一个或多个动作或资源。 statementIndex 0 } ]}

IAM 访问分析器更新:扩展自定义策略检查与引导撤销 新闻博客

我修复了策略并再次尝试,这次检查通过,表明策略没有对列出的资源授予访问权限:

json{ result PASS message 策略文档不会授予对列出的动作或资源的访问权限。}

引导撤销功能

在我之前的帖子中,我向您展示了 IAM Access Analyzer 如何发现并列出授予不必要访问权限的 IAM 项目。今天的发布使您现在可以获得帮助,以帮助您或您的开发团队解决这些发现。以下是我 AWS 帐户中的最新发现:

其中一些是我在获得访问某项服务的早期权限时留下的,方便我使用并进行博客更新;而其他则是由我作为云管理员的一般无能造成的!无论如何,我需要清理这些。让我们从第二项开始,未使用的访问密钥。我点击该项目,可以看到底部的新 推荐 部分:

我可以按照步骤删除访问密钥,或者我可以点击 存档 来将此发现从活动发现列表中移除,并加入存档列表。我还可以创建存档规则,以便在将来对类似发现进行相同处理。类似的推荐也适用于未使用的 IAM 用户、IAM 角色和密码。

现在,让我们查看一下 未使用的权限 的发现:

推荐的措施是用新策略替换现有策略。我可以并排预览新策略与现有策略:

如同第一个示例,我可以按照步骤操作或者将发现归档。

这些发现和推荐也可以通过命令行访问。我通过指定分析器和其中的发现来生成推荐:

bash aws accessanalyzer generatefindingrecommendation analyzerarn arnawsaccessanalyzerbetauswest2123456789012analyzer/MyAnalyzer id 67110f3e05a14562b6c24b009e67c38e

然后我获取推荐。在这个示例中,我滤除了输出,只显示步骤,因为整个 JSON 输出非常丰富:

bash aws accessanalyzer getfindingrecommendation analyzerarn arnawsaccessanalyzerbetauswest2123456789012analyzer/MyAnalyzer id 67110f3e05a14562b6c24b009e67c38e output json jq recommendedSteps[]unusedPermissionsRecommendedSteprecommendedActionCREATEPOLICYDETACHPOLICY

您可以使用这些命令或等效的 API 调用将推荐集成到您自己的工具和系统中。

现已推出

新的检查和解决步骤现在已在所有公共 AWS 区域上线,您可以立即开始使用!

Jeff

Jeff Barr

Jeff Barr 是 AWS 的首席布道者。他自2004年开始写这个博客,并几乎不间断地发布文章。