こんにちは、ひろかずです。
少し前ですが、Deep Security as a Service(以下、DSaaS)でAWSのSNSトピック対応がされました。
当時はちょっと使いどころがピンとこなかったのですが、需要が出てきたので一筆書きます。
主な需要
- ログの長期保存
-- DSaaS環境のログ保存期間は13週間です。 - ログ分析
-- 何をどうするかがカギですね。 - Lambda等でイベントドリブンでどうのこうのする
-- よく語られますがどうのこうの
の部分を固めるのが先決ですね。
ざっくり構成(今回の分)
今回は、すべての需要を考慮してこんな感じで組みました。
前提条件
- AWSアカウントを所有していること。
- DSaaSアカウントを所有していること。
参考情報
以下の情報を参照しながら進めています。
工程
参考情報の順番とは少し変えています。
1.Amazon SNSトピックを作成する
2.サブスクリプションを作成する
3.AWSユーザーを作成する
4.DSaaS上でSNSを設定する
1. Amazon SNSトピックを作成する
Get Startedから始めます。
リージョンは任意ですが、今回はOregonにしました。
Create topicでを選択します。
Topic名を付けて、Create Topicボタンを押下します。
できました。Topic ARNを控えておきます。
2. サブスクリプションを作成する
サブスクリプションは、需要を考慮してSQSとします。
最低限、キュー名を付けるだけです。
あとは要件次第で調整してください。
ここでは、メッセージ受信待機時間を延ばしてみました。
できました。
ARNを控えておきます。
SNSの画面に遷移
Create subscriptionボタンを押下します。
ProtocolにAmazon SQSを設定して、EndpointにSQSのARNを設定します。
Create subscriptionボタンを押下します。
subscriberが空欄ですが、サブスクリプションが作成できました。
SQS画面に遷移
キュー操作でSNSトピックへのキューのサブスクライブを設定します。
トピックの選択のプルダウンで、先程作成したSNSトピックを選択して、サブスクライブ
ボタンを押下します。
うまくできたようです。
SNSの画面に遷移
ちょっとあちこち行ってしまいましたが、無事にサブスクライブできました。
試し切りをします。Publish to topic
ボタンを押下します。
適当に内容を記載してpublish message
ボタンを押下します。
SQS画面を見ると、キューが一個溜まってますね。
3. AWSユーザーを作成する
IAMの画面に遷移
ユーザーを選択し、新規ユーザーの作成
ボタンを押下します。
ユーザー名を入力して、ユーザーを作成します。
ここではDSaaS-SNSという名前にしました。
ユーザーを作成したら、Access KeyとSecret Keyを忘れずに保存してください。
ポリシーを選択して、ポリシーの作成
ボタンを押下します。
要はSNSにpublishする権限があればいいのですが、ここでは独自のポリシーを作成
を選択します。
参考情報Deep Security Help Center記載のポリシーをベースに以下のように作成しました。
コピペ用
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:us-west-2:XXXXXXXXXXXX:dsaas-sns" } ] }
できました。
作成したポリシーを選択して、ポリシーアクションからアタッチを選択します。
先程作成したIAMユーザを選択して、ポリシーのアタッチボタン
を押下します。
4. DSaaS上でSNSを設定する
DSaaSの管理画面にログインし、管理>システム設定>SIEMと遷移します。
Amazon SNSのPublish Events to AWS Simple Notification Service
にチェックを入れて、作成したIAMユーザのアクセスキーとシークレットキー、および作成したSNSトピック名を入力します。
今回は、送信するイベントの種類は全て選択したままとします。
SQS画面でメッセージの着信を見てみましょう。
早速システムイベントが着信してますね。
DSaaSのイベントをSNSトピックとしてSQSへキューイングすることろまでできました。
長くなったので今日はここまでにします。
お疲れ様でした。