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