使用 IAM 访问分析器建议来优化未使用的访问权限 安全博客
利用 IAM Access Analyzer 优化未使用的访问权限
关键要点
利用 AWS IAM Access Analyzer 提供的建议,有效管理组织的安全性,确保团队遵循最小权限原则。学习如何生成未使用权限的建议,并采取相应的修复措施。通过控制台、AWS CLI 和 API 三种方式获得未使用权限的分析结果和建议。作为安全团队的负责人,您的目标是大规模地管理组织的安全,并确保您的团队遵循 AWS 身份和访问管理IAM 的 安全最佳实践,如最小权限原则。随着开发人员在 AWS 上构建应用,您需要对组织内的权限有可视化的监控,以确保各个团队仅具备必需的访问权限。目前,AWS 身份访问管理分析器Access Analyzer 提供了可分享给开发人员的建议和可操作的指导,帮助您迅速优化未使用的访问权限。
在本篇文章中,我们将展示如何使用 IAM Access Analyzer 的建议来精炼未使用的访问权限。我们将重点关注未使用权限的建议,展示如何生成推荐并采取相应的行动。例如,我们将说明如何过滤未使用权限的发现、生成推荐以及如何修复问题。借助 IAM Access Analyzer,您可以获得帮助开发人员快速优化未使用权限的逐步建议。
未使用权限的建议
IAM Access Analyzer 持续分析您的账户,以识别未使用的访问权限,并将发现结果整合到一个中央控制台中。该控制台帮助您回顾发现结果,并根据发现量优先考虑账户。发现结果突显了未使用的 IAM 角色、未使用的访问密钥和 IAM 用户的密码。对于活动的 IAM 角色和用户,发现结果提供了未使用的服务和操作的可见度。您可以通过 IAM Access Analyzer 文档 了解有关未使用访问权限分析的更多信息。
对于未使用的 IAM 角色、访问密钥和密码,IAM Access Analyzer 提供了控制台中的快捷链接,以帮助您快速删除它们。您可以利用这些快捷链接根据建议采取行动,或使用导出功能与 AWS 账户所有者分享详细信息。对于权限过于宽松的 IAM 角色和用户,IAM Access Analyzer 还提供了包含可操作步骤的策略建议,指导您优化未使用的权限。这些推荐策略保留现有策略的资源和条件上下文,帮助您逐步更新您的策略。
在本篇文章中,我们将通过为 AWS 账户配置 IAM 角色来演示权限配置的步骤:
附加 AWS 托管策略 AmazonBedrockReadOnly。附加 AWS 托管策略 AmazonS3ReadOnlyAccess。嵌入描述以下权限的内联策略,并命名为 InlinePolicyListLambda。内联策略 InlinePolicyListLambda 的内容如下:
json{ Version 20121017 Statement [ { Sid InlinePolicyLambda Effect Allow Action [ lambdaListFunctions lambdaListLayers lambdaListAliases lambdaListFunctionUrlConfigs ] Resource Condition { NotIpAddress { awsSourceIp 1100150200/32 } } } ]}
我们使用 内联策略 来演示 IAM Access Analyzer 的未使用访问建议如何适用于该用例。这些建议同样适用于 AWS 托管策略和客户管理策略。
在您的 AWS 账户中,当您配置好未使用的访问分析器后,您可以选择最近使用的 IAM 角色,查看是否有未使用的访问权限发现和建议。
前提条件
在开始之前,您必须为您的组织或账户创建一个未使用的访问分析器。请按照 IAM Access Analyzer 简化未使用访问权限检查 中的说明来创建未使用访问分析器。
免费加速器安卓版生成未使用权限的建议
在本篇文章中,我们将探讨通过控制台、AWS CLI 和 AWS API 三种选项来生成 IAM Access Analyzer 未使用权限发现的建议。
使用控制台生成未使用权限的建议
在根据前提条件创建未使用的访问分析器后,请等待几分钟以查看分析结果。然后使用 AWS 管理控制台 查看未使用权限的建议。
列出未使用权限的发现访问 IAM 控制台,在访问分析器下选择 未使用访问。在搜索框中查找类型为 未使用权限 的活动发现。从 状态 下拉列表中选择 活动。在搜索框中选择 属性 下的 发现类型。选择 等于 作为 运算符。选择 发现类型 = 未使用权限。此列表显示具有未使用权限的 IAM 资源的活动发现。
图 1:在 IAM 控制台中筛选未使用权限
选择一个发现以了解有关特定角色或用户授予的未使用权限的更多信息。获取未使用权限的建议在发现详细信息页面,您会看到在 未使用权限 下列出的一系列未使用权限。随后会出现一个新部分,称为 推荐。该推荐部分列出了解决该发现的两个步骤:审查资源上的现有权限。创建具有建议的精简权限的新策略,并卸载现有策略。图 2:推荐部分
建议生成是按需进行的,并在使用控制台时在后台完成。消息 分析进行中 表示正在生成建议。建议在推荐政策中排除了未使用的操作。当一个 IAM 实体如 IAM 角色或用户附加多个权限策略时,会对每个权限策略进行未使用权限的分析:如果没有使用的权限,推荐的操作是卸载现有的权限策略。如果使用了一些权限,则在推荐策略中仅保留已使用的权限,从而帮助您实行最小权限原则。在 推荐策略 列中,将为每个现有策略呈现建议。该示例中的现有策略是:AmazonBedrockReadOnlyAmazonS3ReadOnlyAccessInlinePolicyListLambda建议的策略是:
无AmazonS3ReadOnlyAccess推荐InlinePolicyListLambda推荐图 3:推荐策略
对于 AmazonBedrockReadOnly 没有推荐的策略,因为推荐的操作是卸载它。当将鼠标悬停在 无 上时,将显示以下消息:没有为现有权限策略创建推荐策略。AmazonS3ReadOnlyAccess 和 InlinePolicyListLambda 及其关联的推荐策略可以通过选择 预览策略 来查看。预览推荐策略IAM Access Analyzer 已根据未使用的操作提出了两项推荐策略。
要预览每个推荐策略,请选择该策略的 预览策略 以查看现有权限与推荐权限之间的比较。选择 预览策略 以查看 AmazonS3ReadOnlyAccess推荐。 现有策略已被分析,广泛的权限s3Get 和 s3List 已被缩小为推荐策略中的详细权限。权限 s3Describe、s3objectlambdaGet 和 s3objectlambdaList 可以被移除,因为它们没有被使用。图 4:AmazonS3ReadOnlyAccess 推荐策略的预览
选择 预览策略 以查看 InlinePolicyListLambda推荐,以比较现有内联策略 InlinePolicyListLambda 和其推荐版本。 推荐策略中保留了现有的权限 lambdaListFunctions 和 lambdaListLayers 以及现有条件。权限 lambdaListAliases 和 lambdaListFunctionUrlConfigs 可以被移除,因为它们没有被使用。图 5:预览现有内联策略 InlinePolicyListLambda 的推荐策略
下载推荐策略文件选择 下载 JSON 以将建议的推荐下载到本地。图 6:下载推荐策略
将下载一个包含推荐策略的 JSON 格式的 zip 文件。图 7:下载的推荐策略为 JSON 文件
AmazonS3ReadOnlyAccessrecommended120240722T20/08/44793Zjson 文件的内容与图 4 显示的推荐策略相同。使用 AWS CLI 生成未使用权限的建议
在本节中,您将看到如何使用 AWS 命令行界面AWS CLI 生成未使用权限的建议。
列出未使用权限的发现使用以下代码,通过在未使用权限类型上进行筛选,选择 活动 发现来精炼结果。复制未使用访问分析器的 Amazon 资源名称ARN,并在以下代码中替换 ARN:bashaws accessanalyzer listfindingsv2 analyzerarn arnawsaccessanalyzerltregiongtlt123456789012gtanalyzer/ltanalyzernamegt region ltregiongt filter {findingType {eq [UnusedPermission]} status {eq [ACTIVE]}}
您将获得类似以下的结果。json{ findings [ { analyzedAt 20240529T0725340000 createdAt 20240523T1920590000 id 0fa3f5a1bd9241938ca4aba12cd91370 resource arnawsiam123456789012user/demoIAMUser resourceType AWSIAMUser resourceOwnerAccount 123456789012 status ACTIVE updatedAt 20240529T0725350000 findingType UnusedPermission } { analyzedAt 20240529T0725340000 createdAt 20240523T1920590000 id 1e952245bcf348ada708afa460df794b resource arnawsiam123456789012role/demoIAMRole resourceType AWSIAMRole resourceOwnerAccount 123456789012 status ACTIVE updatedAt 20240529T0725370000 findingType UnusedPermission } ]}
生成未使用权限发现的建议在获得了未使用权限的发现列表后,您可以生成发现建议。
运行以下命令,替换分析器 ARN 和发现 ID 以生成建议的推荐。bashaws accessanalyzer generatefindingrecommendation analyzerarn arnawsaccessanalyzerltregiongtlt123456789012gtanalyzer/ltanalyzernamegt region ltregiongt id ab123456bcd078aba012afa460df794b
如果您的命令成功运行,您将获得一个 空 响应。此过程在后台运行。获取生成的建议在建议生成后,您需要进行一次单独的 API 调用以查看建议的详细信息。
以下命令返回推荐的修复。bashaws accessanalyzer getfindingrecommendation analyzerarn arnawsaccessanalyzerltregiongtlt123456789012gtanalyzer/ltanalyzernamegt region ltregiongt id ab123456bcd078aba012afa460df794b
此命令提供以下结果。有关推荐含义和结构的更多信息,请参见本篇文章后续部分的推荐结构。注意 推荐内容考虑了 AWS 托管策略、客户管理策略和内联策略。如果与作用相关的操作被使用,则初始策略中的 IAM 条件将保留在建议中。
建议的修复步骤如下:
卸载 AmazonBedrockReadOnly 策略,因为它未使用: DETACHPOLICY创建一个新的推荐政策,并从托管策略 AmazonS3ReadOnlyAccess 中缩减权限: CREATEPOLICY卸载 AmazonS3ReadOnlyAccess 策略: DETACHPOLICY嵌入一个新的推荐政策,并从内联策略中缩减权限: CREATEPOLICY删除内联策略。json{ recommendedSteps [ { unusedPermissionsRecommendedStep { policyUpdatedAt 20231206T1548190000 recommendedAction DETACHPOLICY existingPolicyId arnawsiamawspolicy/AmazonBedrockReadOnly } } { unusedPermissionsRecommendedStep { policyUpdatedAt 20230810T2131390000 recommendedAction CREATEPOLICY recommendedPolicy {Version20121017Statement[{EffectAllowAction[s3GetBucketObjectLockConfigurations3GetBucketOwnershipControlss3GetBucketTaggings3GetBucketVersionings3GetJobTaggings3GetObjects3GetObjectAcls3GetObjectLegalHolds3GetObjectRetentions3GetObjectTaggings3GetObjectTorrents3Get
利用 Amazon Bedrock 和 Amazon Neptune 揭示非结构化金融数据中的隐藏连
利用 Amazon Bedrock 和 Amazon Neptune 发掘非结构化金融数据中的隐藏连接关键要点投资组合经理需要密切关注投资公司的动态,以辨别风险与机会。通过结合知识图谱和生成式人工智能,能够自动检测供应商等相关方的间接影响。使用 Amazon Neptune 和 Amazon Bed...
使用 Amazon SageMaker JumpStart 实现大规模文本嵌入和句子相似性检索 机器
大规模文本嵌入与句子相似性检索关键要点在本文中,我们介绍了如何利用 Amazon SageMaker JumpStart 来进行文本嵌入和句子相似性检索。通过使用大型语言模型LLMs,生成文本的向量表示,应用于相似性搜索、信息检索、推荐系统等场景。此外,SageMaker JumpStart 提供了...