[AWS SNS] AWS Event 알림 수신 구성(Slack, Email)

[1] 배경

얼마 전, 신규 AWS Account를 런칭하였습니다.

안정적인 운영을 위해 aws eventlog 및 aws rds subscription 같은 중요한 Event Alert을 수신 받아야 하는데요..

AWS SNS를 구성하는 방법과 구독을 통해 원하는 수준의 알림 구성이 가능하도록 셋팅을 해보겠습니다. 주로 사용하는 Slack 과 Email 수신 방법에 관한 핸즈온 세션입니다.

[2] 작업 순서

1. AWS SNS 에서 주제(TOPIC)을 생성을 한다.

2. Email 구독 생성 > 구독 활성화 확인

3. SLACK 구독 생성 > 구독 활성화 확인

4. 정상 수신 확인 테스트 완료

[3] 작업 내용

3-1. SNS 주제 생성하기

: 먼저 원하는 (수신) 이벤트 정책을 설정한 SNS 주제가 활성화되면, Alert 을 받을 사용자의 Email 주소로 인증(Confirmation)을 받습니다. 인증이 완료되면 AWS에서 해당 구독을 통해 Alert를 발송할 수 있습니다.

  • AWS Console > Service > SNS 검색 후 Simple Notification Service 선택합니다.

  • 좌측 바 > 주제 생성 > 클릭

  • 세부정보 > 표준
  • 이름 > 자유롭게 Topic(주제) 명을 작성
  • 표 이름 >사용자가 해당 주제를 식별하기 쉽게 작성

  • 액세스 정책 > 고급(JSON 객체) > 클릭
  • JSON 편집기가 생성됩니다. 아래와 같은 Template 형태로 작성
{
  "Version": "2012-10-17",
  "Id": "__default_policy_ID",
  "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": "arn:aws:sns:<RegionId>:<AwsAccountId-12digit>:<TopicName>",
      "Condition": {
        "StringEquals": {
          "AWS:SourceOwner": "<AwsAccountId-12digit>"
        }
      }
    },
    {
      "Sid": "__console_sub_0",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:<RegionId>:<AwsAccountId-12digit>:<TopicName>"
    }
  ]
}

  • Tag Key 와 Value를 입력
  • 주제 생성 > 클릭

3-2. 구독 생성하기 (Email)

  • 일단 주제를 생성에 성공했다면 위와 같이 구독 생성 버튼을 클릭 해당 event 를 수신 받을 Email 을 생성합니다.
  • 하단 > 주제 생성 > 클릭
  • 주제 ARN 선택
  • 프로토콜 > 이메일 선택
  • 엔드포인트 > <수신 받고자 하는 이메일 주소 입력>
  • 하단 > 구독 생성 > 클릭

  • 일단 구독이 생성되면 입력한 이메일 주소의 유효성 검증 필요
  • 이메일 수신 사서함에서 amazon으로 발송된 메일 본문에서 Confirmation 링크 클릭

  • Confirmation 클릭 후 위와 같이 상태가 “확인됨” 으로 표시되면 성공
  • <주제(Topic)>의 이벤트(Eventlog)를 이메일로 수신받습니다.

3-3. 구독 생성하기 (Slack)

[사전 준비물]

1. Console Browser에 Slack workspace 를 접속 로그인을 합니다.

2. 작업 중에 Chatbot을 등록할 Slack workspace를 선택하는 절차가 있습니다.
  • AWS Service > AWS Chatbot > 클릭

  • 채팅 클라이언트 구성 > 채팅 클라이언트 > Slack > 선택

  • 클라이언트 구성 > 클릭
  • 이후 Slack workspace로 권한 부여와 관련된 페이지로 리디렉션이 됨

  • 우측 상단의 워크스페이스 > 수신 받고자 하는 워크 스페이스 선택

  • 허용 > 클릭

  • 새 채널 구성 > 클릭

  • 구성 이름 > 작성
  • Slack 채널 > 퍼블릭 (보유 중인 워크스페이스 및 채널은 Private 사용자만 초대하기 때문에 상관없음)
  • 퍼블릭 채널 이름 > 사용자 지정 채널명 입력

  • 채널 역할 > 템플릿을 사용하여 IAM 역할 생성
  • 역할 이름 > 사용자 임의 생성
  • 정책 템플릿 > 알림 권한, 읽기 전용 명령 권한 등등.. 지정 (lambda 호출은 제외하였음)

  • 채널 가이드 레일 정책 > ReadOnlyAccess
  • 알림 – 선택 사항에서 앞서 생성한 SNS 주제 > 선택
  • 하단 구성 > 클릭

  • 메시지 발송 연동이 되는 지 확인 필요
  • 생성된 워크스페이스에서 구성 클릭 > 테스트 메시지 전송

  • 성공적으로 발송됨을 확인

  • 메시지가 정상적으로 수신되었으며, 다음 이벤트 로그는 해당 Workspace 에서 지정한 Slack Channel을 통해 수신될 예정

[4] 마지막으로

  • 심심해서 작성해보았다.
  • Notion에서 워드프레스로 넘어온지 2주차다.. 무슨 내용을 작성해야할지 고민중이다.

5 1 vote
Article Rating
Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] [AWS SNS] AWS Event 알림 수신 구성(Slack, Email) – 지난 번 설정한 AWS SNS는 전체 리소스에 관한 Event Notification 을 수신할 수 있었으나, RDS의 리소스는 본 포스팅과 같이 추가 Event subscription을 설정해야하는 부분이 있다.– 아래 Source Settings에서는 위 링크에서 설명한 ARN 부분을 참고할 수 있다. […]

1
0
Would love your thoughts, please comment.x
()
x