Ernst & Youngでディレクタと監査人を務めるJames DeLuccia氏は,先日の記事の中で,DevOps担当者と監査人とのコラボレーション,さらには明確なコミュニケーションを通じることによって,企業のDevOps技術は間違いなく監査プロセスをサポートすることができる,と書いている。ソフトウェア開発とIT運用は監査プロセスにおいて,積極的なパートナであるべきだ。Wall Street JournalのCIOセクションの記事では,金融サービス企業におけるDevOps実践に対して,監査の重要性が強調されている。
企業は自らのDevOps文化とプロセスが,自らのビジネスモデルをサポートする方法について説明する必要がある,と氏は言う。
企業にとって,監査の開始時点から実行可能な最も重要なことは,コントロール目標が何であるかということと,そのコントロールをサポートするための内部手続きが何であるかということの関係を明確にすることです。
DevOps関係者が監査を扱う上での基本として,氏は次のような一般的原則を述べている。
- コントロール目標の議論に早い時期から関与すること。
- ビジネス上の重要なリスクを理解すること。
- DevOpsの手法が,積極的にリスクを最小化するものであることを,監査人が理解するように努めること。
- 企業内の監査システムとDevOpsシステムを統合すること。
- 監査プロセスの継続的改善を図ること。
- 監査からDevOpsプラクティスには,重要なフィードバックを提供することができる。
氏の記事は特に金融サービスをターゲットとしているが,Gene Kim氏との以前の会談(“Successfully Establishing and Representing DevOps in an Audit ”と“Keeping the Auditor Away”)では,この原理が一般的なものであることを示唆している。両氏は共同で DevOps Audit Defense Toolkitも提供している。これは,“DevOpsの実施されている場所において,管理者と監査人が実施すべき監査業務についての信頼できるガイダンスを定義”しようというものだ。
Geneによると,DevOpsと監査プロセスの間にある問題の背景には,後者が従来的なソフトウェア開発ライフサイクルを基本としていて,"DevOpsのコントロール目標"に対して,いまだ十分な合意ができていない,という理由がある。
これらの問題に対処する具体的な方法を,Rich Mogullが提供している。氏が推奨するのは,
- 統制の観点から,アプリケーションとオペレーションの対象部分と範囲外の部分とを識別し,それに従ったコントロールとログ粒度を適用する。
- 継続的インテグレーションツールのセキュリティチェックと,すべての更新と変更に対するログが取得されていることを確認する。
- デプロイメントパイプライン内のすべての変更の記録を自動保存し,安全なログリポジトリに格納する。
- インフラストラクチャAPIコールをすべて追跡し,監査用のログを保持する。
- SSHインスタンスアクセスをすべて記録し,そのログを中央リポジトリにダンプする。
- すべてのコードとインフラストラクチャの変更のリビジョンを保存する。
氏はさらに,次のような提案もしている。
すべての変更がコードのチェックとテスト(テストの詳細も),変更の追跡を行う,自動化された承認システムを通過した上で,実稼働に移っていることを,監査人に説明してください。サーバへの全ログインとインフラストラクチャの変更もログ記録されているので,環境全体の構造に関して,完全な履歴が存在することも説明する必要があります。すべてのドキュメントに加えて,コンプライアンスの範囲内の部分についてフィルタしたものを提供する用意があることも伝えてください。[...] 要はこれを監査人に,彼らのことばで説明することです。彼らが期待しているのは,手動のチェックと記録です。これらのチェックとバランスは満たしていますが,すべてが自動化されているのだということを,彼らに示さなくてはなりません。
あるいはGeneが言うように,
監査人がDevOpsについて学ぶのを待つ必要はありません。私たちが監査について学べば,ギャップを埋めることは可能です。