If you only need access to the CloudWatch events/logs you can enable cross account access allowing you to run everything from a monitoring account (recommended for better security) or your master account.
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html
If you need access to each account you will need to do the following:
- Create IAM role in each account that can be assumed by Lambda in the master account
- In your lambda your main loop would look something like this. 
 
for accountId in <list of accounts>
  for region in <region list>
     awsConfig = getAssumeRoleCredtionals(accountId, region)  // This is an AWS.Config
     ec2 = new AWS.EC2(awsConfig)
     results = ec2.describeInstances()
  end for
end for