GitHubは現地時間26日、「コンプライアンスの基盤を整える」(Setting the foundations for compliance)と題した公式ブログを投稿した。要求や計画に従うなど強制されると感ずることも多いコンプライアンスだが、オープンや柔軟性、コラボレーションを重視するコミュニティではあまり議論されない傾向にある。開発者がポリシーの適用によってワークフローが遅くなることに不満を感じる場合もあるが、コンプライアンスはソフトウェアを配信するための基本だと技術者Carl Nygard氏のCompliance in a DevOps Cultureを開発者におけるコンプライアンスの定義のひとつとして紹介した上でいくつかの概念を示している。

Understanding your population(開発者の母集団を理解する)
どれだけの規模の開発者がアクセスできるのか?当たり前のように思えるが、GitHubのようなプラットフォームの開発ではこれら機能を提供するが無い場合にはリスト化するだけでも大変な業務。

Understanding access(開発者のアクセスを理解する)
誰が何にアクセスするのか?MicrosoftのWhat is information security (InfoSec)?にある3つを紹介。

・Confidentiality(機密性):組織は、許可されたユーザーのみが情報にアクセスできるようにする手段を制定する必要がある。

・Integrity(整合性):正確で信頼できるデータが重要であり、権限のないユーザーのデータへのアクセスや変更、干渉を防ぐ。

・Availability(可用性):許可されたユーザーについては必要に応じてデータに一貫してアクセスできることを保証する。

User attestation(開発者の認証)
ユーザー(開発者)が持っているアクセス権を定期的に証明するプロセスを用意する。従業員が異動したり会社を辞めたりした場合、その従業員のアクセス権が確実に取り消されるようにするためのプロセスを整備する必要がある。

Continuous Compliance(継続的なコンプライアンス)
開発サイクルにおける、継続的インテグレーション(CI)/継続的デリバリー(CD)と同様に継続的なコンプライアンスを取り入れる。コンプライアンスのテストと監査を継続的に迅速に行えるサイクルの構築。

AI-Enabled compliance(AI 対応のコンプライアンス)
AIや機械学習を活用したセキュリティやコンプラインスを活用する。多くの業種でその試みが実践されており、製造業での監査支援や銀行の不正検出などテクノロジーは広がりつつある。

現地時間の1月25日に1億ユーザーを達成するなど数多くの開発者のための場を提供するGitHubだが、次回からは公式ブログでコンプライアンスのニーズを満たす実用的な方法を紹介していくとのことだ。