ラボの概要
アマゾン ウェブ サービス (AWS) にとってセキュリティは最優先事項です。AWS はお客様独自のセキュリティニーズを満たすように多くのツールやサービスを提供しています。このラボでは、セキュリティを強化する多くのソリューションの中の 1 つをご紹介します。ラボでは Amazon Virtual Private Cloud (Amazon VPC) セキュリティグループを自動更新する方法を説明して、Amazon CloudFront および AWS WAF からのアクセスのみを許可するようにします。このようにセキュリティグループのルールを定義すると、AWS WAF セキュリティルールをすり抜けたり、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに直接アクセスしたりする悪質なリクエストを防御できます。
CloudFront や AWS WAF の IP 範囲からのトラフィックだけを許可するには、AWS IP の変更通知を受け取る必要があります。AWS はサービス IP の範囲を JSON 形式で提供するパブリックな Amazon Simple Notification Service (Amazon SNS) トピックを通じてサービス IP の変更を通知します。このラボでは Amazon SNS と AWS Lambda の統合を利用して、セキュリティグループを新しい IP を使って自動更新する方法を示します。
取り上げるトピック
このラボを完了すると、以下のことができるようになります。
- Amazon VPC のセキュリティグループを作成する
- AWS Identity and Access Management (IAM) ポリシーを作成する
- AWS Lambda 関数を作成する
- Lambda 関数をサンプルイベントでテストする
- Lambda 関数を Amazon SNS トピックでサブスクライブする
技術知識の前提条件
このラボは AWS 学習者の皆様を対象としています。このラボを修了するには、Amazon EC2、Amazon VPC セキュリティグループ、IAM ロールとポリシー、Amazon SNS などの AWS のサービスについて理解しておく必要があります。AWS マネジメントコンソールへのログインやその使用に慣れている必要があります。
AWS Lambda とは
AWS Lambda は、クラウド内で提供されるコンピューティングサービスです。コンピューティング性能の規模を変更できるため、デベロッパーはウェブスケールコンピューティングを簡単に実現できます。Lambda にコードをアップロードすると、このサービスは AWS インフラストラクチャを使用し、ユーザーに代わって、このコードを実行します。Lambda では、Node.js、Java、Python などの複数のプログラミング言語がサポートされています。
コードをアップロードして Lambda 関数を作成すると、Lambda によってサーバーのプロビジョニングと管理が行われ、そのサーバーでコードが実行されます。このラボでは、Lambda サーバーをトリガードリブン型のコンピューティングサービスとして使用し、Amazon EC2 セキュリティグループの変更に合わせてコードが実行されます。Lambda 関数のコードはこのラボで提供されます。
AWS CloudFormation とは
AWS CloudFormation を使用すると、デベロッパーやシステム管理者は、関連する AWS リソースのコレクションを作成および管理して、秩序正しい予測可能な方法でプロビジョニングと更新ができるようになります。
サンプルテンプレートを使用するか、または独自のテンプレートを作成して、アプリケーションの実行に必要な AWS リソースと、関連するすべての依存関係や実行時パラメータを記述できます。AWS のサービスをプロビジョニングする順番を考える必要や、依存関係が機能するように細かく注意する必要はありません。AWS CloudFormation が代わりに行います。
コンソール、AWS Command Line Interface (AWS CLI)、API オペレーションを使用して、テンプレートおよびそれに関連するリソースのコレクション (スタックという) をデプロイおよび更新します。AWS CloudFormation は追加料金なしで利用でき、アプリケーションを実行するために必要な AWS リソースの料金のみを支払います。