-
[ AWS ] boto3를 이용한 보안그룹 Any 점검AWS Infra 2022. 2. 20. 04:12
AWS 인프라를 관리하면서, EC2의 보안그룹을 정기적으로 점검해야 할 필요가 있어
AWS Boto3를 이용하여 간단히 구현해 보려 한다.
보안그룹이 많아지면, 콘솔창으로는 점검하는 시간 소요는 얼마나 아까운지 모르겠다.
간단한 예로, 인바운드 Any로 오픈된 포트를 점검해보려한다.
IAM 권한은 최소화의 원칙에 맞게 EC2ReadOnlyAccess 권한만 부여하자.
보안점검으로 소스주소 0.0.0.0/0을 기준으로 점검하였지만, 키 값을 이용하여 활용하면 될 것이다.
import boto3 from botocore.exceptions import ClientError ec2 = boto3.client('ec2') def sg_check(): response = ec2.describe_security_groups()['SecurityGroups'] for i in response: sgid = i['GroupId'] for j in i['IpPermissions']: try: port = 'ANY' if j['FromPort'] == -1 else j['FromPort'] protocol = j['IpProtocol'] ipaddr = j['IpRanges'][0]['CidrIp'] if ipaddr == '0.0.0.0/0': print('sgid : %s, port : %s, protocol : %s, ipaddr : %s' %(sgid,port,protocol,ipaddr)) except: pass if __name__ == "__main__": sg_check()
검출이 되면 아래와 같은 형태로 출력이 되는데, 많은 시간을 세이프 하였다.
'AWS Infra' 카테고리의 다른 글
[ AWS ] EC2 인스턴스 Type 변경후 재시작 (0) 2022.03.16 [ AWS CLI ] describe-subnets (0) 2022.03.14 [ AWS ] S3 전송시 성능 조정 옵션 (max_concurrent_requests - CPU 스레드 조정) (0) 2022.02.28 [ AWS ] Amazon-Linux EC2 인증키 변경 (로그인 상태) (0) 2022.02.26 [ AWS ] AWS Transfer Family (Serverless SFTP) 구축 (0) 2022.02.13 [ AWS ] Amazon Linux 2에 python 3.8 설치 (0) 2022.02.02 [ AWS ] EC2 Linux root 로그인 허용 (0) 2022.02.02 [ AWS ] S3 Bucket policy (0) 2021.12.03