Skip to main content

Snyk IaCのパブリックベータでTerraformプランの分析が可能に

著者
Headshot of Ron Tal

Ron Tal

Infrastructure as Code tools

2021年4月22日

0 分で読めます

Snyk CLIにSnyk Infrastructure as Code(Snyk IaC)の新しいベータ機能が追加されました。Terraformプランのスキャンに対応し、パフォーマンスとセキュリティも改善されています。

Terraformプランのスキャンに対応

Snyk CLIでは、TerraformやKubernetesのファイルをローカルまたはCI/CDでスキャンできるため、設定を記述・コミットする際にすぐフィードバックを得られます。個々の変更を確認するには有効ですが、変数などを考慮したうえで、既存のインフラに適用するすべての変更をまとめて確認したい場合は、Terraformプランファイルをスキャンする方法が最適です。

Snyk IaCのCLIベータ版では、terraform planのJSONファイルを指定して、提案された変更によって現在のクラウドインフラに新たなセキュリティ上の脆弱性が生じないかを検出できるようになりました。以下の例では、tfplanファイルを作成してJSON形式に変換し、そのJSONに対してSnyk IaCを実行するシンプルなワークフローを紹介しています。Snykコマンドの--experimentalフラグにご注目ください。この機能を試すために必要なのはこれだけです。最新バージョンのSnyk CLIをお使いの場合は、ぜひお試しください。

$ snyk -v
1.563.0

$ terraform plan -out=tfplan
$ terraform show --json tfplan > tfplan.json

$ snyk iac test tfplan.json --experimental 
Testing tfplan.json...

Infrastructure as code issues:
  ✗ S3 Bucket is publicly readable and writable [High Severity] [SNYK-CC-TF-19] in S3
    introduced by resource > aws_s3_bucket[pictures-of-snyky-dogs] > acl

  ✗ S3 bucket MFA delete control disabled [Low Severity] [SNYK-CC-TF-127] in S3
    introduced by aws_s3_bucket[pictures-of-snyky-dogs] > versioning > mfa_delete

  ✗ S3 bucket versioning disabled [Low Severity] [SNYK-CC-TF-124] in S3
    introduced by aws_s3_bucket[pictures-of-snyky-dogs] > versioning > enabled

Organization:      purple-dobie
Type:              Terraform
Target file:       tfplan.json
Project name:      iac-tfplan-demo
Open source:       no
Project path:      tfplan.json

Tested tfplan.json for known issues, found 3 issues

Terraformプランをスキャンできるもう1つのメリットは、TerraformエコシステムのツールとSnyk IaCを簡単に連携できることです。TerragruntやAtlantisなどのツールを使っているお客様もいます。どちらもTerraformプランを出力できるため、Snyk IaCでスキャンできます。Terraformエコシステムのこうしたツールをお使いでしたら、プランの出力をスキャンすることでワークフローに役立つか、ぜひご意見をお聞かせください。

IaCの設定とシークレットの機密性を維持

Terraformプランのスキャンは、より広範な設定変更を可視化し、モジュールや変数を考慮するうえで役立ちます。ただし多くの場合、この段階では機密性の高いインフラデータやシークレットを扱うことになります。こうした情報を安全に取り扱うことが極めて重要だと、私たちは認識しています。--experimentalフラグを使ったスキャンは、機密性の高い設定データが環境外に出ないよう、ローカルで実行されるようになりました。これは、CLIで実行するすべてのIaCスキャンに適用されます。TerraformやKubernetesファイルのスキャンのほか、CIパイプラインでSnyk IaCを使う場合も対象です。ベータ期間の終了後は、これがデフォルトの動作になります。スキャン方法の変更により、スキャンのパフォーマンスも向上しました。Terraformファイル(またはKubernetesの定義ファイル)が数百個あるディレクトリをお持ちでしたら、ぜひこのベータ版でテストを実施し、フィードバックをお寄せください。

最新のIaCセキュリティルールとカスタム重大度

静的解析による検出機能が、指定されたterraform実行プラン内のリソース変更案をスキャンし、拡充を続けるセキュリティルールと照合します。ルールはSnykのウェブサイトで公開されています(セキュリティリサーチチームによる、Snyk IaCの新機能です!)。これらのルールは、AWS、GCP、Azureなど、主要なクラウドプロバイダーの最新のセキュリティ基準に基づいています。snyk iac test --experimentalを実行すると、Snyk CLIはサーバーから最新のセキュリティルール一式を自動的に取得します。設定したカスタム重大度も含まれます。機密性の高いInfrastructure as Codeファイルのセキュリティを損なうことなく、静的解析と処理はすべてお使いのマシン上でローカルに行われます。

Snyk IaCベータ版の始め方

ベータ機能は、無料プランのユーザーを含むすべての方にお試しいただけます。始め方は簡単です。

  1. Snykアカウントをまだお持ちでない場合は、無料で登録してください。

  2. Snyk CLIをインストールします。すでにインストール済みの場合は、CLIが1.563.0以降であることを確認してください。最新のベータ機能を利用できます。

  3. TerraformとKubernetesのファイルをスキャンしましょう!

    1. 新しいベータ機能を使ってIaCをスキャンする主なコマンドは次のとおりです。snyk iac test --experimental <path-to-file-or-folder>対応しているさまざまなスキャンオプションについては、Snyk IaC docsをご覧いただくか、CLIドキュメントで次のコマンドを実行してください。snyk iac --help

    2. Terraformプランをスキャンするには、JSON形式の出力を生成する必要があります。上記の例のようにterraform showを使って取得できます。詳しくはTerraformのドキュメントをご覧ください。

ローカルCLIスキャンに加え、次のような用途にもSnyk IaCを活用できます。

  • SCMと連携してGitリポジトリを定期的に自動スキャンし、ソース管理内のTerraformやKubernetesの設定ミスを検出できます。

  • CI/CDパイプラインにSnyk IaCを組み込み、セキュリティ対策を開発プロセスの早い段階に移し、継続的なSDLCの一部にできます。

ぜひご意見をお聞かせください!すでにSnykをご利用のお客様は、カスタマーサクセスチームを通じて製品へのフィードバックをお寄せいただけます。また、Snyk Communityフォーラムでは、どなたからのコメントも歓迎しています。

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

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

カテゴリー: