AWS Community Day Hong Kong 2025 Recap

TerraformによるAWSコンプライアンス

Recap Series

録画

https://youtu.be/l7YgSdK-ypw

オープンソースプロジェクトと簡素化への情熱

現在のプロジェクト:compliance.tf

  • Terraformによるコンプライアンス対応の実装を簡素化することを目指している。
  • コンプライアンスは興味深い分野だが、現状ではTerraformでの実装が難しい。
  • 一般的なサービスやパターンを各自が実装せずに済むよう作られた。
  • 50を超えるAWSサービスの設定に対応している。

仕事と楽しさについての考察

  • 未来を築くことに胸を躍らせていた過去の世代の姿勢と、コンプライアンスフレームワークや自動化に重点を置く現在とを比較した。
  • コンプライアンス業務は、より実践的な屋外活動に比べて退屈だと思われる場合があると認めた。
  • 興味深いタスクと退屈なタスクを明確に切り分ける必要性を強調した。

コンプライアンスは魔法ではない

  • コンプライアンスは、ベンダーやプロバイダーによって不可欠で高額な、魔法のようなものとして描かれがちである。
  • 実際には通常、企業が満たすべきビジネス要件の一つにすぎない。
  • コンプライアンスを満たすことは、セキュリティと顧客からの信頼を真剣に捉えることを意味する。

責任共有の原則

  • 基盤となるインフラストラクチャにはAWSが責任を負う。
  • クラウド上に置くものすべてには顧客が責任を負う。

コンプライアンスフレームワーク

  • さまざまなフレームワークが存在し、ISO 27001に準拠するものもある。
  • 香港や中国本土などの地域には、固有の制約や規則がある。
  • ほとんどのフレームワークは、暗号化、アクセス制御、ログイン方式など、共通する要素を扱う。
  • 一つのフレームワークを実装すれば、別のフレームワークの実装も50%以上完了していることが多い。

一般的なコンプライアンス対応プロセス

  • 満たす必要があるコンプライアンス要件を特定する。
  • AWSサービスやサードパーティサービスを使用して、現在のコンプライアンス状況を評価する。
  • 必要な作業量、すでに完了している作業、残っている作業を把握する。

コンプライアンス対応のツールとサービス

  • AWS Control Tower:コンプライアンス管理に不可欠。
  • AWS Organizationsとサービスコントロールポリシー:境界と権限の制御に使用する。
  • AWS CloudFormation Guard:Terraformコードにも利用できるAWSのオープンソースプロジェクト。
  • AWS CloudTrailとAWS Config:設定変更やAPI呼び出しの検出に役立つ。
  • AWS Audit Manager:KMSで暗号化されたS3バケットに、インフラストラクチャの変化を示す証拠を収集するサービス。

Infrastructure as Code向けツール

  • 現在、必要なコントロールを実装する主なツールとしてCheckov、Trivy、Terrascanなどがある。

ツール利用に関する参加者とのやり取り

  • 多くの人がCheckovやTrivyを使用している。
  • Checkovは、デプロイ前にセキュリティ上の設定ミスやコンプライアンス問題を検出する、Infrastructure as Code(IaC)向けのオープンソース静的コード解析ツールである。
  • Trivyは、脆弱性、IaC、SBOM検出、クラウドスキャン、Kubernetesセキュリティに対応する、最も人気のあるオープンソースセキュリティスキャナーである。
  • 意外にも、Terrascanに言及する利用者はほとんどいない。
  • Terrascanは、Tenableが支援するInfrastructure as Code(IaC)向けのオープンソースセキュリティスキャナーである。

修復手順

  • コンプライアンスツールの実行後は、設定ファイルを修正するための修復作業が必要になる。
  • 失敗メッセージを理解し、原因となったモジュールやパラメーターを特定して修正する。
  • または、compliance.tfが提供するコンプライアンス対応済みTerraformモジュールを使用する。

DevSecOpsパイプライン

  • 開発マシンまたはCI/CDパイプラインでコンプライアンスチェックを実行する。
  • 非準拠の問題を手動で修正し、コードをプッシュして、クラウドリソースに修正が反映されたことを確認する。
  • Checkov、Prowler、Steampipeなどを使用して、包括的なコンプライアンスチェックを行う。

推奨ツール

  • Checkov:ほとんどの状況に適しており、最初のチェックに役立つ。
  • Prowler:環境内の実リソースに設定ミスがないか確認するオープンソースツール。
  • Steampipe:定義済みクエリやカスタムクエリを使い、SQLでクラウドAPIを照会できる。

ドリフトの防止

  • AWS環境へのコンソールアクセスを制限し、ドリフトを防ぐ重要性を強調した。

ドリフトとClickOps

  • ClickOpsとは、AWS Management Consoleなどのユーザーインターフェイスを使い、クラウドリソースを手作業で管理することを指す。
  • AWSアカウントへの直接アクセスを求める人は多く、それがClickOpsにつながり、結果としてドリフトが生じる。
  • AWS Config Rulesなどのサービスを継続的な検証と修復に利用できるが、修復処理の実装は難しい場合がある。

