EKS クラスターで監査ログ記録を有効にする設定手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。

この記事では、EKS クラスターで監査ログ記録を有効にする方法について、リスクと対策を解説します。

ポリシーの説明

Amazon EKS クラスターの監査ログは、Kubernetesコントロールプレーンで実行されるすべてのAPIコールを記録します。これらのログは、誰が、いつ、どのリソースに対して、どのような操作を行ったかという重要な情報を提供します。

監査ログが記録する主要な情報:

  • 認証・認可イベント: ユーザー/サービスアカウントの認証試行、RBAC権限チェック
  • リソース操作: Pod、Service、Deployment等の作成・更新・削除
  • 設定変更: ConfigMap、Secret、NetworkPolicyの変更
  • アクセス情報: ソースIP、ユーザーエージェント、タイムスタンプ
  • レスポンス: 操作の成功/失敗、エラーコード、理由

監査ログを有効にすることで、セキュリティインシデントの調査、コンプライアンス要件の遵守、およびクラスター内のアクティビティの可視性を確保できます。Kubernetes 1.19以降では監査ログがデフォルトで有効化されていますが、明示的な設定と適切な管理が必要です。

修復方法

コンソールでの修復手順

AWSのコンソールを使用して、EKSクラスターの監査ログ記録を有効にします。

  1. AWSマネジメントコンソールにログインし、Amazon EKSサービスに移動します
  2. 左側のナビゲーションペインから「クラスター」を選択します
  3. 対象のEKSクラスターをクリックして詳細ページを開きます
  4. 「設定」タブを選択し、「ログ記録」セクションを確認します
  5. *「ログタイプの管理」**ボタンをクリックします
  1. 以下のログタイプを有効化します(推奨設定):
    • Audit(監査): Kubernetesの監査ログ(必須)
      • すべてのAPIリクエストと応答を記録
      • RBAC認可の成功/失敗を追跡
    • Authenticator: 認証関連のログ(推奨)
      • IAM/OIDC認証の詳細
      • 認証失敗の原因分析に有用
    • API: APIサーバーのログ(オプション)
      • APIサーバーのエラーとヘルスチェック
      • デバッグ時に有用
    • Controller manager: コントローラーマネージャーのログ(オプション)
      • リソースの調整処理
      • コントローラーのエラー
    • Scheduler: スケジューラーのログ(オプション)
      • Podスケジューリングの決定
      • ノード選択の理由
  1. CloudWatch Logs の設定
    • 各ログタイプに対してCloudWatch Logsへの送信を有効にします
    • ロググループ名は自動的に生成されます(例:/aws/eks/cluster-name/cluster)
  2. *「変更を保存」**をクリックして設定を適用します
  3. ログの保持期間を設定(推奨):
    • CloudWatch Logsコンソールに移動
    • 作成されたロググループを選択
    • 「アクション」→「保持設定の編集」から適切な期間を設定
    • 推奨保持期間:
      • 開発環境: 30日
      • ステージング環境: 60日
      • 本番環境: 90日以上(コンプライアンス要件に応じて1年以上)
    • 長期保存が必要な場合はS3へのエクスポートを設定

Terraformでの修復手順

EKSクラスターで監査ログ記録を有効にするTerraformコードのサンプルです。

enabled_cluster_log_typesにて有効化するログタイプを選択するようにしましょう。

# ========================================
# EKSクラスターの作成(監査ログ有効)
# ========================================
resource "aws_eks_cluster" "main" {
  >>>> Skip
  # 監査ログを含むすべてのコントロールプレーンログを有効化(重要)
  enabled_cluster_log_types = var.enabled_log_types

}

variable "enabled_log_types" {
  description = "List of control plane logging types to enable"
  type        = list(string)
  default     = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
  validation {
    condition     = contains(var.enabled_log_types, "audit")
    error_message = "Audit logs must be enabled for compliance."
  }
}

最後に

この記事では、EKS クラスターで監査ログ記録を有効にする方法について、包括的なリスク分析と実践的な対策を解説しました。

重要なポイントのまとめ:

  • 監査ログは、Kubernetesクラスターのセキュリティとコンプライアンスにおいて不可欠な要素
  • 設定は簡単だが、適切な分析とアラート設定が成功の鍵
  • CloudWatch Logsとの統合により、高度な分析とリアルタイム監視が可能
  • コストは月額$10-200程度で、1件のセキュリティインシデント防止で投資回収可能
  • コンプライアンス違反による罰金リスク(最大$2M)を回避

監査ログ有効化の即時効果:

  • セキュリティインシデントの検知時間: 287日→21日(93%短縮)
  • MTTR(平均復旧時間): 11.7時間→2.3時間(80%短縮)
  • コンプライアンス監査合格率: 45%→98%
  • インシデント対応コスト: 平均70%削減

監査ログは単なるコンプライアンス要件ではなく、クラスターの健全性を維持し、セキュリティインシデントを早期に発見するための重要なツールです。適切に設定・活用することで、EKSクラスターのセキュリティポスチャを大幅に向上させることができます。

この問題の検出は弊社が提供するSecurifyのCSPM機能で自動的に検出・管理することが可能です。

運用負荷を大幅に軽減しながら、セキュリティレベルを向上させる製品となっていますので、ぜひ興味がある方はお問い合わせください。

最後までお読みいただきありがとうございました。この記事が皆さんのEKSセキュリティ強化の一助となれば幸いです。

参考資料

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る