Amazon Security Lake について整理してみた

# 背景・目的
Security Lakeについて、最近記事を目にする機会が増えたため、その概要を整理します。

# まとめ

|特徴|説明|
|:--|:--|
| Security Lake|フルマネージドなセキュリティデータレイクサービス<BR>セキュリティデータを下記の専用のデータレイクに自動的に一元化可能<BR>　・AWS<BR>　・SaaS Providers<BR>　・オンプレミス<BR>　・クラウドソース<BR>　・サードパーティソース<BR>セキュリティデータの分析ができる<BR>組織全体のセキュリティ体制を把握できる<BR>ワークロード、アプリケーション、データの保護を強化できる|
|収集|AWSサービスや、サードパーティからのセキュリティ関連のログやイベントデータの収集を自動化できる<BR><BR>保存とレプリケーションの設定をカスタマイズできる<BR><BR>ParquetとOCSF（Open CyberSecurity Schema Framework）と呼ばれる標準のオープンソーススキーマに変換する|
|サブスクライブ|AWSサービス、サードパーティのサービスは、セキュリティデータの分析のため、Security Lakeに保存されているデータをサブスクライブできる|
|セキュリティレイクの特徴|・アカウントへのデータ集約<BR>・サポートされているログとイベントソースの多様性<BR>・データ変換と正規化<BR>・加入者向けの複数のアクセスレベル<BR>・複数アカウントおよび複数リージョンのデータ管理<BR>・設定とカスタマイズが可能<BR>・データライフサイクル管理と最適化|
|セキュリティレイクへのアクセス|・マネコン<BR>・CLI<BR>・API<BR>・SDK|
|関連サービス|・EventBridge<BR>・Glue <BR>・Lake Formation<BR>・Lambda<BR>・S3<BR>・CloudTrail<BR>・EKS監査ログ<BR>・Route 53 Resolver<BR>・Security Hub findings<BR>・VPC Flow Logs<BR>・WAFv2 Logs<BR>・カスタムソース|
|OCSF|・AWSとサイバーセキュリティ業界パートナーによる共同のオープンソースの取り組み<BR>・一般的なセキュリティイベントの標準スキーマを提供し、スキーマの進化を促進するためのバージョン管理基準を定義<BR>・セキュリティログのプロデューサーとコンシューマーのためのセルフガバナンスプロセスを備えている<BR>・OCSF の公開ソースコードは GitHubでホストされている|

# 概要
下記を基に整理します。

https://docs.aws.amazon.com/ja_jp/security-lake/latest/userguide/what-is-security-lake.html

> Amazon Security Lake は、完全マネージド型のセキュリティデータレイクサービスです。Security Lake を使用すると、 AWS 環境、SaaS プロバイダー、オンプレミス、クラウドソース、およびサードパーティーソースのセキュリティデータを、 に保存されている専用のデータレイクに自動的に一元化できます AWS アカウント。Security Lake はセキュリティデータの分析に役立つため、組織全体のセキュリティ体制をより完全に把握できます。Security Lake を使用すると、ワークロード、アプリケーション、データの保護を強化することもできます。

- フルマネージドなセキュリティデータレイクサービス
- セキュリティデータを下記の専用のデータレイクに自動的に一元化可能
    - AWS
    - SaaS Providers
    - オンプレミス
    - クラウドソース
    - サードパーティソース
- セキュリティデータの分析ができる
- 組織全体のセキュリティ体制を把握できる
- ワークロード、アプリケーション、データの保護を強化できる

> データレイクは、Amazon Simple Storage Service (Amazon S3) バケットに支えられており、データの所有権はお客様が保持します。

> Security Lake は、統合 AWS のサービス や第三者サービスからのセキュリティ関連のログやイベントデータの収集を自動化します。また、保存とレプリケーションの設定をカスタマイズできるため、データのライフサイクル管理にも役立ちます。Security Lake は、取り込んだデータを Apache Parquet 形式とOCSF (OCSF) と呼ばれる標準のオープンソーススキーマに変換します。OCSF サポートにより、Security Lake は からのセキュリティデータと幅広いエンタープライズセキュリティデータソースを正規化 AWS し、組み合わせます。

