FEATURED · 精选文章

AWS CLI `accessanalyzer list-archive-rules` 命令实战指南:检索 IAM Access Analyzer 归档规则

发布时间 / 2026/9/13 17:28:42
来源 / 创域科博编辑部
栏目 / 资讯中心
AWS CLI `accessanalyzer list-archive-rules` 命令实战指南:检索 IAM Access Analyzer 归档规则 AWS CLIaccessanalyzer list-archive-rules命令实战指南检索 IAM Access Analyzer 归档规则【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文聚焦 AWS CLI 中aws accessanalyzer list-archive-rules命令的完整用法说明如何按分析器analyzer检索账户内已创建的归档规则archive rule并深入解析输出 JSON 结构、筛选条件filter语义、分页参数以及底层 API 实现基于 service-2.json 与 paginators-1.json。读完本文你将能够独立运行该命令查询归档规则、读懂每条规则的过滤条件与时间戳字段并借助--max-results与--next-token完成分页遍历。一、归档规则Archive Rule与 IAM Access Analyzer 简介IAM Access Analyzer 会持续分析账户中的资源并生成外部访问发现项findings提示可能存在的非预期访问风险。当某些 finding 属于已知的、可接受的场景时直接删除会丢失审计信息此时可以通过创建**归档规则archive rule**让符合条件的 finding 自动进入归档状态archived从而减少告警噪音同时保留审计记录。归档规则与某个具体的分析器analyzer绑定。分析器分为账户级、组织级organization以及未使用访问unused access类型例如本仓库示例中反复出现的UnusedAccess-ConsoleAnalyzer-organization即是一个组织级的未使用访问分析器。list-archive-rules的作用正是列出指定分析器名下已创建的全部归档规则。在 AWS CLI 中归档规则的生命周期由一组命令共同管理本文讲解的list-archive-rules是其中的查询环节create-archive-rule.rst创建归档规则get-archive-rule.rst获取单条规则的详情update-archive-rule.rst更新规则的筛选条件delete-archive-rule.rst删除规则apply-archive-rule.rst将规则应用于已存在的 findings二、命令语法与参数说明list-archive-rules的核心语法如下aws accessanalyzer list-archive-rules \ --analyzer-name 分析器名称 \ [--max-results 整数] \ [--next-token 分页令牌]根据 service-2.json 中ListArchiveRulesRequest结构体的定义约 L3392-L3415本命令的参数语义如下参数是否必填类型说明--analyzer-name必填字符串要从中检索归档规则的分析器名称。该参数位于请求 URI 路径中对应底层 HTTP 接口GET /analyzer/{analyzerName}/archive-rule--next-token可选字符串分页令牌用于获取下一页结果当上一次响应的nextToken字段非空时使用--max-results可选整数单次请求返回的最大结果条数用于控制单页数据量从服务模型可以看到该操作是只读操作readonly: true底层对应 HTTPGET方法响应码为 200其定义位于 service-2.json。三、实战示例检索指定分析器的归档规则仓库中的示例文档 list-archive-rules.rst 给出了一个完整的调用与响应示例。假设你的账户中存在一个组织级分析器UnusedAccess-ConsoleAnalyzer-organization运行aws accessanalyzer list-archive-rules \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization返回的 JSON 输出如下{ archiveRules: [ { createdAt: 2024-02-15T00:49:2700:00, filter: { resource: { contains: [ Cognito ] }, resourceType: { eq: [ AWS::IAM::Role ] } }, ruleName: MyArchiveRule, updatedAt: 2024-02-15T00:49:2700:00 }, { createdAt: 2024-02-15T23:27:4500:00, filter: { findingType: { eq: [ UnusedIAMUserAccessKey ] } }, ruleName: ArchiveRule-56125a39-e517-4ff8-afb1-ef06f58db612, updatedAt: 2024-02-15T23:27:4500:00 } ] }上述输出中包含了该分析器名下创建的两条归档规则分别对应手动命名的规则MyArchiveRule与一个自动生成名称的规则形如ArchiveRule-UUID。输出字段逐项解读根据ListArchiveRulesResponse结构service-2.json响应体由archiveRules与可选的nextToken组成archiveRules归档规则列表必填字段。数组中的每个元素包含ruleName规则名称唯一标识该规则后续get-archive-rule、update-archive-rule、delete-archive-rule均需引用它filter规则使用的筛选条件详见下文第四节createdAt规则创建时间ISO 8601 格式如2024-02-15T00:49:2700:00updatedAt规则最近一次更新时间同样为 ISO 8601 时间戳。nextToken分页令牌可选。当结果被截断、还有更多数据时返回若为空则表示已遍历完所有规则。观察示例可以发现两条规则的createdAt与updatedAt完全一致——这是规则创建后尚未被修改过的典型表现一旦通过update-archive-rule变更筛选条件updatedAt会晚于createdAt。四、深入理解 filter归档规则的筛选条件语义归档规则的核心是filter筛选条件它决定哪些 finding 会被自动归档。示例中的第一条规则展示了两个维度filter: { resource: { contains: [Cognito] }, resourceType: { eq: [AWS::IAM::Role] } }resource键使用contains操作符含义是资源标识符包含字符串CognitoresourceType键使用eq操作符含义是资源类型等于AWS::IAM::Role。第二条规则则演示了针对 finding 类型的过滤filter: { findingType: { eq: [UnusedIAMUserAccessKey] } }从服务模型 service-2.json 中Criterion结构体的定义可以看到每个筛选键如resource、resourceType、findingType支持以下四种操作符操作符类型语义eq字符串列表等于匹配命中列表中任一值即视为匹配neq字符串列表不等于匹配contains字符串列表包含匹配字段值包含列表中任一子串即匹配exists布尔值是否存在匹配用于判断字段是否存在适用于可选属性同一filter内可组合多个筛选键多个条件之间按与AND关系生效——例如第一条规则要求资源同时满足包含 Cognito且类型为 IAM Role。这与 create-archive-rule.rst 中创建规则时所传入的--filterJSON 完全对应即在创建/更新规则时写入的 filter 结构会原样在 list/get 的输出中返回因此该命令的输出也可以作为核对规则是否符合预期的依据。五、分页max-results 与 next-token当分析器下的归档规则数量较多时单次调用可能无法返回全部结果。服务模型ListArchiveRulesRequest与分页配置paginators-1.json共同明确了分页机制请求参数中的nextToken对应响应中的nextTokeninput_token/output_tokenmaxResults为每页条数上限limit_keyarchiveRules为结果字段result_key。因此在 CLI 层面有两种分页用法方式一显式分页# 第一页每页最多返回 10 条 aws accessanalyzer list-archive-rules \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization \ --max-results 10 # 用上一页返回的 nextToken 继续取下一页 aws accessanalyzer list-archive-rules \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization \ --next-token eyJhbGciOi... \ --max-results 10方式二使用--no-paginate关闭自动分页。AWS CLI 默认会自动跟随分页令牌直至取完所有结果当希望精确控制或调试单次请求时可显式传入--no-paginate查看原始分页响应。六、异常与权限说明根据 service-2.jsonListArchiveRules可能抛出以下四种异常理解它们有助于排查问题ValidationException请求参数校验失败最常见的原因是--analyzer-name为空、格式非法或引用了不存在的分析器名称AccessDeniedException调用者缺乏执行access-analyzer:ListArchiveRules权限需要检查 IAM 策略是否授予了对应分析器资源的读取权限ThrottlingException请求频率过高触发限流可适当退避重试InternalServerException服务端内部错误通常需要稍后重试。七、与其他 archive-rule 命令的配合使用list-archive-rules的输出字段尤其是ruleName与filter可以直接复用到归档规则生命周期的其他环节核对规则详情拿到ruleName后可用 get-archive-rule.rst 中的get-archive-rule单独查询某条规则的完整定义修改规则当某条规则的筛选条件过时可用 update-archive-rule.rst 中的update-archive-rule --rule-name 名称 --filter 新条件进行更新删除规则不再需要的规则可用 delete-archive-rule.rst 中的delete-archive-rule --rule-name 名称删除批量归档存量 finding新规则默认只作用于之后产生的 finding若想让它同时处理已经存在的历史 finding可参考 apply-archive-rule.rst 使用apply-archive-rule注意该命令传入的是分析器 ARN 而非名称。八、小结aws accessanalyzer list-archive-rules是管理 IAM Access Analyzer 归档规则的只读视图通过--analyzer-name定位分析器即可一次性查看其名下所有归档规则的名称、筛选条件与创建/更新时间。结合--max-results与--next-token可以处理大规模规则集结合filter的eq/neq/contains/exists四类操作符可以准确理解每条规则的实际归档语义从而与创建、更新、删除、应用等命令构成完整的规则生命周期管理闭环。对于希望自动化审计 Access Analyzer 配置、减少误报噪音的运维与安全团队而言该命令是日常巡检与合规检查中高频使用的基础能力。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