AWS入門ブログリレー2024〜Baseline Environment on AWS(BLEA)編〜
こんにちは、AWS事業本部のこーへいです。
当エントリは弊社メンバーによる『AWS 入門ブログリレー 2024』の49日目のエントリです。
このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。
AWS をこれから学ぼう!という方にとっては文字通りの入門記事として、またすでに AWS を活用されている方にとっても AWS サービスの再発見や 2024 年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。
では、さっそくいってみましょう。今回のテーマは『Baseline Environment on AWS(BLEA)』です。
Baseline Environment on AWS(BLEA)の概要
Baseline Environment on AWS (BLEA) は 単独の AWS アカウントまたは AWS Control Tower で管理されたマルチアカウント環境で、セキュアなベースラインを確立するための リファレンス AWS CDK テンプレート群です。このテンプレート群は AWS のセキュリティサービスを活用して基本的かつ拡張可能なガードレールを提供します。また典型的なシステムアーキテクチャを実現するエンドツーエンドの AWS CDK サンプルコードを提供します。この AWS CDK テンプレートは用途に合わせてユーザが拡張して使うことを前提としており、拡張の参考となるコードやコメントを多く含んでいます。これによって AWS のアーキテクチャベストプラクティスや AWS CDK コードのカスタマイズを習得しやすくすることを目的としています。
https://github.com/aws-samples/baseline-environment-on-aws/blob/main/README_ja.md より
要約すると以下となります。
- Baseline Environment on AWS(BLEA)は、CDKテンプレート提供されている
- デプロイすることで、「CloudTrail」や「Security Hub」など代表的なAWSセキュリティサービスが有効化され、AWSアカウント内のセキュリティレベルを向上させることが可能
- テンプレートをカスタマイズすることで、環境に合わせたベースラインに調整が可能
AWSアカウント上のセキュリティベストプラクティスに沿った環境を迅速に実現するためのテンプレートとなります。
その名の通り、AWS環境上のベースラインとしての役割と果たしますが、BLEA(ブレア)と呼ばれることが多く正式名を忘れていた方も多いのではないでしょうか。
BLEAがカバーしている範囲を示した図となり、青色の部分がテンプレートで提供されています。
BLEAを使用するメリット
個人的にBLEAを使用することのメリットは以下となります。
- AWSアカウントのセキュリティレベルを簡単に向上させられる
- カスタマイズ性が高い
AWSアカウントのセキュリティレベルを簡単に向上させられる
一点目の「AWSアカウントのセキュリティレベルを簡単に向上させられる」は具体的には、セキュリティレベルを向上させるための設計や適応の手間が大きく削減できることを指します。
具体的に使用するサービスがサンプルテンプレートにて提供されており、私もマストで有効化すべきサービスと考えている「Security Hub」「GuardDuty」「CloudTrail」「Config」等がしっかりカバーされている点は大きいです。
これらのサービスが詳細設計含めてAWS公式から提供されているのは非常にありがたいです。
カスタマイズ性が高い
二点目の「カスタマイズ性が高い」は、BLEAがCDK(IaC)でテンプレートが提供されていることによるものです。
サンプルテンプレートとして提供されているので、環境に適したり運用中に柔軟にカスタマイズすることも可能なのでIaCの強みを感じられるのではないでしょうか。
一方で、CDKに慣れていないと導入ハードルが少々高いことや、コード自体の運用が必要になってくる点は考慮が必要でしょう。
テンプレートの種類
ガバナンスベース
ユースケース | フォルダ |
---|---|
スタンドアローン版ガバナンスベース | usecases/blea-gov-base-standalone |
Control Tower 版ガバナンスベース(ゲストアカウント用) | usecases/blea-gov-base-ct |
AWSアカウントのセキュリティレベルを向上させるためのテンプレート群となります。
具体的なリソースは青枠で囲んだ「Managed by BLEA CDK template」で提供されているリソースが構築されます。
ゲストシステムのサンプルアーキテクチャ
ユースケース | フォルダ |
---|---|
ECS による Web アプリケーションサンプル | usecases/blea-guest-ecs-app-sample |
EC2 による Web アプリケーションサンプル | usecases/blea-guest-ec2-app-sample |
サーバーレス API アプリケーションサンプル | usecases/blea-guest-serverless-api-sample |
システムの構築パターンによってサンプルテンプレートが提供されています。
例えば「EC2 による Web アプリケーションサンプル」にて提供されているテンプレートには、VPCやEC2、ALBなどEC2を用いたWEBアプリケーションを公開するために必要なリソースが記述されています。
またVPCフローログが有効化されている状態でデプロイされるなど、セキュリティも意識されていることがわかります。
GuardDutyで検知してみた
今回は単一アカウントへのStandalone版導入でやってみました(マルチアカウント版はこちら)。
デプロイまでの流れについてはREADMEページをご確認ください。
- CloudTrail による API のロギング
- AWS Config による構成変更の記録
- GuardDuty による異常なふるまいの検知
- SecurityHub によるベストプラクティスからの逸脱検知 (AWS Foundational Security Best Practice, CIS benchmark)
- デフォルトセキュリティグループの閉塞 (逸脱した場合自動修復)
- AWS Health イベントの通知
- セキュリティに影響する変更操作の通知(一部)
- セキュリティイベントを通知する SNS トピック (SecurityAlarmTopic) の作成
- 上記 SNS トピックを経由した、メールの送信と Slack のセキュリティチャネルへの通知
デプロイすると上記リソースが建てられます、今回はGuardDutyをテスト検知してSlackに通知されるか調べてみました。
こちらの手順で検知してみると無事slackにも連携されることを確認できました。
終わりに
以上、『AWS 入門ブログリレー 2024』の49日目のエントリ『Baseline Environment on AWS(BLEA)』編でした。 次回、5/22は弊社quiverによる「AWS Step Functions編」の予定です!