- AWSサービスや、サードパーティからのセキュリティ関連のログやイベントデータの収集を自動化できる
- 保存とレプリケーションの設定をカスタマイズできる
- ParquetとOCSF（Open CyberSecurity Schema Framework）と呼ばれる標準のオープンソーススキーマに変換する

> 他の AWS のサービス およびサードパーティーのサービスは、インシデント対応とセキュリティデータ分析のために Security Lake に保存されているデータをサブスクライブできます。

- AWSサービス、サードパーティのサービスは、セキュリティデータの分析のため、Security Lakeに保存されているデータをサブスクライブできる

## セキュリティレイクの特徴
> アカウントへのデータ集約
Security Lake は、アカウント内に専用のセキュリティ データ レイクを作成します。Security Lake は、アカウントとリージョン全体のクラウド、オンプレミス、カスタム データ ソースからログとイベント データを収集します。データ レイクは Amazon Simple Storage Service (Amazon S3) バケットによってサポートされ、データの所有権はユーザーが保持します。

- アカウントへのデータ集約
    - アカウント内に専用のセキュリティデータレイクを作成する
    - 下記から集約
        - アカウントとリージョン全体のクラウド
        - オンプレミス
        - カスタム データ ソースからログ
        - イベント データ

> サポートされているログとイベントソースの多様性
Security Lake は、オンプレミス、AWS サービス、サードパーティのサービスなど、複数のソースからセキュリティ ログとイベントを収集します。ログを取り込んだ後は、ソースに関係なく、ログに一元的にアクセスしてライフサイクルを管理できます。Security Lake によってログとイベントが収集されるソースの詳細については、「Security Lake のソース管理」を参照してください。

- サポートされているログとイベントソースの多様性
    - 下記を収集
        -　オンプレミス
        -　AWS サービス
        -　サードパーティのサービスなど複数のソースからセキュリティ ログとイベントを収集
    - ログを取り込んだ後は、ソースに関係なく、ログに一元的にアクセスしてライフサイクルを管理できる

> データ変換と正規化
Security Lake は、ネイティブにサポートされている AWS サービスから受信したデータを自動的に分割し、ストレージとクエリ効率に優れた Parquet 形式に変換します。また、ネイティブにサポートされている AWS サービスからのデータを Open Cyber​​security Schema Framework (OCSF) オープンソース スキーマに変換します。これにより、後処理を必要とせずに、他の AWS サービスやサードパーティ プロバイダーと互換性のあるデータを作成できます。Security Lake はデータを正規化するため、多くのセキュリティ ソリューションがこのデータを並行して使用できます。

- データ変換と正規化
    - ネイティブにサポートされている AWS サービスから受信したデータを自動的に分割
    - Parquetに変換
    - PCSFスキーマに変換する。これにより、後処理を必要とせずに、他の AWS サービスやサードパーティ プロバイダーと互換性のあるデータを作成する

> 加入者向けの複数のアクセスレベル
サブスクライバーは、Security Lake に保存されているデータを消費します。サブスクライバーのデータへのアクセスレベルを選択できます。サブスクライバーは、指定したソースおよび AWS リージョンのデータのみを消費できます。サブスクライバーは、データレイクに書き込まれた新しいオブジェクトについて自動的に通知を受けることができます。または、サブスクライバーはデータレイクからデータをクエリできます。Security Lake は、Security Lake とサブスクライバーの間で必要な認証情報を自動的に作成して交換します。

- 加入者向けの複数のアクセスレベル
    - Security Lake に保存されているデータをコンシュームする
    - サブスクライバーのデータへのアクセスレベルを選択できる
    - サブスクライバーは、データレイクに書き込まれた新しいオブジェクトについて自動的に通知する
    - サブスクライバーはデータレイクからデータをクエリできる
    - Security Lake は、Security Lake とサブスクライバーの間で必要な認証情報を自動的に作成して交換する

> 複数アカウントおよび複数リージョンのデータ管理
Security Lake は、利用可能なすべてのリージョンと複数の AWS アカウントで一元的に有効化できます。Security Lake では、ロールアップリージョンを指定して、複数のリージョンのセキュリティログとイベントデータを統合することもできます。これにより、データレジデンシーのコンプライアンス要件に準拠しやすくなります。

