Skip to content

Commit 8599e9f

Browse files
committed
feat: update for AccessKey event
1 parent 78701bb commit 8599e9f

1 file changed

Lines changed: 33 additions & 19 deletions

File tree

src/spaceone/monitoring/manager/monitoring_manager.py

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import copy
21
import logging
32
from spaceone.core.manager import BaseManager
43
from spaceone.monitoring.conf.monitoring_conf import *
@@ -41,25 +40,10 @@ def lookup_events(self, params):
4140
events.extend(_events)
4241

4342
if resource_type == 'AWS::IAM::User':
44-
region_names = self.list_regions(params)
43+
events.extend(self.get_events_iam_user(params))
4544

46-
console_login_target_user_name = ''
47-
iam_user_params = copy.deepcopy(params)
48-
iam_user_params['query']['LookupAttributes'] = \
49-
[{'AttributeKey': 'EventSource', 'AttributeValue': 'signin.amazonaws.com'}]
50-
51-
_lookup_attr = params.get('query', {}).get('LookupAttributes', [])
52-
if _lookup_attr:
53-
console_login_target_user_name = _lookup_attr[0].get('AttributeValue', '')
54-
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)
61-
62-
events = sorted(events, key=lambda event: event.get('EventTime'), reverse=True)
45+
if resource_type == 'AWS::IAM::AccessKey':
46+
events.extend(self.get_events_iam_access_key(params))
6347

6448
return [events]
6549

@@ -78,6 +62,36 @@ def set_events(self, events, keyword, resource_type):
7862

7963
return event_vos
8064

65+
def get_events_iam_user(self, params):
66+
events = []
67+
68+
cloudtrail_connector: CloudTrailConnector = self.locator.get_connector('CloudTrailConnector', **params)
69+
region_names = self.list_regions(params)
70+
71+
console_login_target_user_name = ''
72+
73+
for region_name in region_names:
74+
cloudtrail_connector.set_client(region_name)
75+
for iam_user_events in cloudtrail_connector.lookup_events(params):
76+
for _user_event in iam_user_events:
77+
if _user_event.get('Username') == console_login_target_user_name:
78+
events.append(_user_event)
79+
80+
return sorted(events, key=lambda event: event.get('EventTime'), reverse=True)
81+
82+
def get_events_iam_access_key(self, params):
83+
events = []
84+
85+
cloudtrail_connector: CloudTrailConnector = self.locator.get_connector('CloudTrailConnector', **params)
86+
region_names = self.list_regions(params)
87+
88+
for region_name in region_names:
89+
cloudtrail_connector.set_client(region_name)
90+
for access_key_events in cloudtrail_connector.lookup_events(params):
91+
events.extend(access_key_events)
92+
93+
return sorted(events, key=lambda event: event.get('EventTime'), reverse=True)
94+
8195
@staticmethod
8296
def filter_resource_type(event, resource_type):
8397
if event['EventName'] in EXCLUDE_EVENT_NAME:

0 commit comments

Comments
 (0)