目次
Amazon Security Lake 完全ガイド v2.0
セキュリティデータレイク基盤の一元化・標準化・分析
Amazon Security Lake は、AWS および外部ソース(Okta・CrowdStrike・Palo Alto など 50+ パートナー)のセキュリティログを OCSF(Open Cybersecurity Schema Framework) に自動正規化して S3 に集約するフルマネージドセキュリティデータレイクサービスです。CloudTrail・VPC Flow Logs・Route 53 Resolver Logs・EKS Audit Logs・WAF・GuardDuty・Security Hub などのセキュリティデータを Apache Parquet 形式で保存し、Athena・Splunk・Datadog・IBM QRadar など任意の分析ツールから横断的にクエリ・分析できます。Organizations 全アカウント・マルチリージョンの集約、OCSF v1.8.0(2026 年 3 月)による AI Operation & Privilege Analysis 対応、AWS AppFabric による SaaS ログ自動正規化、国際標準(ITU)への推進など、2025-2026 年の最新動向を網羅した完全リファレンスです。
ドキュメントの目的
本ガイドは以下を対象としています。
- 初心者向け: Security Lake とは何か、OCSF による標準化の意義を学びたい方
- セキュリティエンジニア向け: Source 統合・Subscriber 管理・OCSF スキーマの実装
- CISO / セキュリティリーダー向け: 組織全体のセキュリティログ一元化・脅威ハンティング基盤の構築
- データアナリスト向け: Security Lake からの Athena・SageMaker による分析・機械学習モデル構築
- 意思決定者向け: Splunk Cloud・Datadog・Elastic Security・Sumo Logic・IBM QRadar SaaS との比較・投資判断
2025-2026 年の Security Lake エコシステム
- OCSF v1.8.0(2026 年 3 月): AI Operation サポート(ai_operation, ai_model, message_context)、Privilege Analysis(privilege_info, privilege_attack_info, service_privilege_analysis)、macOS 拡張対応
- OCSF 国際標準化: ITU 加盟国が 2026 年 6 月の国際標準推進を支持。セキュリティスキーマの標準化が進行中
- AWS AppFabric 統合: SaaS アプリケーション(Slack・Salesforce・GitHub 等)のログを自動的に OCSF 形式で Security Lake へ配信
- Amazon OCSF Ready Specialization: AWS Partner Network プログラムで OCSF 対応パートナー の認定・拡大
- Subscriber 拡大: Splunk・Datadog・Elastic・Sumo Logic・QRadar・Crowdstrike・Palo Alto など 50+ パートナー統合
- AI Operation 対応: トークン使用量・ロールベース相互作用追跡による AI ワークロードの可視化
概要
初心者向けメモ: Security Lake は「組織のすべてのセキュリティログを一つの場所に集約・標準化する」サービスです。通常、CloudTrail は CloudTrail コンソール、VPC Flow Logs は VPC コンソール、GuardDuty は GuardDuty コンソールと各サービスごとにログを管理していますが、Security Lake はこれらをすべて S3 に OCSF 形式で統一して保存。Athena でクエリしたり、Splunk に流したり、SageMaker で分析したり自由に活用できます。
Security Lake が実現する 3 つの価値
| 価値 | 説明 |
|---|---|
| ログ統一・集約 | CloudTrail・VPC Flow Logs・GuardDuty・WAF・Route 53・EKS Audit など複数ソースのログを 1 つのデータレイク(S3)に集約 |
| OCSF による標準化 | 異なるフォーマットのログを OCSF という統一スキーマに自動変換。Parquet 形式で保存効率も向上 |
| マルチソース分析 | Athena・Splunk・Datadog・Custom App が同じ OCSF スキーマで横断クエリ可能。異なるツール間の手動 ETL 不要 |
Security Lake が解決する課題
1. セキュリティログの分散管理と可視性の喪失
課題:
CloudTrail ログ → CloudTrail S3(独自形式)
VPC Flow Logs → VPC コンソール(テキスト形式)
GuardDuty 検出 → GuardDuty コンソール(JSON)
WAF ログ → S3 カスタムフォルダ
Route 53 DNS ログ → CloudWatch Logs
↓
複数のログストア・複数のフォーマット・統一ダッシュボードなし
→ 脅威ハンティングに時間。監査トレール追跡困難
Security Lake の解決:
全ログソース
↓ OCSF 自動正規化
S3 Data Lake(Apache Parquet・OCSF 統一スキーマ)
↓ Athena / Splunk / SageMaker
単一ダッシュボード・統一クエリで脅威分析
2. 外部 SIEM との統合コストと複雑性
課題: Splunk・Datadog・QRadar などの外部 SIEM を導入する場合、各 AWS サービスのログを SIEM フォーマットに変換する独自 ETL パイプライン、変換ロジックの保守が追加コストになる。
Security Lake の解決: OCSF 対応パートナー(Splunk・Datadog・Elastic・Sumo Logic・IBM QRadar・Crowdstrike・Palo Alto など)が Subscriber として Security Lake の OCSF ログを直接消費可能。AWS → SIEM の標準化されたデータフローが実現。
3. マルチアカウント・マルチリージョン集約の複雑性
課題: 50 アカウント・10 リージョン環境で、各アカウント・各リージョンのセキュリティログを一箇所に集約するには手動で各リージョンの S3 バケットを作成・ログ転送設定が必要。
Security Lake の解決: Organizations 統合 + 集約リージョン(Rollup Region)指定で、自動的に全アカウント・全リージョンのログが中央 S3 に集約。ライフサイクルポリシーも統一管理。
4. ログ保持・コスト管理の非効率性
課題: CloudTrail ログは 90 日、VPC Flow Logs は 30 日など保持期間がバラバラ。長期保持する場合 Glacier 移行も各サービス個別対応。
Security Lake の解決: Security Lake で保持期間を一元管理。Apache Parquet + S3 Intelligent-Tiering で古いログは自動的に低コスト Glacier に移行。7 年保持も容易。
主要な特徴
| 特徴 | 説明 |
|---|---|
| OCSF 標準スキーマ | AWS・外部ソースのログを統一 OCSF フォーマットに自動変換。v1.8.0 で AI Operation・Privilege Analysis 対応 |
| 自動データ正規化 | CloudTrail JSON・VPC Flow Logs テキスト・Route 53 バイナリ等を Parquet OCSF に変換。手動 ETL 不要 |
| Parquet ストレージ | Apache Parquet 圧縮形式で保存。S3 ストレージコスト 70% 削減、Athena クエリ速度向上 |
| Subscriber 統合 | Splunk・Datadog・Elastic・Sumo Logic・IBM QRadar・Custom App が OCSF ログを直接消費 |
| Organizations 集約 | 複数アカウント・複数リージョンのログを指定リージョン(Rollup)に自動集約 |
| Lake Formation 統合 | AWS Glue Data Catalog テーブルを自動作成。Athena でスキーマレスクエリ可能 |
| ライフサイクル管理 | S3 ライフサイクルで古いログ自動アーカイブ(Glacier・Deep Archive)。保持期間も統一 |
| EventBridge 通知 | 新しいログが S3 に書き込まれたら EventBridge 通知。Lambda で自動処理可能 |
| 暗号化・監査 | KMS・VPC Endpoint でセキュアなログ転送。CloudTrail で Security Lake 自体の操作も記録 |
アーキテクチャ
┌─────────────────────────────────────────────────────────────┐
│ AWS ネイティブソース │
├─────────────────────────────────────────────────────────────┤
│ CloudTrail(管理 / データイベント) │
│ VPC Flow Logs(Layer 4 トラフィック) │
│ Route 53 Resolver Query Logs(DNS クエリ) │
│ EKS Audit Logs(Kubernetes API 呼び出し) │
│ AWS WAFv2 Logs(Web ACL マッチング) │
│ GuardDuty(脅威検知) │
│ Security Hub CSPM(コンプライアンス検出) │
│ AWS Config(リソース構成変更) │
└────────┬──────────────────────────────────────────────────┘
│
┌──┴──────────────────────────┐
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────────┐
│ External Sources │ │ Custom Sources │
├──────────────────┤ ├──────────────────────┤
│ Okta Events │ │ OCSF JSON データ │
│ CrowdStrike │ │ On-Premises ログ │
│ Palo Alto │ │ サードパーティ SIEM │
│ Microsoft 365 │ │ アプライアンス │
│ Slack │ │ HTTP エンドポイント │
│ Salesforce │ │ │
│ GitHub Enterprise│ │ │
└────────┬─────────┘ └──────────┬──────────┘
│ │
└──────────────┬───────────┘
▼
┌───────────────────────┐
│ Security Lake Service │
│ (OCSF 正規化エンジン) │
│ │
│ • スキーマ検証 │
│ • Parquet 変換 │
│ • パーティション作成 │
│ • メタデータ管理 │
└───────────┬───────────┘
▼
┌───────────────────────┐
│ S3 Data Lake Bucket │
│ (Parquet + OCSF) │
│ │
│ /yyyy/mm/dd/ │
│ hh/mm/source/ │
│ partition.parquet │
└───────────┬───────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌────────────────┐
│ Athena │ │ Lake Formation│ │ Subscriber │
│ (SQL Query) │ │ (Tables) │ │ (SIEM など) │
└─────────────┘ └──────────────┘ │ • Splunk │
│ │ │ • Datadog │
▼ ▼ │ • Elastic │
┌─────────────────────────────────┤ • Sumo Logic │
│ 脅威分析・ハンティング │ • QRadar │
│ コンプライアンス監査 │ • Custom App │
│ 機械学習モデル構築 │ │
│ セキュリティ運用レポート └────────────────┘
└─────────────────────────────────┘
EventBridge通知:
S3 PutObject → EventBridge → Lambda / SNS / SQS
OCSF(Open Cybersecurity Schema Framework)
OCSF とは
OCSF は Linux Foundation の主導で開発されたセキュリティログの標準スキーマ。様々なセキュリティソースのログを統一フォーマットで表現し、SIEM・分析ツール・ML モデルが同じスキーマで処理できるようにするフレームワーク。
OCSF v1.8.0(2026 年 3 月)の主要アップデート
v1.8.0 リリース内容:
1. AI Operation 対応
- 新プロファイル: ai_operation
- 新オブジェクト: ai_model, message_context
- トークン使用量メトリクス
- ロールベース相互作用追跡
→ LLM・AI ワークロードの可視化
2. Privilege Analysis(権限分析)
- 新オブジェクト: privilege_info, privilege_attack_info, service_privilege_analysis
- MITRE ATT&CK テクニック・マッピング
- 未使用権限検出
- アクセスリスク評価
→ 特権昇格・ラテラルムーブメント検出
3. macOS 拡張
- プロセスオブジェクトに egid・euid 追加
- Linux 拡張との統一
4. ITU 国際標準化
- ITU(国連通信機関)が 2026 年 6 月推進予定
- セキュリティスキーマの国際標準規格化へ
OCSF スキーマの構造
{
"metadata": {
"version": "1.8.0",
"profiles": ["cloud", "endpoint"],
"product": "Security Lake"
},
"severity": "HIGH",
"activity_id": 3, // 起動
"activity_name": "Start Application",
// 基本フィールド
"time": 1707000000000,
"source": {
"ip": "203.0.113.45",
"port": 54321
},
"principal": {
"user": {
"uid": "alice",
"name": "alice"
}
},
"resource": {
"data": {
"name": "/home/alice/.ssh/id_rsa"
}
},
// プロファイル依存フィールド
"process": {
"name": "ssh-keygen",
"pid": 1234
},
"privilege_info": { // v1.8.0 新機能
"privilege": "system.root",
"privilege_display_name": "Root Access"
}
}
Security Lake のデータソース詳細
AWS ネイティブソース
| ソース | 説明 | OCSF クラス |
|---|---|---|
| CloudTrail | AWS API 呼び出し(管理 / データイベント) | API Activity, Identity & Access Management |
| VPC Flow Logs | VPC トラフィック(Layer 4) | Network Traffic |
| Route 53 Query Logs | DNS クエリ | DNS Query Activity |
| EKS Audit Logs | Kubernetes API サーバーログ | API Activity |
| WAFv2 Logs | Web ACL マッチング・ブロック | Detections |
| GuardDuty | 脅威検知(IP・Domain・Hash) | Findings |
| Security Hub CSPM | セキュリティ標準違反 | Findings |
| AWS Config | リソース構成・変更履歴 | Inventory / Discovery |
外部ソース(50+ パートナー)
| カテゴリ | パートナー例 |
|---|---|
| ID / Access | Okta, Azure AD, Active Directory, PingOne |
| Endpoint Security | CrowdStrike, Jamf, Crowdstrike, SentinelOne, Sophos |
| SIEM / Analytics | Splunk, Elastic, Datadog, Sumo Logic, IBM QRadar |
| SaaS Logs | Slack, Salesforce, GitHub, Box, Microsoft 365 |
| Network Security | Palo Alto Networks, Fortinet, Cisco, Zscaler |
| Cloud Security | Cloudflare, Akamai, Fastly |
| Custom | OCSF JSON 形式の任意のソース |
主要ユースケース(10+)
1. マルチアカウント脅威ハンティング
要件: 50 アカウント・10 リージョン環境で、特定の外部 IP から全リージョンへのアクセスパターンを調査。
実装:
# Security Lake 有効化(Organizations)
aws securitylake create-data-lake \
--regions us-east-1 us-west-2 eu-west-1 \
--account-ids [all 50 account IDs]
# Athena でクエリ
SELECT
time,
source.ip,
principal.user.name,
resource.cloud.region,
action,
COUNT(*) as event_count
FROM security_lake.ocsf_api_activity
WHERE source.ip = '203.0.113.99'
AND time >= '2026-04-20'
GROUP BY source.ip, principal.user.name, resource.cloud.region, action
ORDER BY event_count DESC
成果: 特定 IP からのアクセスが全 50 アカウント・3 リージョンで確認。スクリーニングから検出まで数分。
2. OCSF 対応 SIEM への統合
要件: 既存 Splunk Enterprise を Security Lake のサブスクライバーとして利用。
実装:
# Security Lake Subscriber 作成
aws securitylake create-subscriber \
--subscriber-name "splunk-integration" \
--sources [ "aws-cloudtrail", "vpc-flow-logs" ] \
--regions [ "us-east-1" ] \
--source-account-id "111111111111"
# Splunk HEC でデータ受信設定
# ※ S3 イベント通知 → Lambda → Splunk HEC へのデータ転送
成果: AWS CloudTrail・VPC Logs が自動的に Splunk に流入。既存の Splunk ダッシュボード・アラートが即座に AWS データ対応。
3. SageMaker で ML 異常検知モデル構築
要件: VPC Flow Logs から異常なトラフィックパターン(DDoS・データ流出)を自動検知。
実装:
import pandas as pd
import sagemaker
# Security Lake から VPC Flow Logs 取得
athena_query = """
SELECT
src_ip, dst_ip, src_port, dst_port,
bytes_in, bytes_out, protocol, action
FROM security_lake.vpc_flow_logs
WHERE date_partition >= '2026-03-01'
"""
# Athena で実行
df = pd.read_sql(athena_query, athena_connection)
# SageMaker で Isolation Forest モデル学習
from sagemaker.estimators import Estimator
estimator = Estimator(
image_uri="246618743249.dkr.ecr.us-east-1.amazonaws.com/sagemaker-xgboost:latest",
role=sagemaker_role,
instance_count=1,
instance_type="ml.m5.xlarge"
)
estimator.fit({'training': s3_data_uri})
# リアルタイム推論エンドポイント作成
predictor = estimator.deploy(
initial_instance_count=1,
instance_type='ml.m5.large'
)
成果: 正常トラフィック学習後、異常スコア > 0.7 を自動検知。従来の固定閾値より検知精度向上。
4. SOC2 / FedRAMP 監査ログ保持
要件: CloudTrail ログを 7 年間保持。監査人が特定期間のログを Athena で即座にクエリ可能。
実装:
# ライフサイクルポリシー設定
aws s3api put-bucket-lifecycle-configuration \
--bucket security-lake-prod \
--lifecycle-configuration '{
"Rules": [
{
"Id": "archive-after-90days",
"Status": "Enabled",
"Transitions": [
{
"Days": 90,
"StorageClass": "GLACIER"
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"Expiration": {
"Days": 2555 # 7 年
}
}
]
}'
# クエリ例:特定期間のアカウント削除操作
SELECT
time, principal.user.arn, event_name, request_parameters
FROM security_lake.cloudtrail_api_activity
WHERE
event_name IN ('DeleteUser', 'DeleteRole', 'DeleteAccessKey')
AND time BETWEEN '2019-01-01' AND '2026-04-26'
ORDER BY time DESC
成果: 7 年分 CloudTrail(数 TB)を Glacier で保持。クエリ速度は Parquet により高速。監査コスト 60% 削減。
5. Organizations 全アカウント IAM リスク分析
要件: 全 50 アカウントの IAM ユーザー・ロール・パーミッションの一括分析。過剰権限を検出。
実装:
# CloudTrail API Activity から IAM アクション分析
SELECT
principal.user.arn,
COUNT(DISTINCT action) as unique_actions_count,
COUNT(*) as total_api_calls,
resource.cloud.account_id
FROM security_lake.cloudtrail_api_activity
WHERE action LIKE 'iam:%'
AND time >= date_format(date_add('day', -30, now()), '%Y-%m-%d')
GROUP BY principal.user.arn, resource.cloud.account_id
HAVING unique_actions_count > 50 # 異常に多い権限を使用
ORDER BY unique_actions_count DESC
成果: 過剰権限ユーザーを自動検出。最小権限ポリシーへの移行計画が容易に。
6. PrivilegeAnalysis(v1.8.0)による権限昇格検知
要件: 非 root ユーザーから root への昇格。MITRE ATT&CK T1548 (Abuse Elevation Control Mechanism) を検知。
実装:
-- v1.8.0 privilege_info オブジェクト使用
SELECT
time,
principal.user.name,
process.name,
privilege_info.privilege,
privilege_info.privilege_attack_info.techniques as mitre_technique
FROM security_lake.endpoint_activity
WHERE
privilege_info.privilege = 'system.root'
AND principal.user.privileges_before NOT LIKE '%root%'
AND time >= date_format(date_add('day', -1, now()), '%Y-%m-%d')
ORDER BY time DESC
成果: 権限昇格の時間・ユーザー・プロセス・使用技法を一括把握。事後分析が数倍高速化。
7. AWS AppFabric 統合による SaaS ログ一元化
要件: Slack・Salesforce・GitHub Enterprise のログを OCSF 形式で Security Lake に自動集約。
実装:
# AppFabric で Slack・Salesforce・GitHub を登録
aws appfabric create-app-authorization \
--app-bundle-identifier "prod-bundle" \
--app-name "slack" \
--auth-type "oauth2"
# AppFabric が自動的に OCSF に正規化 → Security Lake へ配信
# → Security Lake Athena で横断クエリ可能
成果: 5+ SaaS の監査ログが Security Lake に統一フォーマットで流入。Splunk・Datadog 等で一括監視。
8. Route 53 DNS ログ + Network Traffic 相関分析
要件: DNS クエリ(Route 53)と VPC Flow Logs を相関させ、DNS トンネリング(データ流出)を検知。
実装:
-- DNS クエリと対応するネットワークトラフィック相関
SELECT
r53.time,
r53.query_data.hostname,
r53.source.ip,
vpcflw.bytes_out,
vpcflw.packets_out,
CASE
WHEN vpcflw.bytes_out > 1000000 THEN 'SUSPICIOUS_HIGH_DATA'
WHEN vpcflw.packets_out > 50000 THEN 'SUSPICIOUS_HIGH_PACKETS'
ELSE 'NORMAL'
END as risk_level
FROM security_lake.route53_query_activity r53
JOIN security_lake.vpc_flow_logs vpcflw
ON r53.source.ip = vpcflw.src_ip
AND r53.time = vpcflw.time
WHERE r53.query_data.hostname LIKE '%.dns-tunneling.%'
成果: DNS トンネリング・C2 通信の疑い「デバイスを特定」→「通信量確認」→「ブロック」。まで自動化。
9. GuardDuty 検出 + CloudTrail API ログ相関
要件: GuardDuty が異常を検知 → Security Lake で該当 API ログを即座に検索・根本原因分析。
実装:
# GuardDuty Finding: UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
# → EventBridge トリガー → Lambda
def lambda_handler(event, context):
finding = event['detail']
principal_arn = finding['resource']['instanceDetails']['iamInstanceProfile']
# Security Lake で該当ユーザーの API ログを検索
athena_query = f"""
SELECT time, event_name, source_ip, request_parameters
FROM security_lake.cloudtrail_api_activity
WHERE principal.user.arn = '{principal_arn}'
AND time >= date_format(
date_add('hour', -6,
from_iso8601_timestamp('{finding['time']}')
),
'%Y-%m-%d %H:%i:%S'
)
ORDER BY time DESC
"""
# Athena で実行 → セキュリティ運用チーム通知
成果: 脅威検知から根本原因分析まで数分で完了。人的調査コスト 80% 削減。
10. Compliance Posture Tracking(NIST / PCI DSS)
要件: CloudTrail・VPC Flow Logs・Config ログから NIST 800-53 SC-4(情報フロー制御)への準拠状況を自動スコアリング。
実装:
-- VPC Flow Logs から許可されないポート通信を検知
SELECT
time,
src_ip, src_port,
dst_ip, dst_port,
protocol,
COUNT(*) as blocked_attempts,
'SC-4: Unauthorized port detected' as nist_control
FROM security_lake.vpc_flow_logs
WHERE
action = 'REJECT'
AND dst_port IN (23, 69, 135, 139, 445, 3389) -- 危険なポート
GROUP BY src_ip, dst_ip, protocol
ORDER BY blocked_attempts DESC
成果: NIST・PCI DSS 各コントロールへの準拠度を自動集計。監査レポート自動生成。
設定・操作の具体例
CLI による設定例
1. Security Lake 有効化(Organizations アカウント)
# Prerequisites: AWS Organizations enabled
# 1. Security Lake 有効化
aws securitylake create-data-lake \
--regions us-east-1 eu-west-1 ap-northeast-1 \
--account-ids 111111111111 222222222222 333333333333
# 2. データソース有効化
aws securitylake update-data-lake-source \
--account-id 111111111111 \
--source "AWS::CloudTrail::Management" \
--enable true
# 3. VPC Flow Logs ソース有効化
aws securitylake update-data-lake-source \
--account-id 111111111111 \
--source "AWS::VPC::FlowLogs" \
--enable true
# 4. Route 53 Resolver Logs ソース有効化
aws securitylake update-data-lake-source \
--account-id 111111111111 \
--source "AWS::Route53::ResolverLogs" \
--enable true
# 5. 有効化状況確認
aws securitylake describe-data-lake \
--account-id 111111111111
2. Subscriber 作成(Splunk 連携)
# Splunk SIEM を Subscriber として登録
aws securitylake create-subscriber \
--subscriber-name "splunk-security-prod" \
--access-type "S3" \
--sources '[
{
"source_name": "aws.cloudtrail",
"enabled": true
},
{
"source_name": "aws.vpc_flow_logs",
"enabled": true
},
{
"source_name": "aws.guard-duty",
"enabled": true
}
]' \
--subscription-protocol "s3" \
--subscription-endpoint "s3://splunk-data-lake-bucket"
# Subscriber 情報取得
aws securitylake get-subscriber \
--subscriber-name "splunk-security-prod"
# 新規オブジェクト書き込み時の通知設定
aws s3api put-bucket-notification-configuration \
--bucket security-lake-prod \
--notification-configuration '{
"EventBridgeConfiguration": {}
}'
3. Athena でクエリ(脅威分析)
# SQL クエリ作成・実行
aws athena start-query-execution \
--query-string "
SELECT
time,
principal.user.arn,
event_name,
source.ip,
action,
error_code
FROM security_lake.aws_cloudtrail_api_activity
WHERE error_code LIKE '%Unauthorized%'
AND time >= date_format(date_add('day', -7, now()), '%Y-%m-%d')
ORDER BY time DESC
LIMIT 1000
" \
--query-execution-context Database=security_lake \
--result-configuration OutputLocation=s3://athena-results/
# 結果取得
aws athena get-query-results \
--query-execution-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
SDK(Python)による設定例
import boto3
import pandas as pd
from pyathena import connect
# 1. Security Lake Client
client = boto3.client('securitylake', region_name='us-east-1')
# Subscriber 一覧取得
response = client.list_subscribers()
print("Subscribers:", response['subscribers'])
# 2. Athena でセキュリティログクエリ
connection = connect(s3_output='s3://athena-results/')
# GuardDuty 検出(過去 30 日)
query = """
SELECT
time,
principal.user.arn,
severity,
finding_type,
description
FROM security_lake.aws_guardduty_findings
WHERE time >= date_format(date_add('day', -30, now()), '%Y-%m-%d')
AND severity >= 'MEDIUM'
ORDER BY time DESC
"""
df = pd.read_sql(query, connection)
print(f"GuardDuty Findings: {len(df)}件")
print(df)
# 3. マルチアカウント CloudTrail 分析
cloudtrail_query = """
SELECT
resource.cloud.account_id,
principal.user.arn,
COUNT(*) as api_calls
FROM security_lake.aws_cloudtrail_api_activity
WHERE time >= date_format(date_add('day', -1, now()), '%Y-%m-%d')
GROUP BY resource.cloud.account_id, principal.user.arn
HAVING COUNT(*) > 1000
ORDER BY api_calls DESC
"""
df_ct = pd.read_sql(cloudtrail_query, connection)
print(f"High-Activity IAM Users: {len(df_ct)} 件")
print(df_ct)
# 4. VPC Flow Logs で通信異常検知
vpc_query = """
SELECT
src_ip, dst_ip, dst_port, protocol,
SUM(bytes_out) as total_bytes_out,
COUNT(*) as flow_count
FROM security_lake.aws_vpc_flow_logs
WHERE
time >= date_format(date_add('day', -1, now()), '%Y-%m-%d')
AND action = 'REJECT'
GROUP BY src_ip, dst_ip, dst_port, protocol
ORDER BY total_bytes_out DESC
LIMIT 100
"""
df_vpc = pd.read_sql(vpc_query, connection)
print(f"Rejected Flows (Top 100): {len(df_vpc)} 件")
IaC(CloudFormation)による設定例
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Security Lake Setup with CloudFormation'
Resources:
# Security Lake Data Lake
SecurityLakeDataLake:
Type: AWS::SecurityLake::DataLake
Properties:
Regions:
- us-east-1
- eu-west-1
- ap-northeast-1
# CloudTrail ソース有効化
CloudTrailSource:
Type: AWS::SecurityLake::DataLakeSource
Properties:
DataLakeAccount: !Ref AWS::AccountId
SourceName: AWS::CloudTrail::Management
Enabled: true
Regions:
- us-east-1
# VPC Flow Logs ソース有効化
VPCFlowLogsSource:
Type: AWS::SecurityLake::DataLakeSource
Properties:
DataLakeAccount: !Ref AWS::AccountId
SourceName: AWS::VPC::FlowLogs
Enabled: true
Regions:
- us-east-1
- eu-west-1
# GuardDuty ソース有効化
GuardDutySource:
Type: AWS::SecurityLake::DataLakeSource
Properties:
DataLakeAccount: !Ref AWS::AccountId
SourceName: AWS::GuardDuty
Enabled: true
Regions:
- us-east-1
# Subscriber(Splunk)
SplunkSubscriber:
Type: AWS::SecurityLake::Subscriber
Properties:
SubscriberName: splunk-security-prod
SubscriberDescription: Splunk SIEM integration
AccessType: S3
Sources:
- SourceName: AWS::CloudTrail::Management
Enabled: true
- SourceName: AWS::VPC::FlowLogs
Enabled: true
- SourceName: AWS::GuardDuty
Enabled: true
SubscriptionProtocol: s3
SubscriptionEndpoint: !GetAtt SplunkBucket.Arn
# S3 バケット(Splunk データ受信)
SplunkBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'splunk-security-lake-${AWS::AccountId}'
VersioningConfiguration:
Status: Enabled
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
# Athena クエリ結果用 S3 バケット
AthenaResultsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'athena-results-${AWS::AccountId}'
# Athena ワークグループ
AthenaWorkgroup:
Type: AWS::Athena::WorkGroup
Properties:
Name: security-lake-queries
Description: Workgroup for Security Lake analysis
RecursiveDeleteOption: true
WorkGroupConfiguration:
ResultConfigurationUpdates:
OutputLocation: !Sub 's3://${AthenaResultsBucket}/'
EnforceWorkGroupConfiguration: true
Outputs:
DataLakeArn:
Description: Security Lake ARN
Value: !GetAtt SecurityLakeDataLake.Arn
SplunkBucketName:
Description: S3 Bucket for Splunk
Value: !Ref SplunkBucket
AthenaBucketName:
Description: S3 Bucket for Athena Results
Value: !Ref AthenaResultsBucket
類似サービス比較表
| 項目 | Security Lake | Splunk Cloud | Datadog SIEM | Elastic Security | Sumo Logic | IBM QRadar SaaS |
|---|---|---|---|---|---|---|
| デプロイ | フルマネージド | SaaS | SaaS | Self-hosted / Cloud | SaaS | SaaS |
| ネイティブスキーマ | OCSF(v1.8.0) | Splunk CIM | Datadog スキーマ | ECS | Sumo スキーマ | QRadar スキーマ |
| AWS データソース | 8+ ネイティブ | 連携可 | 連携可 | 連携可 | 連携可 | 連携可 |
| ログ保存 | S3 Parquet | Splunk インデックス | Datadog Database | Elasticsearch | Sumo インデックス | QRadar Database |
| クエリ言語 | SQL(Athena) | SPL | DQL | KQL | LogQL | Ariel |
| マルチテナント | 全アカウント自動 | 別環境 | ○ | ○ | ○ | ○ |
| OCSF サポート | ネイティブ対応 | Splunk アドオン | あり | あり | あり | あり |
| 機械学習 | SageMaker 統合 | ML Toolkit | ビルトイン | Elastic ML | ビルトイン | Offense scoring |
| 価格帯 | $0.003 / GB | 月額 $ | 月額 $ | ライセンス | 月額 $ | 月額 $$ |
| 学習曲線 | 低(SQL) | 中(SPL) | 中 | 中(KQL) | 中 | 高(Ariel) |
ベストプラクティス
✅ 推奨
| プラクティス | 説明 | 効果 |
|---|---|---|
| 組織全体統一 | Organizations で全アカウント・全リージョンを統一集約 | 脅威の全社可視化・横断分析の効率化 |
| ライフサイクル管理 | 新規ログは S3 Standard → 90 日後 Glacier → 1 年後 Deep Archive | ストレージコスト 70% 削減 |
| 複数ソース有効化 | CloudTrail・VPC Flow・GuardDuty・WAF 全て有効化 | 多角的脅威分析・コンプライアンス証拠 |
| EventBridge 統合 | S3 PutObject イベント → Lambda → SNS・SIEM リアルタイム通知 | インシデント対応時間を分から秒へ短縮 |
| Subscriber 構成 | 複数 Subscriber(Splunk + Datadog など)で冗長性確保 | 単一 SIEM 障害時も運用継続 |
| Athena の定期実行 | 毎日深夜に複数クエリを実行 → CSV エクスポート → 経営層レポート | セキュリティ KPI の可視化 |
| OCSF 準拠確認 | 新規ログソース追加時に OCSF スキーマ検証 | 将来の SIEM 移行がスムーズ |
| IAM 権限最小化 | Subscriber に必要最小限の S3 読み取り権限のみ付与 | データ漏洩リスク低減 |
❌ アンチパターン
| アンチパターン | 問題点 | 改善方法 |
|---|---|---|
| 単一リージョン集約 | 一つのリージョンが障害時、全社のセキュリティ可視性が喪失 | 複数リージョン(us-east-1, eu-west-1 等)で分散 |
| ライフサイクル設定なし | S3 ストレージコスト無制限増加 | 9 0 日 Glacier・365 日 Deep Archive・2555 日削除設定 |
| CloudTrail 無効 | API 呼び出しの証跡が残らない → セキュリティ監査失敗 | 全リージョン CloudTrail 必須有効化 |
| Parquet 未変換 | JSON ログのままでは Athena クエリが遅い(スキャン効率低) | OCSF → Parquet 自動変換(デフォルト) |
| 複数 SIEM 未統合 | Splunk と Datadog が別々のログ保有 → コンプライアンス穴 | Security Lake を単一ソースにして複数 SIEM が同じデータ参照 |
| 権限が過剰 | Subscriber に S3 全バケット・全リージョン読み取り | Subscriber ごとに必要なソース・リージョンのみ限定 |
| アラート設定なし | 脅威を検知しても誰も知らない状態 | EventBridge → SNS / Slack で自動通知 |
トラブルシューティング表
| 症状 | 原因 | 対応 |
|---|---|---|
| Security Lake データが増えない | CloudTrail・VPC Flow Logs が無効化されている | aws securitylake update-data-lake-source --enable true で再有効化 |
| Athena クエリが遅い | JSON ログがまだ Parquet 変換されていない | Lake Formation テーブル確認。変換遅延は最大 24 時間 |
| Subscriber がデータを受信できない | Subscriber IAM ロール権限不足 | S3 GetObject・ListBucket 権限確認 |
| OCSF スキーマ エラー | カスタムデータソースが OCSF 仕様外 | OCSF ドキュメント参照。version・metadata 必須 |
| Organizations 統合失敗 | Organizations 有効化されていない | Organizations コンソールで有効化確認 |
| リージョン別データ不一致 | 特定リージョンのセキュリティレイク設定が異なる | 全リージョン同じソース設定で統一 |
| S3 ストレージコスト高い | ライフサイクル設定なし(全て Standard) | Glacier・Deep Archive へのトランジション設定 |
| CloudFormation デプロイ失敗 | IAM 権限不足 | securitylake:CreateDataLake・securitylake:UpdateDataLakeSource 権限確認 |
2025-2026 最新動向
OCSF v1.8.0 と AI Operation 対応(2026 年 3 月)
- AI Operation プロファイル: LLM・生成 AI ワークロードのトークン使用量・相互作用追跡をネイティブサポート
- Privilege Analysis: MITRE ATT&CK との統合。権限昇格・ラテラルムーブメント検出が自動化
- macOS 拡張: Linux・macOS 統一スキーマで endpoint レベルの脅威検知が強化
ITU 国際標準化への推進(2026 年 6 月)
- ITU 加盟国(国連通信機関)が OCSF を国際標準規格として推進予定
- OCSF が ISO・IEC 等と並ぶ国際標準化により、グローバルセキュリティ規制への対応が容易に
AWS AppFabric との統合深化
- SaaS ログ(Slack・Salesforce・GitHub・Microsoft 365・Box 等)の自動 OCSF 正規化
- Security Lake + AppFabric で SaaS・AWS・オンプレミスのログが統一スキーマで流入
Amazon OCSF Ready Specialization
- AWS Partner Network プログラムが OCSF 対応パートナー(Splunk・Datadog・Elastic 等)を認定
- パートナー側の OCSF 対応化が加速。互換性・統合品質が向上
機械学習・異常検知の自動化
- SageMaker との統合深化で Security Lake のログから自動的に異常検知モデルを生成
- Bedrock(生成 AI)による根本原因分析・推奨事項自動生成
学習リソース・参考文献
公式ドキュメント・ガイド
- Amazon Security Lake ユーザーガイド
- Security Lake API Reference
- OCSF(Open Cybersecurity Schema Framework)ドキュメント
- AWS Security Lake ホワイトペーパー
- Security Lake 料金ページ
ベンダー・パートナー リソース
- Splunk: Security Lake Connector
- Datadog: AWS Security Lake Integration
- Elastic: OCSF Support
- IBM QRadar: OCSF インテグレーション
- Sumo Logic: AWS Security Lake ソースコネクタ
AWS ブログ・セミナー
- AWS Security Blog - Security Lake
- OCSF Achieves ITU Support
- Transform security logs into OCSF format
- Amazon Security Lake Generally Available
OSS・ユーティリティ
実装チェックリスト
- [ ] AWS Organizations が有効化されているか確認
- [ ] Organizations 内の全アカウントに IAM ロール(SecurityLakeAdministrator)を付与
- [ ] Security Lake ホーム リージョン(us-east-1 推奨)選択
- [ ] CloudTrail・VPC Flow Logs・GuardDuty・WAF・Route 53 Logs 全て有効化
- [ ] Rollup Region(eu-west-1 等)を指定してマルチリージョン集約設定
- [ ] S3 ライフサイクルポリシー設定(90 日 Glacier・365 日 Deep Archive・2555 日削除)
- [ ] Lake Formation テーブル作成確認(aws_cloudtrail_api_activity 等)
- [ ] Athena ワークグループ・クエリ結果 S3 バケット準備
- [ ] EventBridge ルール設定(S3 PutObject → SNS / Lambda)
- [ ] Subscriber(Splunk・Datadog 等)作成・認証情報設定
- [ ] IAM ロール(Subscriber) 権限確認(S3 GetObject・ListBucket)
- [ ] CloudFormation テンプレート作成・組織内展開
- [ ] セキュリティ監査ログアクセステスト(Athena クエリ実行)
- [ ] SageMaker での異常検知モデル構築(オプション)
- [ ] Slack / PagerDuty 通知統合設定
- [ ] 定期的な脅威ハンティング クエリ・スケジュール設定
- [ ] コンプライアンスレポート自動生成(PCI DSS / NIST)
まとめ
Amazon Security Lake は、企業全体のセキュリティ監視・分析・コンプライアンスの基盤を構築するフルマネージドサービスです。
主な利点
- OCSF標準化: AWS・外部ソース・SaaS のログが統一スキーマで流入
- マルチソース分析: Athena・Splunk・Datadog・SageMaker で横断分析
- スケーラビリティ: 50+ アカウント・10+ リージョンの集約も自動化
- コスト最適化: Parquet・S3 Intelligent-Tiering で ストレージコスト 70% 削減
- 最新標準対応: OCSF v1.8.0(AI Operation・Privilege Analysis)、ITU 国際標準化
推奨対象組織
- 中堅〜大企業: マルチアカウント環境でセキュリティ一元管理が必須
- 金融・医療・公官庁: コンプライアンス監査ログ保持が要求される
- SaaS 企業: 顧客データセキュリティ監視・監査報告書自動生成が必須
Security Lake は 2026 年の AWS セキュリティ基盤の最優先投資対象 です。OCSF 国際標準化、AppFabric による SaaS 統合、Bedrock による AI 駆動分析など、エコシステムの急速な拡大が進行中。今から投資することで、5 年後の規制・脅威環境にも対応可能な「将来耐性」の高いセキュリティデータ基盤が実現します。
最終更新:2026-04-27 バージョン:v2.0