describe_volumes()
уже возвращает необходимую информацию в 'Attachments'
. Чтобы распечатать все тома, вам нужно будет запросить все регионы и обработать нумерацию страниц.
import boto3
import botocore.exceptions
session = boto3.Session()
for region in session.get_available_regions('ec2'):
print(region)
try:
ec2 = session.client('ec2', region_name=region)
for res in ec2.get_paginator('describe_volumes').paginate(Filters=[{'Name': 'status', 'Values': ['in-use']}]):
for volume in res['Volumes']:
for attachment in volume['Attachments']:
print(attachment['InstanceId'], attachment['VolumeId'])
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == 'AuthFailure':
print('No access to', region)
else:
raise