【技術解説】Lambda+CloudWatchで不正アクセスを検知する方法
みなさんこんにちは。Wakka Inc.日本拠点のインフラエンジニアを担当している金です。
AWSの管理者は普段からコストやセキュリティなどの不安を抱えている方が多いと思います。特にAWSはリソースの消費によって課金される仕組みなため、不正アクセスが発生するとセキュリティの問題だけでなく、大きなコストがかかってしまうことも珍しくありません。さらに、AWSのデータはセールスやマーケティング、企業経営に関わる企業の重要な資産です。もしすべてのデータが削除されてしまったら大きな損失を被るだけではなく社会的な信用を失うことにもつながりかねません。
そこで今回はAWSのセキュリティを高める方法の一つとしてLambdaの利用をご紹介したいと思います。そもそものLambdaの概要からCloudWatchを用いた不正アクセス検知方法までやさしく解説しますので興味のある方はぜひチェックしてください。
●開発リソースの不足にお悩みなら●
>>>Wakka.Inc独自の海外子会社設立サービスがおすすめ!
無料でサービス資料をダウンロードできますのでぜひご覧ください。
そもそもLambdaとは?
『Lambda』とは、クラウド上で開発者にサーバーレスな環境を提供してくれるAWSのコンピューティングプラットホームです。これによりサーバーの構築や保守に多くの時間を割く必要がないため、開発者は自身のアプリケーション開発に集中することができます。
Lambdaは何らかのイベントが発生したときにLambdaファンクションが起動され、適切に処理することが可能です。例えば不正アクセスが検知されるとそれを知らせるためにメッセージを送る。というような流れになります。
このような仕組みをサーバー側で構築するとなると多くの作業が必要です。まずサーバーにOSをインストールしなければなりません。そのほかにもプログラミング言語、データベース、障害への強度性を高めるためのキャパシティを保護する、というような作業もすべてエンジニアが行う必要があります。
多くのエンジニアを抱える企業や大きな予算をかけられるところであれば、このようなバックエンド開発にも力を入れることが可能です。しかし、一般的な企業においては、限られた人数の中でアプリケーション開発を行わなければならないため、インフラ整備にまで手が回らないこともあります。
Lambdaを利用すれば、このような手間のかかる作業をコンピューターが肩代わりしてくれるのです。つまり開発者はアプリケーションに集中することができ、開発工数などさまざまな利点を獲得することができます。
しかしLambdaはすべてのWebアプリケーション規模に対応できるわけではありません。なぜなら、使用できるプログラミング言語などいくつかの制約があるからです。そのため、例えばZOZOTOWNのような大規模アプリケーションを開発する場合は不十分な性能となってしまうことがあるでしょう。
Lambdaを利用するメリットについて
次に、Lambdaを利用するメリットについて解説します。いかにLambdaが作業負担の抑制やセキュリティ強化に役立つサービスであるかご理解いただけるかと思います。
インフラの構築・保守が不要
最大のメリットは、インフラの構築やメンテナンスの必要性がないことです。Lambdaはとても簡単に言えばこちら側が何もしなくても“うまくやってくれる”サービスになります。先ほどもご紹介したように、OSやプログラミング言語のインストール等は必要なく、最低限の設定でイベントが発生した際の処理を実行することが可能です。
セキュリティ強化につなげられる
セキュリティの強化につながることもメリットのひとつです。
データ処理やファイル連携など、システムの機能面においてはもちろんのこと、アクセスを監視したり、認証したりというようなことも行えます。そのため、セキュリティ向上に一役買ってくれるサービスです。
また、AWS利用者が不安に感じる利用料金においても監視し、処理を実行することができます。例えば一定額以上の利用料金を上回ったらAWSの特定のサービスを停止することも可能です。
このようにセキュリティ以外にも使いみちが豊富なため、Lambdaの活用の有無で利便性が大きく変化するでしょう。
トリガーの種類が豊富
トリガーの種類が豊富でさまざまな実行処理ができる点もメリットです。
例えば、アクションが発生したときにSNSに通知を送ることができます。また、Slackなどほかのサービスと連携して使うことも可能です。このように連携できるサービスがたくさんありサービスの通知機能も使えるため、多くの人が利用しやすいプラットフォームになっています。
また、Lambdaはトリガーの種類が豊富にあるため、特定のサービスとの関連性を希薄化することが可能です。これにより連携先のサービスの仕様が大幅に変更したときも最小限の影響で運用をすることができます。
【おすすめ資料】海外開発拠点の設立を検討されていますか?
【保存版】成長企業が導入するWakkaのラボ型開発
>ラボ型開発を進めるポイントとWakka inc.の『独自の海外子会社設立サービス』を紹介した資料です。ぜひあわせてご覧ください。
Lambda+CloudWatchを利用したAWS不正アクセス検知方法の手順
Lambdaを利用したAWS不正アクセス検知方法の手順について解説します。不正アクセスを検知するときは、CloudWatchと連携するのが一般的です。
1.まず下記のURLからAWSコンソールにアクセスしてください。
https://eu-west-1.console.aws.amazon.com/console
2.コンソールのサービス検索から「Lambda」と入力します。サービス検索結果一覧の中にLambdaが見つかりますので、それをクリックしてください。
3.以前使用した方は、下記の画像のようにLambdaのダッシュボードに遷移します。はじめて利用する方は、スタートを開始するかどうか聞かれますので、中央にある「Get Started Now」のボタンをクリックしましょう。
4.左サイドメニューから関数を選択します。その後、右上にある「関数の作成」をクリックしてください。
5.任意の関数名を入力します。また、ラインタイムはPython3.8を選択してください。その後、下部にスクロールして「関数の作成」ボタンをクリックします。
6.関数の中から作成した関数を選択、lambda_handlerの中に下記の一行を追加し、デプロイしてください。
print(“test event: ” + json.dumps(event))
7.次にCloudWatchイベントを設定します。AWSコンソールホーム画面の検索フォームから「CloudWatch」を入力し、イベント一覧からCloudWatchをクリックしてください。そして、ダッシュボードに遷移すると左メニューから「イベント」→「ルール」を選択します。
8.左上にある青色の「ルールの作成」ボタンをクリックしてください。
9.ルール作成画面に遷移します。サービス名は、「AWSコンソールのサインイン」、イベントタイプは「サインインイベント」を選択してください。また、ターゲットは、「Lambda関数」を選択し、関数はさきほど作成したものを指定します。本チュートリアルでは、test_lambda関数を作成しましたので、関数はtest_lambdaです。ちなみに、AWS APIのアクションイベントを受けるためには、CloudTrailのログ記録をオンにする必要があります。オフになっている方は、CloudTrailコンソールから設定をオンにしてください。
10.作成することができたら、一度AWSコンソールからサインアウトし、再びサインインします。その後、コンソール画面からCloudWatchのダッシュボードにアクセスしてください。
11.左メニューからロググループを選択します。ロググループの中にある「次の期間経過後にイベントを失効」をクリックし、保存期間を1週間にセットします。
12.ロググループ一覧から適切なロググループを選択し、ログストリームをクリックします。その中から先ほど実装した関数の中にある“test event”を探し出し、記録されていれば検知完了です。
Lambdaを利用してAWSのセキュリティリスクを抑えよう!
今回はLambdaの概要やメリット、不正アクセス対策の手順について解説しました。AWSのセキュリティは強固と言われていますが、インターネット上に公開されているため、常にセキュリティリスクにさらされています。そのため、セキュリティ対策をすることはIT管理者の方にとって最も重要な業務となります。
Wakka Inc.ではITコンサルティングに加えて、オフショア・ラボ開発や海外子会社設立のサービスを提供しています。AWSの構築から運用保守だけでなく、リソースが不足しておりアプリケーション開発を委託したい方にもおすすめのサービスとなっていますので、詳細を知りたいという方はお気軽にお問い合わせください。
【おすすめ資料】海外開発拠点の設立を検討されていますか?
【保存版】成長企業が導入するWakkaのラボ型開発
>ラボ型開発を進めるポイントとWakka inc.の『独自の海外子会社設立サービス』を紹介した資料です。ぜひあわせてご覧ください。
前世は社内ネットワーク部門でインフラ担当していました。当時4Uサーバーの重さに限界を感じ、クラウド推進派に。Wakka Inc.の日本拠点にインフラエンジニアとして参画し、サーバー・ネットワーク全般を担当。最近はDocker・CI/CDなどに取り組んでいます。