Prowadzenie biznesu przez telefon

Wysyłanie powiadomień SMS z usługi monitoringu przy użyciu Amazon SNS

W artykule przedstawię prosty sposób przygotowania usługi Amazon AWS SNS (Simple Notification Service) do wysyłania powiadomień z systemu monitoringu Icinga 2.

Szczegóły dla tej usług znajdziecie Państwo na stronie AWS. Opiszę również jak skonfigurować sam system monitorowania usługi do wysyłania powiadomień z usługi SNS. Jako że ilość informacji jest dość długa, rozbijemy je na 2 części. W pierwszej opiszemy jak przygotować usługę SNS i skonfigurować politykę dostępu oraz użytkownika w IAM. W drugiej skonfigurujemy serwer z systemem Icinga2 oraz uruchomimy na nim działającą usługę.

Amazon SNS (Simple Notification Service) służy do wysyłania powiadomień zarówno HTTP/s, jak i wiadomości SMS czy e-mail. Wiadomości mogą byś wysyłane nie tylko z usług Amazon Web Services, ale również z każdej innej usługi jak np. wysyłanie wiadomości SMS z systemu monitoringu Icinga 2. W tym artykule użyliśmy prostego przykładu z dla systemu Icinga 2, ponieważ jest to jeden z produktów, który oferujemy naszym klientom.

W tym artykule usługa SNS będzie nam służyła do wysyłania wiadomości SMS z systemu monitoringu Icinga 2. Jeśli system monitoringu wykryje, że jeden z serwerów będzie niedostępny, wyślę on do administratora wiadomość sms, za pomocą usługi SNS. Wiadomości mogą być również wysyłane, jeśli jedna z monitorowanych usług będzie niedostępna. Przed uruchomieniem usługi SNS, należy zapoznać się z planem płatności dostępnym na stronie AWS. Warto zwrócić uwagę, że dla usługi SNS istnieje „Free Tier”, gdzie za darmo możemy wysłać 100 wiadomości SMS oraz 1000 wiadomości e-mail.

W pierwszej kolejności zaczniemy od przygotowania środowiska Amazon w graficznej konsoli AWS Management Console.

Konfiguracja usługi Amazon SNS za pomocą konsoli „AWS Management Console”

Po zalogowaniu się do środowiska Amazon AWS wyszukujemy usługę „Simple Notification Service” (Rys. 1 – Simple Notification Service) i przechodzimy do „Create Topic” (Rys. 2 – Create topic).

Rys. 1 – Simple Notification Service
Rys. 2 – Create topic

Po kliknięciu „Create Topic” powinno wyskoczyć okienko „Create new topic” (Rys. 3 – Create new topic), w którym wpisujemy „Topic name” oraz „Display name”. Ciekawostką jest, że „Display name” może mieć maksymalnie 10 znaków, a „Topic name” może mieć 256 oraz nie ma możliwość późniejszej zmiany „Topic name”. Pole „Display name” możemy modyfikować w dowolnym momencie i może być on używany do identyfikacji tego zasobu.

Rys. 3 – Create new topic

Po kliknięciu „Create topic” ujrzymy podsumowanie, w którym zamieszczony będzie „Topic ARN” (Rys. 4 – Topic ARN). ARN będzie nam potrzebny do konfiguracji polityki bezpieczeństwa dla użytkownika z uprawnieniami do wysyłania powiadomień i służy on jako identyfikator tego topicu.

Rys. 4 – Topic ARN

Teraz przechodzimy do stworzenia subskrypcji „Create subscription” widocznym w szczegółach „topicu”. Jeśli zrobimy to w ten sposób, nie będziemy potrzebowali kopiować ARN wcześniej. Możemy również przejść po lewej stronie do „Subscriptions” i tam następnie stworzyć subskrypcje, ale wtedy nie zapomnijmy skopiować ciągu ARN „topicu”.

Tworzenie subskrypcji to nic innego jak dodanie kontaktu, numeru telefonu w przypadku SMS, gdzie będą miały spływać powiadomienia z monitoringu. Wracając do naszego identyfikatora ARN danego „Topicu”, warto go skopiować teraz i odłożyć gdzieś na boku, ponieważ będzie on nam potrzebny przy tworzeniu polityki dostępu do tego zasobu.

Po kliknięciu „Create subscription” ujrzymy nowe okno z prośbą o wybranie protokołu (Rys. 5 – Create subscription). W naszym przypadku będzie to SMS, ale może być również całkiem inny protokół. Za protokół rozumiemy tutaj kanał komunikacyjny, jakim ma zostać wysłane powiadomienie. Może to być SMS, e-mail, wejście na jakąś stronę po http/s, a także wykonanie dowolnej funkcji AWS Lambda. W polu „Endpoint” podajemy numer telefonu, na którym chcemy, aby była wysyłana wiadomość SMS.

