こんにちは、ひろかずです。
少し前ですが、Deep Security as a Service(以下、DSaaS)でAWSのSNSトピック対応がされました。
当時はちょっと使いどころがピンとこなかったのですが、需要が出てきたので一筆書きます。

主な需要

  • ログの長期保存
    -- DSaaS環境のログ保存期間は13週間です。
  • ログ分析
    -- 何をどうするかがカギですね。
  • Lambda等でイベントドリブンでどうのこうのする
    -- よく語られますがどうのこうのの部分を固めるのが先決ですね。

ざっくり構成(今回の分)

今回は、すべての需要を考慮してこんな感じで組みました。

679b6512-3bdf-9237-50e6-1025d7d05bcc

前提条件

  • AWSアカウントを所有していること。
  • DSaaSアカウントを所有していること。

参考情報

以下の情報を参照しながら進めています。

工程

参考情報の順番とは少し変えています。

1.Amazon SNSトピックを作成する
2.サブスクリプションを作成する
3.AWSユーザーを作成する
4.DSaaS上でSNSを設定する

1. Amazon SNSトピックを作成する

Get Startedから始めます。
リージョンは任意ですが、今回はOregonにしました。

56000054-78d9-91a7-72d2-8b49888b8789

Create topicでを選択します。

d8902d4a-130a-0309-abda-9fca3e3fd23b

Topic名を付けて、Create Topicボタンを押下します。

ddab0a12-947f-e754-34b2-eb7e119d3f81

できました。Topic ARNを控えておきます。

551959ce-c2bb-3ae8-9d6e-80e8f4c588af

2. サブスクリプションを作成する

サブスクリプションは、需要を考慮してSQSとします。

8f56b8bf-12e4-098e-839a-4369c4414335

最低限、キュー名を付けるだけです。
あとは要件次第で調整してください。
ここでは、メッセージ受信待機時間を延ばしてみました。

bf3f8116-6f29-81ca-3ccf-2818b1f43d24

できました。
ARNを控えておきます。

daac48a9-25a4-c22d-7d29-1ae3642e05be

SNSの画面に遷移

Create subscriptionボタンを押下します。

af71430b-a7d4-f98e-4a1e-22b5e3ddb906

ProtocolにAmazon SQSを設定して、EndpointにSQSのARNを設定します。
Create subscriptionボタンを押下します。

f25d73b7-9e6e-934d-181d-211a500ec623

subscriberが空欄ですが、サブスクリプションが作成できました。

7761b6d7-128d-c992-db33-c2735acbcc2b

SQS画面に遷移

キュー操作でSNSトピックへのキューのサブスクライブを設定します。

d4f101ad-7160-c0dc-a0e2-a63c6ac655da

トピックの選択のプルダウンで、先程作成したSNSトピックを選択して、サブスクライブボタンを押下します。

5121ee9b-f204-dba1-10e2-fb29bb54e568

うまくできたようです。

daa10cab-320c-6c6e-1194-78a2a714a53b

SNSの画面に遷移

ちょっとあちこち行ってしまいましたが、無事にサブスクライブできました。

f74e224c-4602-5c3b-05a3-2792b708b7ae

試し切りをします。
Publish to topicボタンを押下します。

d0f8e4e3-dd3e-4e03-a1ea-ddf643f131ea

適当に内容を記載してpublish messageボタンを押下します。

851a6226-e2e5-1549-d1e7-64afb2d4adac

SQS画面を見ると、キューが一個溜まってますね。

3f28f607-be91-c8c0-bf4a-390d9e3a0b3a

3. AWSユーザーを作成する

IAMの画面に遷移

ユーザーを選択し、新規ユーザーの作成ボタンを押下します。

b750f22e-d70d-8111-918e-18821a56ec92

ユーザー名を入力して、ユーザーを作成します。
ここではDSaaS-SNSという名前にしました。
ユーザーを作成したら、Access KeyとSecret Keyを忘れずに保存してください。

51a4584e-37ab-a001-5446-7452f39ee3a8

ポリシーを選択して、ポリシーの作成ボタンを押下します。

32ed17bf-6183-d69b-4b12-408e040433a9

要はSNSにpublishする権限があればいいのですが、ここでは独自のポリシーを作成を選択します。

7cee8ae9-cf5e-d078-df16-33240163b132

参考情報Deep Security Help Center記載のポリシーをベースに以下のように作成しました。

eaddc859-d571-3650-4b5f-0982f9b31959

コピペ用

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": [
            "sns:Publish"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:sns:us-west-2:XXXXXXXXXXXX:dsaas-sns"
      }
   ]
}

できました。

85976095-5f0d-2972-589b-1d3af9674570

作成したポリシーを選択して、ポリシーアクションからアタッチを選択します。

c15b08ed-d8a2-462b-9c41-6fa1e7f0ab10

先程作成したIAMユーザを選択して、ポリシーのアタッチボタンを押下します。

592fe12b-25a7-30a4-2abc-17c816da8057

4. DSaaS上でSNSを設定する

DSaaSの管理画面にログインし、管理>システム設定>SIEMと遷移します。
Amazon SNSのPublish Events to AWS Simple Notification Serviceにチェックを入れて、作成したIAMユーザのアクセスキーとシークレットキー、および作成したSNSトピック名を入力します。
今回は、送信するイベントの種類は全て選択したままとします。

01021235-2522-8050-0d56-0bad75e65dd3

SQS画面でメッセージの着信を見てみましょう。
早速システムイベントが着信してますね。

f8a1f26b-466a-8bb0-6cf7-7cfe44415348

DSaaSのイベントをSNSトピックとしてSQSへキューイングすることろまでできました。
長くなったので今日はここまでにします。
お疲れ様でした。

元記事はこちら

Deep Security as a ServiceでAmazon SNSトピック対応を設定する