feat(s3_checks): add several checks for s3 (#1266)

* feat(checks): add extra718

* feat(checks): add extra763

Co-authored-by: sergargar <sergio@verica.io>
This commit is contained in:
Sergio Garcia
2022-07-25 13:45:31 -04:00
committed by GitHub
parent ed1572d2d9
commit da76f69e51
10 changed files with 257 additions and 129 deletions

View File

@@ -1,9 +1,7 @@
import threading
from config.config import aws_services_json_file
from lib.logger import logger
from lib.utils.utils import open_file, parse_json_file
from providers.aws.aws_provider import current_audit_info
from providers.aws.aws_provider import current_audit_info, generate_regional_clients
################## EC2
@@ -12,37 +10,12 @@ class EC2:
self.service = "ec2"
self.session = audit_info.audit_session
self.audited_account = audit_info.audited_account
self.regional_clients = self.__generate_regional_clients__(
self.service, audit_info
)
self.regional_clients = generate_regional_clients(self.service, audit_info)
self.__threading_call__(self.__describe_snapshots__)
def __get_session__(self):
return self.session
def __generate_regional_clients__(self, service, audit_info):
regional_clients = []
# Get json locally
f = open_file(aws_services_json_file)
data = parse_json_file(f)
json_regions = data["services"][service]["regions"][
audit_info.audited_partition
]
if audit_info.audited_regions: # Check for input aws audit_info.audited_regions
regions = list(
set(json_regions).intersection(audit_info.audited_regions)
) # Get common regions between input and json
else: # Get all regions from json of the service and partition
regions = json_regions
for region in regions:
regional_client = audit_info.audit_session.client(
service, region_name=region
)
regional_client.region = region
regional_clients.append(regional_client)
return regional_clients
def __threading_call__(self, call):
threads = []
for regional_client in self.regional_clients: