2017.10.27

Chefで実現する継続的なコンプライアンスの自動化

荒井裕貴
クリエーションライン株式会社 DevOps Team Director
このエントリーをはてなブックマークに追加

こんにちは。クリエーションライン株式会社の荒井裕貴です。

今回は、Chef × コンプライアンスについてご紹介したいと思います。
Chefに対するイメージは、構成管理ツールやインフラ自動化ツールのイメージが強いと思いますが、実は他にもコンプライアンス自動化やアプリケーション自動化に関するツールやソリューションを展開しています。

「コンプライアンスの自動化って何?」という方向けに、できるだけわかりやすくご紹介していきたいと思っています。

そもそもコンプライアンスって?

コンプライアンス(Compliance)は、直訳すると「法令順守」や「ルールへの準拠」という意味になりますが、本稿では「ルールへの準拠」という意味で使います。

サービスを提供/維持していく上で、会社ルール、セキュリティールール、他にも存在する様々なルールに対して、アプリケーションやサーバー、ネットワーク、クラウドなどに様々な設定を行って「ルールへの準拠」をすることは重要なことです。

これらのルールへの準拠状態のチェックを自動化できるツールが「InSpec」、継続的に準拠状況をチェックして可視化してくれるツールが「Chef Compliance」です。

DevOpsチームはCodeによる自動化、セキュリティーチームはExcel手順書による手作業

DevOpsの導入を進めていくと、

  • 既存の作業をコードに置き換えて、自動化し
  • プロセスをツールで繋げて、効率化し
  • アジャイル開発によって、より短いサイクルで開発を行い

今までよりも、高速にリリースを繰り返すことになります。

DevSecOpsという言葉が示すように、セキュリティーチームもこのようなDevOpsサイクルに対応していく必要がありますが、現状は手作業による確認や修正作業を行っているセキュリティーチームが多いと思います。

この状態では、セキュリティーチームがDevOpsの高速サイクルに付いていくことができずに、セキュリティーやルールへの準拠がボトルネックとなって全体のサイクルに遅れが生じる、という事態を招いてしまいます。

このようなセキュリティーチームを起因とするスピードの遅れは、多くのDevOpsチームも、またセキュリティーチーム自体も認識しているという調査結果があります。
Gartner, How to Seamlessly Integrate Security Into DevOps (2016)

セキュリティーチームもDevOpsの高速サイクルに対応するための具体的な方法

ここからは、セキュリティーチームが自分たちの仕事をどのように高速化していくのかについて、ご紹介していきます。

Inspecを使って確認作業をコード化

Inspecは、Chefが開発したOSSのテスト自動化ツールです。
サーバーやインフラ、クラウドに関するテストをコード化することによって、テストを自動化することができます。

サンプルコード - SSHの設定に関するテスト

171027_chef_01.png

このようにコードといっても、人間が読みやすく、書きやすい形式でテストをコード化することが可能です。


Chef Complianceを使って継続的にルールへの準拠をチェック

テストが自動化できただけでも、スピードアップを図ることができますが、例えばテスト対象が100台を超えてくると、実行して結果を管理するだけでも時間がかかってしまいます。

また、セキュリティーチームは対象をテストする他にも、準拠状況の確認と状況のレポートを継続的に行う必要があります。

Chef Complianceには、Inspecで書いたテストを継続的に実行する機能とインフラ全体のテスト結果をレポートする機能が含まれています。

171027_chef_02.png
テストを定期的に実行し、WEB UIでコンプライアンス状況をレポートします。

Chefの力を使ってDevSecOpsを加速しましょう。

Chef × コンプライアンスというテーマで、「InSpec」と「Chef Compliance」という二つのツールをご紹介しました。

また、ChefとInspecと組み合わせて利用することで、

  1. InSpecを使って、インフラ全体をスキャンして、ルールへの準拠状態チェック
  2. Chefを使って、ルールに準拠するように修正

このような作業を自動化し、継続的に実施することが可能になります。
もちろんコード化されているので、10台でも1000台でも最小限の労力で実施可能です。

これから自動化に取り組まれる場合には、作業のコード化と同時に、テストのコード化にも取り組んでみてはいかがでしょうか。

※Chef Complianceは、今後Chef Automateという製品に統合されることが発表されています。
他のChefソリューションと統合されることによって、既存のコンプライアンス管理機能はそのままで、より実用性の高い可視化機能や一つのダッシュボードで、より多くの情報を提供するように進化していきます。

この記事の著者:荒井裕貴

クリエーションライン株式会社 DevOps Team Director

DevOps、Chefのスペシャリスト。日本国内において多くのイベントでの講演実績、DevOpsやChefの導入コンサルティング実績を持つ。
また、日本人で唯一のChef社公式トレーニングのインストラクターとして、多くの企業でのトレーニングを行っている。
LEAN、TPS、業務改善にも精通しており、最近では日本企業に合わせたDevOps導入方法を研究、サービスを開発。


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。