6.2 ライセンス管理
License Management
ライセンス管理の必要性
現代のソフトウェア開発では多数のOSSを利用する。それぞれのライセンス条件を把握し、遵守することが求められる。
コンプライアンスリスク
ライセンス違反は、差止請求や損害賠償請求につながる可能性がある。特に商用製品では、監査の対象となることもある。
SBOM(Software Bill of Materials)
SBOMは、ソフトウェアに含まれる全コンポーネントのリストである。ライセンス管理の基盤となる。
| 記載項目 | 内容 |
|---|---|
| コンポーネント名 | ライブラリ・パッケージ名 |
| バージョン | 使用しているバージョン |
| ライセンス | 適用されるライセンス |
| 供給者 | 開発元・配布元 |
SBOM生成ツール
npm(npm list)、pip(pip-licenses)、Maven(license-maven-plugin)などで自動生成可能である。
ライセンス互換性
複数のOSSを組み合わせる際は、ライセンス間の互換性に注意が必要である。
- GPLとプロプライエタリコードの混在は困難
- MITとApacheは多くのライセンスと互換
- 異なるバージョンのGPL間でも制約あり
管理のベストプラクティス
- 新規ライブラリ導入時のライセンス確認を必須化
- 許可・禁止ライセンスのリストを策定
- 定期的なSBOMの更新と監査
- ライセンス表示ファイル(NOTICE等)の自動生成
参考文献
[1] NTIA「SBOM関連文書」
[2] SPDX License List
[1] NTIA「SBOM関連文書」
[2] SPDX License List