• 프로필사진
    Home
  • Portfolio
  • github [#ffffff] Created with Sketch.
    Github
  • linkedin
    Linkedin
  • Setting
  • Posting
    • 분류 전체보기 (105)
      • Aws (96)
      • Backend (3)
      • Extension (1)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Config를 이용해서 Ec2-SecurityGroup REVOKE
        2024년 12월 27일
        • wngnl05
        • 작성자
        • 2024.12.27.:59

        Config 만들때 전체 보안그룹 이벤트 확인

         

        람다에 Config가 접근할 수 있도록 권한 추가하기

        aws lambda add-permission --function-name <람다 이름> --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com

         

         

        Python Code

        더보기
        import json
        import boto3
        from datetime import datetime
        
        ec2 = boto3.resource('ec2')
        
        def lambda_handler(event, context):
            instance_name = "wsi-test"
            inbound_ports = [22, 80, 3306]
            outbound_ports = [22, 80, 443]
            
            instances = ec2.instances.filter(Filters=[{'Name': 'tag:Name', 'Values': [instance_name]}])
            for instance in instances:
                instance_id = instance.id
                security_groups = instance.security_groups
                for sg in security_groups:
                    security_group = ec2.SecurityGroup(sg['GroupId'])
                    
                    # 인바운드 규칙 삭제
                    ingress_permissions = security_group.ip_permissions
                    for permission in ingress_permissions:
                        if 'FromPort' in permission and permission['FromPort'] not in inbound_ports:
                            security_group.revoke_ingress(
                                IpPermissions=[permission]
                            )
                        else:
                            pass
                            
                    # 아웃바운드 규칙 삭제
                    egress_permissions = security_group.ip_permissions_egress
                    for permission in egress_permissions:
                        if 'FromPort' in permission and permission['FromPort'] not in outbound_ports:
                            security_group.revoke_egress(
                                IpPermissions=[permission]
                            )
                        else:
                            pass
                            
                    # 인바운드 규칙 추가
                    for port in inbound_ports:
                        try:
                            security_group.authorize_ingress(
                                IpPermissions=[{'IpProtocol': 'tcp', 'FromPort': port, 'ToPort': port, 'IpRanges': [{'CidrIp': '0.0.0.0/0'}]}]
                            )
                        except Exception as e:
                            pass
                    
                    # 아웃바운드 규칙 추가
                    for port in outbound_ports:
                        try:
                            security_group.authorize_egress(
                                IpPermissions=[{'IpProtocol': 'tcp', 'FromPort': port, 'ToPort': port, 'IpRanges': [{'CidrIp': '0.0.0.0/0'}]}]
                            )
                        except Exception as e:
                            pass
                    print(f"Security group rules updated for {sg['GroupId']}")

         

         

         

         

         

         

         

        저작자표시 비영리 변경금지 (새창열림)

        'Aws' 카테고리의 다른 글

        S3에 개체가 생성되면 SQS로 메시지 보내기  (0) 2024.12.27
        ApiGateway Post 에 특정한 문자 들어있으면 오류 발생시키기  (0) 2024.12.27
        Eks Nginx Ingress Controller 설치하기  (0) 2024.12.27
        Codecommit 에 Dockerfile을 위치하지 않고 Docker 배포하기  (0) 2024.12.27
        CloudWatch 로그 그룹에 지표 필터 사용하기  (0) 2024.12.27
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바