【Snyk】 Projects機能について

【Snyk】 Projects機能について

Snyk Projectsで脆弱性を管理しよう!
Clock Icon2025.05.13

おはようございます。ゲームソリューション部のきだぱんです。

Snyk は、オープンソースの脆弱性スキャンから IaC、コンテナ、静的解析(SAST)まで幅広く対応しており、その中でも「Snyk Projects」はスキャン結果を管理・可視化する上で中核となる機能です。
本記事では、Snyk Projects の構造や管理方法などについて解説します。

Snykとは

そもそも、Snykとは何なのか。
Snykは SAST(Static Application Security Testing)機能 を持つ製品です。
Snyk(スニーク)はデベロッパーファーストのセキュリティプラットフォームです。
Snykは、コードやオープンソースとその依存関係、コンテナやIaC(Infrastructure as a Code) における脆弱性を見つけるだけでなく、優先順位をつけて修正するためのツールです。 Gitや統合開発環境(IDE)、CI/CDパイプラインに直接組み込むことができるので、デベロッパーが簡単に使うことができます。
Snyk は、Java、.NET、JavaScript、Python、Golang、PHP、C/C++、Ruby、Scalaなど、多くの言語とツールをサポートしています。

また、Docker、Terraform、k8s、Infrastructure as Codeのファイルスキャンもサポートしています。
https://snyk.io/jp/

Snykには、Snyk Open Source、Snyk Container、Snyk Infrastructure as Code、Snyk Codeの 4つの製品があります。

SnSCAkdpn031

Snyk Projects について

Snyk Projects は、Snyk がスキャンした外部リソース(リポジトリやコンテナなど)に基づいて作成されるスキャン単位です。
ダッシュボードの「プロジェクト一覧」から確認できます。
2505 snpj13

プロジェクト画面では以下のようなことが行えます。

  • 外部リソースごとに「ターゲット」としてまとめられる
  • 各ターゲット内に複数の「プロジェクト」が存在する
  • プロジェクトごとにスキャン結果や設定を管理できる
  • フィルタリングや並び替えで大量のプロジェクトを効率的に管理可能

Snyk Projects の構成要素

まず、Project タブを開くと、Target(ターゲット)が表示されます。
Snyk がスキャンした対象が Target として表示されます。

https://api.snyk.io/rest/orgs/{org_id}/targets

2505 snpj2

各 Snyk プロジェクトは親ターゲットに関連付けられており、1 つのターゲットに複数のプロジェクトが含まれます。

  • スキャン対象の外部リソース(例:GitHub リポジトリ、Docker イメージなど)
  • CLI や API 経由でスキャンを実行すると自動的に作成される

また、「Group by Targets」を選択すると、ターゲットごとの表示または非表示(None)を切り替えることができます。

2505 snpj3

それぞれのターゲットは、Snyk の API でも取得可能です。
https://docs.snyk.io/snyk-api/reference/targets#orgs-org_id-targets

スキャンの実行元や方法を示すターゲットのアイコンも、それぞれの横に表示されます。

  • 例:cli, github, docker-hub, kubernetes など

2505 snpj4

ターゲット内に表示されるのが [Project] です。

2505 snpj5

  • 実際にスキャンされる対象(例:package.json、pom.xml など)
  • ターゲット内に複数存在する

スキャン種別は以下の通りです。

種別 説明
Open Source npm、Maven などのパッケージマネージャー
Snyk Code 静的解析(SAST)
Container コンテナイメージのスキャン
IaC Terraform や CloudFormation の構成ファイルのスキャン

プロジェクトの管理機能

Snyk Projects では、プロジェクトの表示や管理を効率化するための機能が多数用意されています。

アクション

複数のプロジェクトを選択して、削除などのアクションを一括で行うことが可能です。

  • 削除(Delete):プロジェクトとその集計情報を完全に削除
  • 非アクティブ化(Deactivate)
    • Webhook を無効化
    • テストを停止
    • 最後のスキャン結果はダッシュボードに残る
  • アクティブ化(Activate):非アクティブ状態から復帰し、再びスキャン可能に

2505 snpj6

テスト頻度の設定

各プロジェクトにはスキャンの頻度を設定することができます。

  • 毎日(Daily)
  • 毎週(Weekly)
  • テストしない(Never)

2505 snpj7

【デフォルトの設定と制限】

プロジェクト種別 デフォルト頻度 備考
Open Source 毎日 -
Code Analysis(Snyk Code) 毎週 ※Snyk Code の毎日設定は別途サポートへの依頼が必要です。
Container 毎日 -
IaC(Infrastructure as Code) 毎週 -

コレクション機能

プロジェクトを選択して「コレクション」に追加することも可能です。
特定のプロジェクトのみを確認したいときに役立ちます。

2505 snpj8
2505 snpj9
2505 snpj10

並び替え(Sort)

プロジェクト一覧は以下の条件で並び替え可能です。

  • 深刻度(Severity)
  • 最終インポート日時(Recently Imported)
  • アルファベット順(A → Z)

2505 snpj11

フィルタリング

フィルター機能を使うと、プロジェクトを絞り込むことができます。

  • Show

    • With issues
      → 問題(issues)がある項目のみを表示
    • Without issues
      → 問題がない項目のみを表示
  • Integrations(連携サービス)別

    • CI/CLI、ECR、GitHub、GitLab など

2505 snpj12

まとめ

Snyk Projects を活用することで、セキュリティスキャンの結果を効率的に管理・可視化できるようになります。ターゲットやプロジェクトの構造を理解し、適切な頻度でのスキャンやフィルタリング・並び替えを活用することで、セキュリティ対応のスピードと精度を大きく向上させることができるでしょう。

Snykに関するブログも沢山展開されていますので、是非こちらもご覧ください。
https://dev.classmethod.jp/tags/snyk/

この記事がどなたかのお役に立てば幸いです。
以上、きだぱんでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.