You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写AWS CLI查询以完整获取Inspector2检测结果的指定字段?

正确的AWS Inspector2 list-findings查询命令

要同时获取Severity、Title、Instance ID和资源类型,核心是在--query参数里正确遍历Inspector2返回的嵌套结构,同时兼容不同资源类型的字段路径差异(比如EC2实例和ECR镜像的资源细节存储路径不一样)。

可用命令示例

aws inspector2 list-findings --query 'findings[*].{Severity: findingDetails.severity, Title: findingDetails.title, InstanceId: resourceDetails.awsEc2InstanceDetails.instanceId || resourceDetails.awsEcrContainerImageDetails.repositoryUri, ResourceType: resourceType}'

参数说明

  • Severity/Title:这两个字段固定在findingDetails节点下,直接提取即可,不会因为资源类型变化而移位。
  • InstanceId:不同资源的标识字段路径不同,用||逻辑运算符覆盖多场景:
    • EC2实例取awsEc2InstanceDetails.instanceId
    • ECR镜像取awsEcrContainerImageDetails.repositoryUri
      你可以根据自己的检测场景,添加其他资源类型的路径(比如S3桶的对应字段)。
  • ResourceType:直接提取顶层的resourceType字段,能明确区分资源类型(比如AWS_EC2_INSTANCE、AWS_ECR_CONTAINER_IMAGE)。

优化空值显示

如果不想让空字段显示None,可以用字符串拼接的方式替换空值,比如把InstanceId的提取逻辑改成:

InstanceId: join('', [resourceDetails.awsEc2InstanceDetails.instanceId, resourceDetails.awsEcrContainerImageDetails.repositoryUri])

这样空值会被替换成空字符串,输出更整洁。

示例输出

执行命令后会得到结构化结果,类似:

[
    {
        "Severity": "CRITICAL",
        "Title": "CVE-2023-XXXX:  libssl高危漏洞",
        "InstanceId": "i-0123456789abcdef0",
        "ResourceType": "AWS_EC2_INSTANCE"
    },
    {
        "Severity": "HIGH",
        "Title": "CVE-2023-YYYY: Docker权限绕过风险",
        "InstanceId": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app-repo",
        "ResourceType": "AWS_ECR_CONTAINER_IMAGE"
    }
]

内容的提问来源于stack exchange,提问作者techguy101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:45:42