[snyk-docs] Snyk における顧客所有データの管理 (How Snyk handles your data)

[**Snyk 日本語版ドキュメント**](https://qiita.com/ToshiAizawa/items/730566b456b753a447e0)
**原文:** [**How Snyk handles your data**](https://docs.snyk.io/more-info/how-snyk-handles-your-data)
**翻訳版最終更新:** 2023-04-01

# Snyk における顧客所有データの管理

## はじめに

Snyk は開発者向けのセキュリティプラットフォームです。だから Snyk はデータセキュリティをを最重要視しています。**お客さまのプライバシーとセキュリティーに関するニーズに基づき、この文書を提供しています。その目的は、Snyk がどのようなデータへどのような方法でアクセスし、転送し、保管するのかについて、お客さまに対する透明性を確保することです。**

Snyk が管理するデータは、ご利用の製品、Snyk とのインテグレーションの種類、Snyk のデプロイメント種別によって異なります。Snyk 製品は急速に進化しているため、新機能追加や機能変更により、アクセス・保管されるデータの種類は変更されることがあります。

### デプロイメントについての柔軟な選択肢

Snyk はソフトウェア開発について最新の手法と技術を採用しているため、Snyk デベロッパーセキュリティプラットフォームは柔軟性を備えています。その結果、お客さま毎の最適な使い方が実現できます。

Snyk のクラウドファーストなデプロイメントの選択肢により、使いやすさと拡張性を提供します。同時に、米国、ヨーロッパ、オーストラリア (これらのリージョンは将来的に追加される予定) にて提供されるマルチテナントとシングルテナントの選択肢により適切なデータ保護を実現できます。

* **マルチテナント SaaS**: Snyk デベロッパーセキュリティプラットフォームを利用する上でもっともシンプル、一般的、かつ経済的な選択肢
* **シングルテナント SaaS**: プライベートクラウド - AWS で顧客別に分離されたインスタンスをフルマネージドサービスとして提供
* **Snyk Broker**: 顧客のインフラストラクチャ内にインストールされ、Snyk デベロッパーセキュリティプラットフォーム (マルチテナントまたはシングルテナント) と、オンプレミスにある顧客コードベース間でプロキシとして動作するクライアントサービスです。Snyk Broker は双方向の接続をセキュアに管理し、転送中のデータを暗号化し、Snyk がアクセスするデータの種別を厳密に管理します。機密情報であるクレデンシャルを顧客のファイアウォール内に留めることができます。

**これらの選択肢がお客さまのニーズに合致するか確認が必要な場合は、Snyk の担当者へご連絡ください。**


### Snyk システム内部での顧客所有データのフロー

Snyk は幅広い開発用ツールとインテグレーションを提供しており、それぞれが異なるデータ種別、データについての異なるやりとりを必要とします。Snyk がアクセス・保管するデータについて、製品に共通するデータ種別と、製品やインテグレーション固有のデータ種別の概要を以下、説明します。この情報は、年 2 回以上の頻度で見直しします。また、製品運用における顕著な変更が行われた場合にも改訂されます。


### 製品共通のデータタイプ

* **脆弱性データ** - Snyk は、顧客アプリケーションで検出された脆弱性と、その修正に関わる情報を保管します。
* **脆弱性ソース** - Snyk は、脆弱性が検出された場所についての情報を保管します。(例: ソースコードのリポジトリやレジストリ、ファイル名と場所、依存関係ツリー、脆弱性パス)
* **インテグレーション関連データ** - Snyk は、Snyk とのインテグレーションを設定するために必要な情報を保管します。(例: トークンや設定)
* **ユーザー関連データ** - Snyk は、プラットフォームへのアクセスや利用に必要な基本的なユーザー情報を保管します。(例: ユーザー名、GitHub ユーザー名などの ID、メールアドレス、IP アドレス)
* **ユーザーのリスト** - Snyk は、コントリビュートする開発者の人数を把握する目的で、Snyk でモニタリングされるリポジトリに対する過去 90 日間のコミットにアクセスし、ユーザーのメールアドレスのハッシュを保管します。要求を受け取った場合、ハッシュ化されていないメールアドレスのリストを提供も可能です。
* **請求関連データ** - Snyk は、顧客の Snyk アカウントへの請求に必要な情報を保管します。
* **ユーザー行動アナリティクス** - Snyk は利用パターンに関するさまざまな情報を保管します。(例: プラットフォーム上のナビゲーション情報、CLI の実行内容)


### 製品固有のデータタイプ

Snyk は顧客所有データの保護が、お客さまにとっていかに大切であるか、よく理解しています。Snyk の製品は、Snyk サービスの利用と、正確な解析の実現に必要なデータだけにアクセスし、保管します。


#### Snyk Open Source 

* Snyk はマニフェストファイルとロックファイル、その他の関連する設定ファイルへアクセスします。依存先のオープンソースパッケージを特定することが目的です。
* デフォルト設定においては CLI で `--unmanaged` オプションを指定する場合を除き、Snyk はソースコードにアクセスしません。`--unmanaged` オプションを指定した CLI スキャンでは、ソースコードにアクセスしてファイルシグニチャ (ハッシュ) に変換した上で、ファイルシグニチャとファイル名を保管します。
* SCA 連携のスキャンでは Snyk は顧客のソースコードにはアクセスしません。
* Snyk は依存先パッケージの名前とバージョン番号にアクセスし保管します。
* Snyk は著作権と出自を含むライセンス情報を保管します。
* Snyk はリポジトリに関する情報にアクセスし保管します。
* Snyk は Git プロバイダーへのプッシュとプルに関する情報にアクセスし保管します。(例: コントリビューター名、ファイル名、タイムスタンプ)

**オプトインした場合の補足**

* Reachable Vulnerabilities (到達可能な脆弱性) の判定 - Snyk はコールグラフ作成のためにソースコードを保存します。解析が完了すると、ソースコードは Snyk のシステムより消去されます。コールグラフと関数名だけが保管されます。
* Lambda インテグレーション - 解析にあたり、Snyk は関数を一時的にコピーし、解析完了時にそのコピーを消去します。


#### Snyk Code

* Snyk は解析のために顧客のリポジトリ上のコードにアクセスし、それを最大 12 時間にわたりキャッシュします。その期間を過ぎると、検出された脆弱性の場所 (ファイルパス、行、カラム)、脆弱性の ID と、その説明だけが保持されます。コードは削除され、Snyk のネットワークにもログにも記録されません。
* 結果はデータベースに保管され、Snyk による解析とモニタリングの目的で利用されます。
* Snyk Code の脆弱性の詳細を Snyk Web UI にて参照する際、関連するファイルが読み込まれ、最大 12 時間にわたりキャッシュされます。
* Snyk Code は顧客所有のコードを、(1) エンジンのトレーニングや、(2) 修正例を提示する目的で使うことはありません。
* スキャン結果には元のソースコードは含まれませんが、場所についての参照情報 (例: ファイル名、行番号、カラム番号) やコードを特定するためのメタ情報が合わせて保管されます。こうすることで、適切なバージョンのソースコードと関連づけて結果を表示することが可能になります。
* Snyk はリポジトリに関する情報を保管します。(例: Git リポジトリ名、ファイル名)
* Snyk のサーバーインフラストラクチャでは、認証と認可を用いることで顧客ごとの領域を分離しています。Snyk Code はソフトウェアコントロールにより、顧客所有データの完全な分離を実現しています。すべての通信は高レベルの業界標準プロトコルにより暗号化されています。


#### Snyk Container

* Snyk はパッケージバージョン、実行ファイルのハッシュやバージョン、オペレーティングシステム、コンテナイメージのメタデータ (例: rootfs のハッシュ、履歴)、イメージ ID にアクセスし、保管します。
* Snyk ベースイメージに関する情報 (名前、バージョン、タグ) にアクセスし、保管します。
* Snyk は Dockerfile 内の RUN 命令にアクセスし、保管します。
* Kubernetes 設定 - Snyk はワークロードのセキュリティー設定 (例: ‘run as root’) にアクセスします。これは Snyk の Kubernetes インテグレーションを使っている場合のみアクセスされるものです。
* コンテナレジストリとのインテグレーション - Snyk はコンテナイメージにアクセスし、その一時的なコピーを保管します (ただしブローカーを使う場合を除く)。このコピーは解析後に Snyk ネットワークより削除されます。


#### Snyk Infrastructure as Code

* CLI によるスキャンはローカルで実行されます。`--report` オプションを指定してスキャン結果を Snyk プラットフォームに共有する場合、リソースの構成情報もあわせて共有されます。
* SCM 上でのスキャンは Infrastructure as Code ファイルへのアクセスが必要です。Snyk は解析の間、ファイルを保管し、その後システムからファイルを削除します。Snyk は解析されたリソース構成情報を保持し、問題やリソースのコンテキストの提供に用います。
* Terraform Cloud と Terraform Enterprise におけるスキャンでは plan ファイルの解析を行います。Snyk はそこからシークレットや機密情報を取り除いた上で、検出した問題やリソースに対するコンテキストを提供するためにリソース構成情報を保持します。
* `snyk iac describe` コマンドによるドリフト検出においては、Snyk は最小特権の原則に従い、[AWS](https://docs.snyk.io/scan-cloud-deployment/snyk-infrastructure-as-code/detect-drift-and-manually-created-resources/configure-cloud-providers/configure-aws-provider#least-privileged-policy) や、[Azure](https://docs.snyk.io/scan-cloud-deployment/snyk-infrastructure-as-code/detect-drift-and-manually-created-resources/configure-cloud-providers/configure-azure-provider#least-privileged-policy), [Google](https://docs.snyk.io/scan-cloud-deployment/snyk-infrastructure-as-code/detect-drift-and-manually-created-resources/configure-cloud-providers/configure-google-provider#least-privileged-policy)、[GitHub](https://docs.snyk.io/scan-cloud-deployment/snyk-infrastructure-as-code/detect-drift-and-manually-created-resources/configure-cloud-providers/configure-github-provider#least-privileged-policy) への読み取りアクセスだけが必要です。プロバイダーのクレデンシャルが Snyk へ送信されることや、Snyk で保管されることはありません。
* Snyk はローカルの Terraform ステートファイルへの読み取りアクセスを利用します。そこから関連するリソース構成情報を抽出し、Snyk プラットフォームへ送信します。


#### Snyk Cloud

* Snyk Cloud はクラウドプラットフォーム API のスキャンにより、AWS アカウントと Google Cloud のサブスクリプションにデプロイされたインフラの構成情報を収集します。
* スキャン実行において、Snyk は最小特権の原則に従うとともに、各クラウドプラットフォームによりサポートされている認証の仕組みを活用します。
   * Amazon Web Services (AWS) では、AWS アカウントにて読み取り専用 IAM ロールの作成が必要です。これにより必要な AWS API に対するセキュアなアクセスが可能となります。
   * Google Cloud では、読み取り専用 Google Cloud サービスアカウントの作成が必要です。これにより必要な Google Cloud API に対するセキュアなアクセスが可能となります。
* スキャンの最中には、Snyk は解析実行のためにリソース構成の状態を収集し保管します。また、問題の原因となる設定ミスの詳細など、解析結果も保管します。
* Snyk Cloud はスキャン中に取得したリソース構成の状態を保持して、問題やリソースのコンテキストを提供します。ただし、シークレットや機密情報は保管しません。


### Snyk の取得済み認証

![SOC 2 TYPE 2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89952/f0a872c4-64c3-6dee-d232-29334569a0ef.png "SOC 2 TYPE 2")

Snyk は ISO 27001:2013 認証と、加えて ISO 27017:2015 認証を取得しています。

![ISO 27001](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89952/6c7eb65a-86ab-45bc-9313-fb3805e37ccd.png "ISO 27001")

### Snyk におけるポリシー類:

より詳しい情報は、Snyk ウェブサイト内の以下のページをご覧ください。

* [プライバシー (Privacy)](https://snyk.io/policies/privacy/)
* [Snyk のサブプロセッサー(Snyk Sub-processing)](https://snyk.io/policies/sub-processors/)
* [データ処理に関する追記 (Data Processing Addendum)](https://snyk.io/policies/dpa/)
* [トラッキングとアナリティクス (Tracking and analytics)](https://snyk.io/policies/tracking-and-analytics/)

:::note warn
【おことわり】 翻訳には十分な注意を払っていますが、個人として翻訳したもので、内容についての責任は負いません。最新の情報については原文をご確認ください。原文や訳文にある誤りの指摘やご質問は大歓迎です。
最終更新: 2023 年 4 月 1 日
:::

***
前のページ: [**Snyk processes**](https://docs.snyk.io/snyk-processes)
このページ: [**How Snyk handles your data**](https://docs.snyk.io/snyk-processes/how-snyk-handles-your-data)
次のページ: [**Snyk Pricing Plans**](https://docs.snyk.io/snyk-processes/plans)