33from spaceone .core .manager import BaseManager
44from spaceone .monitoring .conf .monitoring_conf import *
55from spaceone .monitoring .connector .cloudtrail_connector import CloudTrailConnector
6+ from spaceone .monitoring .connector .ec2_connector import EC2Connector
67from spaceone .monitoring .model .log_model import Log , Event
78
89_LOGGER = logging .getLogger (__name__ )
@@ -20,6 +21,13 @@ def list_logs(self, params):
2021 event_vos = self .set_events (events , keyword , resource_type )
2122 yield Log ({'results' : event_vos })
2223
24+ def list_regions (self , params ):
25+ ec2_connector : EC2Connector = self .locator .get_connector ('EC2Connector' , ** params )
26+ ec2_connector .set_client ('us-east-1' )
27+
28+ regions_info = ec2_connector .describe_regions ()
29+ return [region_info .get ('RegionName' ) for region_info in regions_info if region_info .get ('RegionName' )]
30+
2331 def lookup_events (self , params ):
2432 events = []
2533
@@ -33,6 +41,8 @@ def lookup_events(self, params):
3341 events .extend (_events )
3442
3543 if resource_type == 'AWS::IAM::User' :
44+ region_names = self .list_regions (params )
45+
3646 console_login_target_user_name = ''
3747 iam_user_params = copy .deepcopy (params )
3848 iam_user_params ['query' ]['LookupAttributes' ] = \
@@ -42,10 +52,12 @@ def lookup_events(self, params):
4252 if _lookup_attr :
4353 console_login_target_user_name = _lookup_attr [0 ].get ('AttributeValue' , '' )
4454
45- for iam_user_events in cloudtrail_connector .lookup_events (iam_user_params ):
46- for _user_event in iam_user_events :
47- if _user_event .get ('Username' ) == console_login_target_user_name :
48- events .append (_user_event )
55+ for region_name in region_names :
56+ cloudtrail_connector .set_client (region_name )
57+ for iam_user_events in cloudtrail_connector .lookup_events (iam_user_params ):
58+ for _user_event in iam_user_events :
59+ if _user_event .get ('Username' ) == console_login_target_user_name :
60+ events .append (_user_event )
4961
5062 events = sorted (events , key = lambda event : event .get ('EventTime' ))
5163
0 commit comments