【Snyk】 Projects機能について
おはようございます。ゲームソリューション部のきだぱんです。
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のファイルスキャンもサポートしています。
Snykには、Snyk Open Source、Snyk Container、Snyk Infrastructure as Code、Snyk Codeの 4つの製品があります。
Snyk Projects について
Snyk Projects は、Snyk がスキャンした外部リソース(リポジトリやコンテナなど)に基づいて作成されるスキャン単位です。
ダッシュボードの「プロジェクト一覧」から確認できます。
プロジェクト画面では以下のようなことが行えます。
- 外部リソースごとに「ターゲット」としてまとめられる
- 各ターゲット内に複数の「プロジェクト」が存在する
- プロジェクトごとにスキャン結果や設定を管理できる
- フィルタリングや並び替えで大量のプロジェクトを効率的に管理可能
Snyk Projects の構成要素
まず、Project タブを開くと、Target(ターゲット)が表示されます。
Snyk がスキャンした対象が Target として表示されます。
https://api.snyk.io/rest/orgs/{org_id}/targets
各 Snyk プロジェクトは親ターゲットに関連付けられており、1 つのターゲットに複数のプロジェクトが含まれます。
- スキャン対象の外部リソース(例:GitHub リポジトリ、Docker イメージなど)
- CLI や API 経由でスキャンを実行すると自動的に作成される
また、「Group by Targets」を選択すると、ターゲットごとの表示または非表示(None)を切り替えることができます。
それぞれのターゲットは、Snyk の API でも取得可能です。
スキャンの実行元や方法を示すターゲットのアイコンも、それぞれの横に表示されます。
- 例:
cli
,github
,docker-hub
,kubernetes
など
ターゲット内に表示されるのが [Project] です。
- 実際にスキャンされる対象(例:package.json、pom.xml など)
- ターゲット内に複数存在する
スキャン種別は以下の通りです。
種別 | 説明 |
---|---|
Open Source | npm、Maven などのパッケージマネージャー |
Snyk Code | 静的解析(SAST) |
Container | コンテナイメージのスキャン |
IaC | Terraform や CloudFormation の構成ファイルのスキャン |
プロジェクトの管理機能
Snyk Projects では、プロジェクトの表示や管理を効率化するための機能が多数用意されています。
アクション
複数のプロジェクトを選択して、削除などのアクションを一括で行うことが可能です。
- 削除(Delete):プロジェクトとその集計情報を完全に削除
- 非アクティブ化(Deactivate):
- Webhook を無効化
- テストを停止
- 最後のスキャン結果はダッシュボードに残る
- アクティブ化(Activate):非アクティブ状態から復帰し、再びスキャン可能に
テスト頻度の設定
各プロジェクトにはスキャンの頻度を設定することができます。
- 毎日(Daily)
- 毎週(Weekly)
- テストしない(Never)
【デフォルトの設定と制限】
プロジェクト種別 | デフォルト頻度 | 備考 |
---|---|---|
Open Source | 毎日 | - |
Code Analysis(Snyk Code) | 毎週 | ※Snyk Code の毎日設定は別途サポートへの依頼が必要です。 |
Container | 毎日 | - |
IaC(Infrastructure as Code) | 毎週 | - |
コレクション機能
プロジェクトを選択して「コレクション」に追加することも可能です。
特定のプロジェクトのみを確認したいときに役立ちます。
並び替え(Sort)
プロジェクト一覧は以下の条件で並び替え可能です。
- 深刻度(Severity)
- 最終インポート日時(Recently Imported)
- アルファベット順(A → Z)
フィルタリング
フィルター機能を使うと、プロジェクトを絞り込むことができます。
-
Show
- With issues
→ 問題(issues)がある項目のみを表示 - Without issues
→ 問題がない項目のみを表示
- With issues
-
Integrations(連携サービス)別
- CI/CLI、ECR、GitHub、GitLab など
まとめ
Snyk Projects を活用することで、セキュリティスキャンの結果を効率的に管理・可視化できるようになります。ターゲットやプロジェクトの構造を理解し、適切な頻度でのスキャンやフィルタリング・並び替えを活用することで、セキュリティ対応のスピードと精度を大きく向上させることができるでしょう。
Snykに関するブログも沢山展開されていますので、是非こちらもご覧ください。
この記事がどなたかのお役に立てば幸いです。
以上、きだぱんでした。