- 複数アカウントおよび複数リージョンのデータ管理
    - 利用可能なすべてのリージョンと複数の AWS アカウントで一元的に有効化できる
    - ロールアップリージョンを指定して、複数のリージョンのセキュリティログとイベントデータを統合することもできる

> 設定とカスタマイズが可能
Security Lake は、構成およびカスタマイズ可能なサービスです。ログ収集を構成するソース、アカウント、リージョンを指定できます。また、データ レイクへのサブスクライバーのアクセス レベルを指定することもできます。

- 設定とカスタマイズが可能
    - 構成およびカスタマイズ可能なサービス
    - ログ収集を構成するソース、アカウント、リージョンを指定できる
    - データ レイクへのサブスクライバーのアクセス レベルを指定も可能

> データライフサイクル管理と最適化
Security Lake は、カスタマイズ可能な保持設定と自動ストレージ階層化によるストレージ コストを使用して、データのライフサイクルを管理します。Security Lake は、受信したセキュリティ データを自動的にパーティション分割し、ストレージとクエリ効率に優れた Apache Parquet 形式に変換します。

- データライフサイクル管理と最適化
    - カスタマイズ可能な保持設定と自動ストレージ階層化によるストレージ コストを使用して、データのライフサイクルを管理する
    - 受信したセキュリティ データを自動的にパーティション分割
    - Apache Parquet 形式に変換する

## セキュリティレイクへのアクセス
> Security Lake が現在利用可能なリージョンの一覧については、「Security Lake のリージョンとエンドポイント」を参照してください。リージョンの詳細については、AWS 全般のリファレンスの「AWS サービスエンドポイント」を参照してください。

> 各リージョンでは、次のいずれかの方法で Security Lake にアクセスできます。

> AWS マネジメントコンソール
AWS マネジメントコンソールは、AWS リソースの作成と管理に使用できるブラウザベースのインターフェイスです。Security Lake コンソールを使用すると、Security Lake アカウントとリソースにアクセスできます。Security Lake コンソールを使用して、ほとんどの Security Lake タスクを実行できます。

- マネコン

> セキュリティレイクAPI
プログラムで Security Lake にアクセスするには、Security Lake API を使用して、サービスに直接 HTTPS リクエストを発行します。詳細については、Security Lake API リファレンスを参照してください。

- API


> AWS コマンドラインインターフェイス (AWS CLI)
AWS CLI を使用すると、システムのコマンドラインでコマンドを発行して、Security Lake タスクと AWS タスクを実行できます。コマンドラインを使用すると、コンソールを使用するよりも高速で便利です。コマンドラインツールは、タスクを実行するスクリプトを作成する場合にも便利です。AWS CLI のインストールと使用の詳細については、AWS コマンドラインインターフェイスを参照してください。

- CLI

> AWS SDK について
AWS は、Java、Go、Python、C++、.NET など、さまざまなプログラミング言語とプラットフォーム用のライブラリとサンプルコードで構成される SDK を提供しています。SDK は、Security Lake やその他の AWS サービスへの便利なプログラムによるアクセスを提供します。また、リクエストの暗号署名、エラーの管理、リクエストの自動再試行などのタスクも処理します。AWS SDK のインストールと使用の詳細については、「AWS で構築するためのツール」を参照してください。。

- SDK

## 関連サービス
> Security Lake が使用するその他の AWS サービスは次のとおりです。
> - Amazon EventBridge – Security Lake は、EventBridge を使用して、オブジェクトがデータレイクに書き込まれたときにサブスクライバーに通知します。
> - AWS Glue – Security Lake は AWS Glue クローラーを使用して AWS Glue データカタログ テーブルを作成し、新しく書き込まれたデータをデータカタログに送信します。Security Lake は、AWS Lake Formation テーブルのパーティション メタデータもデータカタログに保存します。
> - AWS Lake Formation – Security Lake は、Security Lake にデータを提供するソースごとに個別の Lake Formation テーブルを作成します。Lake Formation テーブルには、スキーマ、パーティション、データの場所情報など、各ソースのデータに関する情報が含まれています。サブスクライバーは、Lake Formation テーブルをクエリしてデータを消費するオプションがあります。
> - AWS Lambda – Security Lake は、Lambda 関数を使用して、生データの抽出、変換、ロード (ETL) ジョブをサポートし、AWS Glue にソースデータのパーティションを登録します。
> - Amazon S3 – Security Lake はデータを Amazon S3 オブジェクトとして保存します。ストレージ クラスと保持設定は Amazon S3 の提供内容に基づきます。Security Lake は Amazon S3 Select をサポートしていません。