自動修復

  • AWS CloudTrail、Amazon EventBridge、AWS Systems Manager(SSM)Automationドキュメントを連携させることで、自動修復を実現できる。
  • Terraformモジュール、修復処理、自動更新されるドキュメントについては、docs.compliance.tfを参照する。

Terraform Active Directory(AD)モジュールとコンプライアンス要件

  • Terraform RegistryからTerraform Active Directory(AD)モジュールを呼び出す方法を実演した。
  • S3バケットを作成し、コンプライアンス要件に従ってログ記録を有効にする方法を示した。
  • コンプライアンス情報をTerraformコードへ変換する過程を説明した。モジュールを使用するため、この作業は複雑になる場合がある。

ドキュメントとTerraformスニペット

  • 個別のチェック項目と有効なTerraformスニペットについて、docs.compliance.tfを案内した。
  • ログ記録セクションを指定し、SOC 2やPCI DSSなど異なるフレームワークを適用する例を示した。

補足情報:Checkov、Prowler、Steampipe

  • Checkovは、Infrastructure as Code(IaC)向けの静的解析ツールである。開発ライフサイクルの早い段階(シフトレフト)でTerraform、CloudFormation、Kubernetesマニフェスト、Dockerfileなどの設定ファイルをスキャンし、デプロイ前に設定ミスやコンプライアンス違反を検出する。
  • Prowlerは、稼働中のクラウド環境(AWS、Azure、Google Cloud、Kubernetes)に対し、セキュリティ、コンプライアンス、ベストプラクティスのチェックを実行するコマンドラインツールである。主にクラウドセキュリティポスチャ管理(CSPM)ツールとして機能し、CIS Benchmarks、PCI DSS、ISO 27001などの業界標準に対応付けた詳細なレポートを生成する。
  • Steampipeは、Postgres Foreign Data Wrapperを使用し、クラウドプロバイダー、API、インフラストラクチャなど外部システムのデータをリレーショナルデータベースとして提示する独自のツールである。これにより、SQLでクラウドリソースを照会できる。この方式では、複雑なアドホックのセキュリティ/コンプライアンスチェックや、SQLクエリを使用したカスタムダッシュボードの作成が可能であり、チェックを順番に実行するProwlerとは異なる方法で評価を行える。

補足情報2:CloudTrail、EventBridge、SSM Automationドキュメント

はじめに

  • AWS CloudTrail、Amazon EventBridge、SSM Automationドキュメントは、それぞれ異なるサービスだが、AWSエコシステム内で連携して使用されることが多く、クラウド運用の管理と自動化に用いられる。

AWS CloudTrail

  • 目的:CloudTrailは、AWSアカウント内でユーザー、ロール、AWSサービスが実行したアクションを記録するAWSサービスである。AWS Management Console、AWS SDK、コマンドラインツール、その他のAWSサービスを介したAPI呼び出しを記録する。
  • 機能:呼び出し元、実行日時、送信元IPアドレス、影響を受けたリソースなどの詳細を含むイベント履歴を提供し、セキュリティ分析、リソース変更の追跡、トラブルシューティングを可能にする。
  • ユースケース:セキュリティ監査、コンプライアンス、運用上のトラブルシューティング、不正なアクティビティの特定。

Amazon EventBridge

  • 目的:EventBridgeは、イベントを利用してアプリケーション同士を簡単に接続できるサーバーレスイベントバスサービスである。さまざまなソースからターゲットへイベントをルーティングし、スケーラブルなイベント駆動型アプリケーションを構築できる。
  • 機能:CloudTrailなどのAWSサービス、カスタムアプリケーション、SaaSパートナーからイベントを受信できる。ルールを定義してイベントをフィルタリングし、AWS Lambda関数、Amazon SNSトピック、Amazon SQSキュー、AWS Systems Manager Automationなどのターゲットへルーティングできる。
  • ユースケース:リアルタイムイベント処理、疎結合なマイクロサービスの構築、サードパーティアプリケーションとの統合、イベントに基づく自動ワークフローの起動。

AWS Systems Manager(SSM)Automationドキュメント

  • 目的:SSM Automationドキュメントは、AWSリソース全体にわたる一般的な運用タスクを自動化する一連の手順を定義した、事前定義済みまたは独自作成のスクリプト/ランブックである。
  • 機能:インスタンスの起動/停止、パッチ適用、AMIの作成、カスタムスクリプトの実行などに利用できる。手動、スケジュール、またはイベントをトリガーとして実行できる。
  • ユースケース:パッチ管理、インスタンスのライフサイクル管理、コンプライアンスの適用、インシデント対応の自動化。

連携例

これらのサービスを組み合わせることで、強力な自動化ワークフローを構築できる。たとえば、セキュリティグループへの不正な変更を示すCloudTrailイベントをトリガーとして、EventBridgeルールを起動できる。そのルールからSSM Automationドキュメントを呼び出し、変更の自動取り消し、管理者への通知、影響を受けたリソースの隔離を行うことで、セキュリティと運用効率を向上できる。