Skip to main content

Snyk、HashiCorp Terraform CloudにInfrastructure as Codeセキュリティを導入

著者

Sarah Conway

feature synk iac terraform magenta

2022年5月4日

0 分で読めます

Terraform Cloudのワークフローをより効率的で安全なものにする取り組みの一環として、HashiCorp Terraform Cloudとの新しいネイティブインテグレーションを発表します。このインテグレーションにより、Snyk Infrastructure as Code (Snyk IaC)のセキュリティに関する専門知識と開発者に使いやすい修正方法がTerraform Cloudに直接組み込まれ、Terraform Cloudのワークフローが、パブリッククラウドインフラをプロビジョニングおよび管理する最も安全な方法の一つになります。

この記事では、このインテグレーションを開発した理由、Snyk IaCのrun taskを使ったTerraform Cloudのワークフロー、そしてTerraformのあらゆるrun taskでIaCセキュリティをすばやく強化するためのリソースをご紹介します。

Terraform Cloudと連携する理由

Infrastructure as Codeの利用が拡大するにつれ、開発チームが作成・保守する設定は増え続けています。しかし、利用の拡大に伴いリスクも高まります。開発者には、クラウドへのデプロイのセキュリティとコンプライアンスに対する責任もますます求められています。

課題は、インフラを安全にプロビジョニングする方法を理解することが、開発チームにとって大きなハードルになっている点です。Snykのクラウドネイティブアプリケーションセキュリティの現状レポートによると、回答者の69%が、クラウドネイティブアプリケーションに設定ミスまたは既知の未修正の脆弱性があると報告しています。

開発者がコーディング中にIaCの設定ミスやセキュリティコンプライアンス違反を簡単に発見・修正し、デプロイ前に安全でないインフラのリスクを軽減できるよう、Snyk Terraform run taskインテグレーションを開発しました。この開発者を第一に考えたアプローチにより、Terraform Cloudのユーザーは、AWS、Azure、Google Cloudを含む主要なクラウドプロバイダー全体で、クラウドインフラを安全に定義・管理できます。

Snykのインテグレーションと、Bridgecrew、Infracost、Lightlytics、Snykのパートナーガイドを表示したRun Tasksページ。
Snykは実行タスクに統合され、開発者のセキュリティとコンプライアンスを自動化します。

Snyk IaCはrun内のセキュリティとコンプライアンスをどのように自動化するのか?

Snyk IaCはTerraformの設定ファイルをスキャンし、セキュリティとコンプライアンスに関するフィードバックをすぐに提供します。これにより、開発者は早い段階からデリバリープロセス全体を通じてクラウドの設定ミスを防止し、より安全な設定を短時間でリリースできます。

Snykは静的解析を使用してIaCファイルをあらかじめ定義されたセキュリティルールと照合します。これらのルールは、業界標準、クラウドプロバイダーのベストプラクティス、そしてSnykのセキュリティエンジニアが新たな脅威や顕在化しつつある脅威を対象に実施する脅威モデリングに基づいています。

これらのルールに加え、SnykはTerraformファイルの潜在的な設定ミスをスキャンする際に、カスタムポリシーも考慮します。

Terraform CloudでのSnyk run taskはどのように機能するのか?

Terraform Cloud向けのSnykインテグレーションを使うと、開発チームはインフラ変更のプレビューであるTerraform Plan JSONファイルをスキャンし、主要なパブリッククラウドプロバイダーとKubernetes向けのベストプラクティスに基づくセキュリティポリシーと結果を照合できます。Terraform Planファイルとの互換性により、TerragruntやAtlantisなど、これらのファイルを出力する他のツールのセキュリティもSnykで強化できます。

さらに重要なのは、個別のファイルではなくTerraform Planファイルをスキャンすることで、開発者がインフラに対する変更案をまとめて確認し、デプロイ後の予期せぬ事態のリスクを最小限に抑えられる点です。Terraform Planファイルにはすべてのモジュールと変数が含まれるため、個々の設定ファイルに記述されたリソースだけに頼らず、インフラの完成形を包括的に把握できます。

つまり、Terraform CloudのrunでSnyk run taskをゲートとして使用すれば、変更案が既存のクラウドインフラに適用される前に、設定ミスを自動的に検出できます。これにより、開発者はIaCセキュリティを開発の早い段階に取り入れ、Terraformのセキュリティを開発プロセスに不可欠な要素として組み込めます。

重大度「高」が1件、「中」が4件、「低」が4件の問題により、snyk-run-taskのアドバイザリが失敗したTerraformの実行画面。
`snyk-run-task` が失敗すると、一般公開可能なリソースがデプロイされなくなります。

Snyk run taskの適用レベルは、Advisory(runを一時停止し、失敗をユーザーに通知)またはMandatory(修正が適用されるまでrunを停止)から選んでカスタマイズできます。

Snykとのインテグレーション、アドバイザリーまたは必須の適用オプション、「作成」と「キャンセル」ボタンが表示されたTerraform CloudのAssociate Run Task設定画面

ポリシーの適用レベルをカスタマイズして、Applyを一時停止または阻止できます。

設定ミスやコンプライアンス違反が見つかると、Snykは開発者向けに、構造化されたセキュリティ情報と修正ガイダンスを提供します。問題と影響、推奨される修正方法を、該当するTerraformコード内で確認できます。

Terraform CloudのSnykセキュリティスキャンで、AWSリソースが公開アクセス可能であるという重大度の高い問題と、publicly_accessibleを設定するためのガイダンスを表示
Snykに表示されるコード内のセキュリティコンテキストと修正ガイダンス。

Terraform CloudでSnykを使い始めるためのリソース

設定に関するセキュリティ問題の解決を開発者に支援する取り組みの一環として、SnykとHashiCorpは、組織がIaCセキュリティを強化し、Terraform Cloud向けのSnyk run taskでポリシー・アズ・コードを活用できるよう、チートシートTerraformの設定を安全にする5つのベストプラクティスを作成しました。

まずは、クイックスタートガイドSnykとHashiCorpでIaCセキュリティを効率化をご覧ください。SnykとTerraform Cloudのインテグレーションをすばやく導入し、セキュリティの脆弱性を検出して、数分でセキュリティポリシーを適用する方法をご紹介します。

ソースコードの段階からインフラを保護

Snykはワークフロー内のIaCセキュリティとコンプライアンスを自動化し、構成ドリフトや不足しているリソースを検出します。