跨账户统计EC2实例数量

Count the number of EC2 instances cross-account

我需要创建一个 python lambda 函数来检查一组条件。 其中之一是计算来自另一个 aws 帐户的具有特定名称的 运行 ec2 实例的数量。

我搜索了 Whosebug 并找到了类似的东西,但这应该只计算来自相同 account/region.

的实例
def ec2(event, context):
ec2_resource = boto3.resource('ec2')
instances = [instance.state['Name'] for instance in ec2_resource.instances.all()]
ec2_running_instances = instances.count('running')
print(ec2_running_instances)

您不能直接从您的帐户执行此操作。您必须承担在第二个账户中创建的 IAM 角色,并具有描述实例的权限。请检查:Delegate access across AWS accounts using IAM roles .

角色存在后,您必须使用 boto3 的 assume_role to assume the role, get temporary aws credentials, and then create new boto3 session 和该凭据。