[AWS][CFn]GuardDuty 설정

소개



처음 뵙겠습니다. 친숙합니다.
클래스 메소드 씨의 블로그 기사, AWS 계정을 만들면 먼저 해야 할 일 ~영화 원년판~ 를 참고로 하겠습니다.
이번에는 "GuardDuty 활성화"를 CloudFormation에서 실시합니다. GuardDuty 자체에 관해서는 어딘가에서 기사를 써 가려고 생각합니다.
※CloudFormation이란 무엇인가를 어느 정도 이해하고 있는 사람용이 되어 버린다고 생각하므로 그 점은 양해 바랍니다.

전제



샘플 코드에서 실행하는 것은 다음과 같습니다.
  • GuardDuty 사용
  • SNS 만들기 (이번에는 이메일 알림)
  • GuardDuty에서 이벤트를 감지하면 Cloudwatch 이벤트를 사용하여 SNS에 알립니다.

    샘플 코드


    ---
    AWSTemplateFormatVersion: 2010-09-09
    Description: GuardDuty
    
    #------------------------------
    # Parameters: Your resource list
    #------------------------------
    Parameters:
      EMailAddress: # スタック作成時に任意のメールアドレスを指定してください。
        Type: String
        Description: Specifies your E-Mail for notify GuardDutyAlert.
    
    #------------------------------
    # Resources: Your resource list
    #------------------------------
    Resources:
      # GuardDutyを有効にする
      GuardDuty:
        Type: AWS::GuardDuty::Detector
        Properties:
          Enable: true
    
      # SNSを作成する(今回はメール通知)
      ## Topic
      SNSTopic:
        Type: AWS::SNS::Topic
        Properties:
          TopicName: GuardDutyTopic #任意の名前に変更してください
          Subscription:
          - Endpoint: !Ref EMailAddress
            Protocol: email
    
      ## Topic Policy
      SNSTopicPolicy:
        Type: AWS::SNS::TopicPolicy
        Properties:
          PolicyDocument:
            Id: default_policy_ID
            Version: 2012-10-17
            Statement:
            - Sid: default_statement_ID
              Effect: Allow
              Principal:
                AWS: "*"
              Action:
              - SNS:GetTopicAttributes
              - SNS:SetTopicAttributes
              - SNS:AddPermission
              - SNS:RemovePermission
              - SNS:DeleteTopic
              - SNS:Subscribe
              - SNS:ListSubscriptionsByTopic
              - SNS:Publish
              - SNS:Receive
              Resource: !Ref SNSTopic
              Condition:
                StringEquals:
                  AWS:SourceOwner: !Ref AWS::AccountId
            - Sid: AWSEvents_AlertGuardDutyFindings_Id123
              Effect: Allow
              Principal:
                Service:
                - events.amazonaws.com
              Action: sns:Publish
              Resource: !Ref SNSTopic
          Topics:
          - !Ref SNSTopic
    
      # GuardDutyでイベントを検知した時にCloudwatchイベントを使用してSNSに通知する
      ## Cloudwatch Rule for GuardDuty
      GuardDutyCWEventRule:
        Type: AWS::Events::Rule
        Properties:
          Name: AlertGuardDutyFindings
          Description: Alert to SNS topic when find threats by GuardDuty
          EventPattern: {
                          "source": [
                            "aws.guardduty"
                          ],
                          "detail-type": [
                            "GuardDuty Finding"
                          ]
                        }
          Targets:
          - Arn: !Ref SNSTopic
            Id: Id123
    

    실행 결과



    위 템플릿을 사용하여 스택을 만든 결과입니다.
    처음의 경우는 GUI로부터 확인하는 것이 알기 쉽기 때문에, 결과는 GUI로 확인합니다.
  • GuardDuty
  • SNSTopic
  • GuardDutyCWEventRule

  • 요약



    이번에는 CloudFormation에서 GuardDuty를 활성화하겠습니다.
    GuardDuty는 1 클릭으로 할 수 있으므로 정직 CloudFormation으로 만들지 않아도 좋을지도 모릅니다만, 통지의 설정을 하지 않으면 뭔가 있어도 통지가 오지 않기 때문에, 거기까지를 정리해 실시하도록(듯이) 템플릿으로 했습니다 .
    뭔가 도움이되면 다행입니다.

    좋은 웹페이지 즐겨찾기