如何查询AWS中曾挂载到指定实例的已分离EBS卷?
AWS EBS卷挂载分离历史查询方案
AWS原生支持查询EBS卷的挂载、分离操作记录,你可以通过以下两种方式获取曾挂载在目标EC2实例上的EBS卷明细:
1. CloudTrail事件查询(推荐,可查全量历史操作)
CloudTrail会默认记录你AWS账户内90天内的所有API操作,如果你提前配置了自定义跟踪将事件存储到S3,最长可保留7年的操作记录。
- 如果你已知目标EC2实例ID,可直接筛选该实例关联的
DetachVolume事件,即可获取所有从该实例分离的EBS卷ID,CLI查询命令参考:aws cloudtrail lookup-events \ --lookup-attributes AttributeKey=ResourceName,AttributeValue=替换为你的EC2实例ID \ --start-time 替换为分离操作的大致开始时间,格式如2023-01-01 \ --end-time 替换为分离操作的大致结束时间 \ --query "Events[?EventName=='DetachVolume'].CloudTrailEvent" \ --output text | jq '.requestParameters.volumeId' - 如果要查询单块EBS卷的分离历史,将上述命令中的AttributeValue替换为EBS卷ID即可。
2. EBS卷属性查询(仅支持查最近一次挂载记录)
如果你的分离操作发生在90天内,或者你仅需要确认卷最近一次挂载的实例,可以直接查询EBS卷的自带属性:
- 控制台操作路径:EC2控制台→左侧菜单「弹性块存储」→「卷」→点击目标卷→详情页的最近挂载字段会显示最近一次挂载的实例ID、挂载点信息。
- CLI查询命令参考:
若卷当前未挂载,返回结果会保留最近一次挂载的关联信息。aws ec2 describe-volumes --volume-ids 替换为EBS卷ID --query "Volumes[].Attachments"
注意:如果分离操作发生在CloudTrail默认90天保留周期之前,且你没有提前配置自定义跟踪持久化事件,那么更早的操作记录无法查询。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