Rys. 5 – Create subscription

Po stworzeniu subskrypcji przejdziemy do szczegółów danego „topicu” i ujrzymy dodaną subskrypcje z widocznym numerem kontaktowym (Rys. 6 – Topic details).

Rys. 6 – Topic details

Na tym możemy zakończyć tworzenie konfigurację usługi Amazon SNS, która w zupełności wystarczy nam w podstawowym zastosowaniu systemu monitoringu.

Dodanie polityki dostępu oraz użytkownika w IAM z możliwością wysyłania sms

Jeśli nie posiadamy jeszcze utworzonego użytkownika IAM z ograniczonym dostępem i możliwością wysyłania powiadomień, zapoznajmy się z poniższymi informacjami.

W pierwszej kolejności tworzymy politykę dostępu, którą następnie przypiszemy do nowo utworzonego użytkownika. Utworzenie polityki dostępu jest niezbędne, jeśli chcemy zachować pewny poziom bezpieczeństwa i ograniczyć możliwość korzystania z usług przez wybranego użytkownika.

W tym celu przechodzimy do „My Security Credentials” -> „Policies”.
Następnie klikamy „Create policy” aby utworzyć nową politykę (Rys. 7 – Create policy).

Rys. 7 – Create policy

Ujrzymy edytor wizualny, gdzie w prosty sposób możemy dodać dostęp do wybranych zasobów przez zdefiniowanie pola „Actions”. Poniżej zobaczymy politykę dla usługi SNS, z wybraną akcją zapisu „Publish” dla wcześniej utworzonego „Topicu” w usłudze SNS (Rys. 8 – Review policy – Visual editor).

Rys. 8 – Review policy – Visual editor

Na kolejnym zrzucie ekranu (Rys. 9 – Review policy – JSON) znajduje się również ta sama polityka w kodzie JSON.

Rys. 9 – Review policy – JSON

Klikamy „Review policy” i przechodzimy do następnego okna, w którym możemy wpisać nazwę polityki oraz jej opis (Rys. 10 – Review policy).

Rys. 10 – Review policy

Po kliknięciu „Create policy” utworzymy własną politykę, która będzie widoczna na liście łącznie z pozostałymi politykami. Jeśli chcemy ograniczyć się tylko do własnych utworzonych polityk, możemy je odfiltrować i wskazać jedynie „Customer managed”, po czym zostaną wyświetlone tylko utworzone przez nas polityki (Rys. 11 – Lista polityk).

Rys. 11 – Lista polityk

Dodawanie użytkownika IAM

Logujemy się do konsoli AWS w celu utworzenia nowego użytkownika z ograniczonym dostępem. Po zalogowaniu wybieramy „My Security Credentials” -> „Users” -> „Add user” (Rys. 12 – Add IAM user).

Rys. 12 – Add IAM user

Podajemy nazwę użytkownika i wybieramy dostęp „Programmatic Acces” (Rys. 13 – Programmatic access). Dzięki temu użytkownik będzie miał dostęp do AWS API i zostanie mu przypisany Access key i Secret access key, który będzie używany do uwierzytelnienia użytkownika.

Rys. 13 – Programmatic access

Klikamy „Next Permissions” i wybieramy wcześniej utworzoną politykę bezpieczeństwa (Rys. 14 – Set permissions).

Rys. 14 – Set permissions

Klikamy „Next Review”, weryfikujemy czy nazwa użytkownika się zgadza i klikamy „Create user” (Rys. 15 – Create user).

Rys. 15 – Create user

Po kliknięciu „Create User’ w następnym etapie zobaczymy przypisany do naszego użytkownika „Access Key ID” oraz „Secret access key”, który będziemy używać przy konfiguracji serwera z systemem Icinga 2 (Rys. 16 – Access key ID i Secret access key).

Rys. 16 – Access key ID i Secret access key

Poniżej zamieszczam jeszcze politykę bezpieczeństwa, którą użyliśmy w tym artykule, aby ograniczyć dostęp dla wybranego użytkownika.

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Sid": "VisualEditor0",
 "Effect": "Allow",
 "Action": "sns:Publish",
 "Resource": "arn:aws:sns:us-east-1:ACOUNT_ID:Icingaweb2"
 }
 ]
}

W kolejnym artykule opiszemy jak skonfigurować serwer z systemem Icinga2 i uruchomimy na nim działającą usługę.

expert mask
expert photo
Masz pytania? Porozmawiaj z nami!

Gwarantujemy indywidualne podejście do każdego projektu.

Porozmawiaj z Ekspertem