本文の内容は、2025年6月17日にDan Belmonteが投稿したブログ(https://sysdig.com/blog/falco-amazon-eks-add-on/)を元に日本語に翻訳・再構成した内容となっております。
CNCFのランタイムセキュリティプロジェクトであるFalcoが、 AWS検証済みのAmazon EKSアドオンとして正式に利用可能になった ことをお知らせします。これは、Amazon Elastic Kubernetes Service(EKS)ユーザーがランタイムセキュリティをよりアクセスしやすく、より簡単に導入できるようになるという重要なマイルストーンとなります。
なぜこれが重要なのか
クラウドネイティブ環境において、ランタイムセキュリティは不可欠な要件となっています。従来のセキュリティツールは既知の脆弱性とシグネチャに重点を置いていますが、現代の脅威には、ゼロデイ攻撃や内部脅威をリアルタイムで検知できる振る舞い監視が不可欠です。
Falcoは、カーネルレベルでシステムコールを監視することでこのニーズに対応し、コンテナとホスト内で実際に何が起こっているかを詳細に可視化します。FalcoをEKSアドオンとして導入することが画期的な理由は次のとおりです。
1. 簡素化された導入と管理
現在、多くのユーザーはHelmチャートを使用してFalcoをデプロイしていますが、Helmリリースの管理、値ファイルの更新、アップグレードの手動処理が必要です。EKSアドオンを使用すると、以下のメリットが得られます。
- Helm を必要とせずにコマンド 1 つでインストール
- EKS クラスターライフサイクルとの自動統合
- 個別のHelmリポジトリやリリースを管理する必要はありません
- EKSアドオン更新メカニズムによる簡素化された更新
2. AWSサービスとのシームレスな統合
公式アドオンとして、Falco は AWS エコシステムと自然に統合されます。
- セキュリティイベントを Amazon CloudWatch に直接ストリーミング
- AWS CloudTrail イベントのネイティブサポートと syscall モニタリング
- EKS クラスターのメタデータによる自動タグ付けと相関
- 安全な AWS サービスアクセスのために事前設定されたサービスアカウントの IAM ロール (IRSA)
3. 自動化されたライフサイクル管理
Falco の新バージョンがリリースされ、重大なセキュリティアップデートや新たな検知機能が追加された際も、AWS がお使いの EKS バージョンとの互換性を検証しているため、安心してアップデートできます。
アップグレードする前に、新しいバージョンでの重大な変更点がないかリリース ノートを確認することが重要です。
4. クラスタ間での一貫したデプロイメント
複数の EKS クラスターを管理している組織の場合、このアドオンにより、Helm ベースのデプロイメントで発生する可能性のある構成のドリフトがなく、すべての環境で一貫した Falco デプロイメントが保証されます。
はじめる
EKSクラスターへのFalcoのインストールは、コマンド1つを実行するだけで簡単に行えます。開始方法は次のとおりです。
前提条件
- Kubernetes 1.25 以降を実行している EKS クラスター
- Falco EKSアドオンは、Falcoctlアーティファクトレジストリからルールとプラグインをダウンロードするためにネットワーク接続を必要とします。EKSノードが以下のものにアクセスできることを確認してください。
- https://falcosecurity.github.io/falcoctl/index.yaml (Falcoctl レジストリ インデックス)
- ghcr.io (成果物をダウンロードするための GitHub Container Registry)
インストール
注:執筆時点での最新のアドオンバージョンはv0.41.0-eksbuild.1
オプション1: AWS CLIを使用する
export ADD_ON_VERSION=v0.41.0-eksbuild.1
aws eks create-addon \
--cluster-name <cluster-name> \
--addon-name sysdig_falco \
--addon-version ${ADD_ON_VERSION} \
--region <cluster-region>
オプション2: eksctlを使用する
export ADD_ON_VERSION=v0.41.0-eksbuild.1
eksctl create addon \
--cluster <your-cluster-name> \
--name falco \
--version ${ADD_ON_VERSION} \
--region <cluster-region>
オプション3: AWSコンソール経由
- AWSコンソールでEKSクラスターに移動します
- “Add-ons” タブをクリックします
- “Get more add-ons” をクリックし、下部のセクションで “Falco” を検索します。
- 右側のチェックボックスにチェックを入れて次のステップに進みます
- IAMロールとバージョンを設定する
- “Add” をクリック

Falcoルールについて
Falcoルールは、その検知エンジンの中核を成すものです。各ルールは、検知すべき疑わしい振る舞いや悪意のある振る舞いを記述したセキュリティポリシーを定義します。ルールはYAMLで記述され、システムコール、ファイルアクセス、ネットワーク接続、プロセスの動作をリアルタイムで分析できる強力な条件言語を使用しています。
典型的な Falco ルールは次のものから構成されます。
- 条件:検知する特定の動作パターン(例:「コンテナ内にシェルが生成される」)
- 出力:イベントに関するコンテキスト情報を含むアラートメッセージ
- 優先度:重大度レベル (INFO、WARNING、ERROR、CRITICAL)
Falco には、次のような包括的なルール セットが付属しています。
- コンテナ内の端末シェル
- コンテナ内でのNetcatリモートコード実行
- コンテナに新しいバイナリをドロップして実行する
- Linuxカーネルモジュールインジェクションが検知されました
- その他にも多数…
設定されたルールを詳しく調べるには、Github でホストされている Falco ルール ファイル内で確認できます。
Falcoルールのチューニング
EKS アドオンはデフォルトのルールを使用しますが、ルールをロードすることで ConfigMaps を使用してルールをカスタマイズできます。
仕組み
Falco はルール ファイルを順番にロードし、次のことが可能になります。
- 既存のルール を上書きする(優先順位の変更、無効化、条件の変更)
- 新しいカスタムルールを追加する
- すべてのデフォルトルールをそのまま維持する
ルールをカスタマイズする手順
1.ルールをオーバーライドしたConfigMapを作成します(この場合、マニフェストファイルは「my-falco-rules.yaml」と呼ばれます)。
apiVersion: v1
kind: ConfigMap
metadata:
name: my-falco-custom-rules
namespace: falco
data:
my-falco-rules.yaml: |
- rule: Terminal shell in container
override:
enabled: replace
enabled: false
Code language: JavaScript (javascript)
2.ConfigMap をapply します。
kubectl apply -f my-falco-rules.yaml
Code language: CSS (css)
3.DaemonSet にパッチを適用してカスタム ルールをマウントします。
kubectl patch daemonset falco -n falco --type=json -p='[
{bas
"op": "add",
"path": "/spec/template/spec/volumes/-",
"value": {
"name": "custom-rules-volume",
"configMap": {
"name": "my-falco-custom-rules",
"items": [{
"key": "my-falco-rules.yaml",
"path": "my-falco-rules.yaml"
}]
}
}
},
{
"op": "add",
"path": "/spec/template/spec/containers/0/volumeMounts/-",
"value": {
"name": "custom-rules-volume",
"mountPath": "/etc/falco/rules.d/my-falco-rules.yaml",
"subPath": "my-falco-rules.yaml",
"readOnly": true
}
}
]'
Code language: PHP (php)
4.カスタムルール (my-falco-rules.yaml) がポッド内のデフォルトルールとともに正しくロードされていることを確認します。
kubectl logs -n falco -l app.kubernetes.io/name=falco -c falco | grep -i "rules"
Tue Jun 17 11:27:30 2025: /etc/falco/falco_rules.yaml | schema validation: ok
Tue Jun 17 11:27:30 2025: /etc/falco/rules.d/my-falco-rules.yaml | schema validation: ok
Code language: JavaScript (javascript)
重要な注意事項
- 永続性: EKSアドオンの更新後、DaemonSetパッチを再度適用する必要があります。
- テスト:ルールの変更は必ず非本番環境で最初にテストしてください
セキュリティイベントの表示
Falcoルールがトリガーされると、ポッドの出力にイベントが表示されます。イベントは以下を使用して確認できます。
kubectl logs -n falco -l app.kubernetes.io/name=falco
Falco 出力はバッファリングされる可能性があることに注意してください。
次のステップ
- ルールを調整する: デフォルトのルールセットから始めて、ワークロードのパターンに基づいて徐々にカスタマイズします。
- アラートの設定: 重要なFalcoイベントに対してCloudWatchアラームを設定する
- ベストプラクティスを確認する:ランタイムセキュリティについては、Amazon EKS ベストプラクティスガイドをご覧ください。
トラブルシューティング
問題が発生した場合は、Falco ポッドのステータスを確認してください。
kubectl get pods -n falco
kubectl logs -n falco -l app.kubernetes.io/name=falco
kubectl describe daemonset falco -n falco
最新情報を入手する
現在、AWS は EKS アドオンのアップデートに関する自動通知を提供していません。以下の方法で定期的に新しいバージョンを確認することをお勧めします。
aws eks describe-addon-versions --addon-name sysdig_falco --kubernetes-version <your-k8s-version> --region <your-region>
参加する
Falcoは活気のあるコミュニティを持つオープンソースプロジェクトです。コントリビュートの方法は以下の通りです。
- Falco Slackコミュニティに参加する
- falco-rulesリポジトリにルールを投稿する
- GitHubで問題や機能リクエストを報告する
まとめ
Falco が EKS アドオンとして利用可能になったことで、AWS ユーザーは他の AWS サービスと同じ手軽さで、エンタープライズレベルのランタイム脅威検知を導入できるようになりました。コンテナエスケープの防止、暗号通貨マイニングの検知、コンプライアンスの確保など、あらゆる用途に対して、Falco は必要な深い可視性を提供します。
今すぐ Falco アドオンをインストールして、Amazon EKS ワークロードのセキュリティを強化しましょう。