- EventBridge
    - サブスクライバへの通知
- Glue 
    - AWS Glue クローラーを使用して AWS Glue データカタログ テーブルを作成し、新しく書き込まれたデータをデータカタログに送信する
    - AWS Lake Formation テーブルのパーティション メタデータもデータカタログに保存する
- Lake Formation
    - データを提供するソースごとに個別の Lake Formation テーブルを作成する
    - Lake Formation テーブルには、スキーマ、パーティション、データの場所情報など、各ソースのデータに関する情報が含まれている
- Lambda
    - Lambda 関数を使用して、生データの抽出、変換、ロード (ETL) ジョブをサポートし、AWS Glue にソースデータのパーティションを登録
 - S3
    - データを Amazon S3 オブジェクトとして保存

> Security Lake は、次の AWS サービスに加えて、カスタムソースからもデータを収集します。
> - AWS CloudTrail 管理とデータイベント (S3、Lambda)
> - Amazon Elastic Kubernetes Service (Amazon EKS) 監査ログ
> - Amazon Route 53 リゾルバのクエリログ
> - AWS セキュリティハブの調査結果
> - Amazon Virtual Private Cloud (Amazon VPC) フローログ
> - AWS WAFv2 ログ
- CloudTrail
- EKS監査ログ
- Route 53 Resolver
- Security Hub findings
- VPC Flow Logs
- WAFv2 Logs

## OCSF
下記を基に整理します

https://docs.aws.amazon.com/security-lake/latest/userguide/open-cybersecurity-schema-framework.html

> オープンサイバーセキュリティ スキーマ フレームワーク (OCSF)OCSF は、AWS とサイバーセキュリティ業界の主要パートナーによる共同のオープンソースの取り組みです。OCSF は、一般的なセキュリティイベントの標準スキーマを提供し、スキーマの進化を促進するためのバージョン管理基準を定義し、セキュリティログのプロデューサーとコンシューマーのためのセルフガバナンスプロセスを備えています。OCSF の公開ソースコードは GitHubでホストされています。。

- AWSとサイバーセキュリティ業界パートナーによる共同のオープンソースの取り組み
- 一般的なセキュリティイベントの標準スキーマを提供し、スキーマの進化を促進するためのバージョン管理基準を定義
- セキュリティログのプロデューサーとコンシューマーのためのセルフガバナンスプロセスを備えている
- OCSF の公開ソースコードは GitHubでホストされている

> Security Lake は、ネイティブでサポートされている AWS サービスからのログとイベントを OCSF スキーマに自動的に変換します。OCSF への変換後、Security Lake はデータを AWS アカウントの Amazon Simple Storage Service (Amazon S3) バケット (AWS リージョンごとに 1 つのバケット) に保存します。カスタムソースから Security Lake に書き込まれるログとイベントは、OCSF スキーマと Apache Parquet 形式に準拠している必要があります。サブスクライバーは、ログとイベントを汎用 Parquet レコードとして扱うことも、OCSF スキーマ イベント クラスを適用して、レコードに含まれる情報をより正確に解釈することもできます。

- Security Lakeは、AWS サービスからのログとイベントを OCSF スキーマに自動的に変換する
- Security Lake はデータを AWS アカウントのS3バケットに保存


# 考察
今回は、Security Lakeについて学びました。次回は実際試してみます。

# 参考

https://docs.aws.amazon.com/ja_jp/security-lake/latest/userguide/what-is-security-lake.html

https://schema.ocsf.io/

https://github.com/ocsf/ocsf-schema