調査会社Statistaによると、DevOpsとDevSecOpsは世界で最も広く利用されているソフトウェア開発環境であり、2022年の調査では両者を合わせて導入例の47%を占めました。構成管理ツールは、開発期間の短縮と継続的インテグレーション/継続的デリバリー(CI/CD)パイプラインというDevOpsの理想を実現するうえで重要です。
構成管理ツールは、IT資産のベースライン構成を定義し、システムのセキュリティを脅かしかねない構成変更、つまりドリフトを監視して修復するのに役立ちます。構成管理は、エンタープライズ規模のソフトウェア開発・デプロイの取り組みに不可欠です。
DevOpsとDevSecOpsの比較
DevOpsとDevSecOpsは密接に関連する分野です。どちらも、開発機能と運用機能を分断するサイロを解消し、CI/CD環境を実現することを前提としています。
DevSecOpsの本質的な違いは、セキュリティチームを含む点にあります。DevSecOpsでは、プロジェクトの後半でセキュリティを評価・修正するのではなく、開発プロセスの初期段階からセキュリティをソフトウェアの中核要素として組み込みます。
構成管理ツールのメリット
<BODY>構成管理ツールを使う理由は何でしょうか。「Kubernetesセキュリティ状況レポートを、Ansible Automation Platformの開発元であるRed Hat Inc.が発表しました。このレポートは、コンテナ化されたオープンソースのKubernetesオーケストレーション環境において、システムの設定ミスがセキュリティインシデントの主な原因になっていることを明らかにしています。Red Hatによると、構成上の小さなエラーが積み重なると「構成ドリフトにつながり、最終的にはシステムの低速化、セキュリティおよびコンプライアンス上のリスク、さらには停止を招く可能性がある」といいます。
構成管理ツールは、安全なベースライン構成だけでなく、ドキュメント化、変更管理、保守に関する一貫したアプローチも確立します。
構成管理ツールには、次のようなメリットもあります。
- 管理対象システムのグループ化。
- ベース構成、システム設定、パッチの管理と更新を一元化。
- システムパフォーマンス管理とコンプライアンス対応を一元化・自動化。
- システム全体の対応項目のトリアージと修復。
ソフトウェア構成管理ツールの種類
構成管理プラットフォームは、多くの要素から成り立っています。一般に、構成要素となるツールは次の5種類のいずれかに分類されます。
バージョン管理ソフトウェア:VCSは、ソースコードやアプリケーションコードの変更を追跡・記録します。コードのブランチやマージ、コードの競合解消、共同作業の支援に役立ちます。DevOpsチーム全員が同じバージョンを把握でき、システム障害発生時にはプロセス内のスナップショットを参照できます。
アーティファクトリポジトリ:他の開発ツールを保管する倉庫のようなものです。コンパイル済みコード、ライブラリ、依存関係、ドキュメントをフォルダーに保存し、簡単にアクセスできるようにします。分散アーキテクチャ(クライアント・サーバーアーキテクチャに対して)では、このリポジトリを各マシンに保存して、保守や更新を高速化できます。
Gitについて
Linuxで知られるLinus Torvaldsが開発したオープンソースの分散型バージョン管理システムGitは、分散ソフトウェア開発におけるデファクトスタンダードのバージョン管理ソフトウェア/アーティファクトリポジトリです。Stack Overflowが2022年に実施した調査によると、開発者回答者の94%がGitを選択していました。
Gitは、ソースコード、コンパイル済みコード、バージョン履歴、ドキュメントから成る完全なリポジトリを、同じ構成を共有する各マシンのディレクトリに保存します。中央にある「唯一の信頼できるバージョン」が各リポジトリに配布される仕組みです。他の構成管理ツールもその中に保存されるため、更新、パッチ適用、その他の構成保守作業を高速化できます。
「Gitは、より上位の構成管理における基盤ツールです」とAtlassian(プロジェクト管理ソフトウェアJiraの開発元)は説明しています。
構成管理システム:その名のとおり、システム構成を管理するソフトウェアです。再利用可能な構成テンプレートの作成、自動デプロイ、インフラのオーケストレーション、さまざまなプラットフォーム間での構成の一貫性確保に利用されます。
ビルド自動化ツール:分散ソフトウェアをコンパイル、テスト、デプロイするツールです。これらをリポジトリに含めることで、デプロイを大幅に高速化できます。
課題管理ソフトウェア:課題、バグ、機能リクエストをここで報告・追跡します。開発タスクを割り当てて対応漏れや重複を防ぎ、作業の優先順位付け、進捗追跡、共同作業の促進を行えます。
セキュリティ専用の構成管理ツール
DevSecOps環境には、開発を迅速かつ継続的に進めるだけでなく、開発プロセス全体を通じてセキュリティを製品に組み込むためのツール群も用意されています。
静的アプリケーション・セキュリティ・テスト(SAST):ソースコードを調査し、脆弱性、ポリシーへの準拠状況、リスクを確認するツールです。SASTツールはコード分析を自動化し、脆弱性の発生を検知し、安全なコーディング手法を適用するとともに、開発プロセスの早期段階からセキュリティを組み込みます。
動的アプリケーション・セキュリティ・テスト(DAST):開発プロセスの後半に導入され、ブラックボックス方式でリアルタイムに分析を実行します。インタラクティブ・アプリケーション・セキュリティ・テスト(IAST)ツールは、SASTとDASTの機能を組み合わせ、フィードバックとコード修正を迅速化します。
実行時アプリケーション自己保護(RAST):実行環境で動作し、有害なコードの挙動を継続的に監視して、その実行を防止します。RASTツールは、アプリケーションのアーキテクチャとデータフローに基づいて分析します。
ソフトウェア構成分析(SCA):開発プロセス中にソフトウェア部品表を作成し、その要素をデータベースと照合して、開発中のコードに含まれる既知の脆弱性やコンプライアンス上の問題を検出します。
自動テスト:開発ライフサイクル全体にわたるセキュリティチェックを自動化・調整し、脆弱性や欠陥コードを検出することで、障害からの復旧を迅速化し、コストを削減します。
こちらも読む:2024年版、シームレスなセキュリティを実現するDevSecOpsツール15選
構成管理ツールの主な7つの機能
構成の自動化
IT資産の構成を自動化することは、構成管理が存在する根本的な理由です。これにより、開発者はテンプレートから一貫したプラットフォームインフラを構築し、バージョン管理を確立してソフトウェアを展開し、一貫性を維持するとともに、監査やコンプライアンスのための記録を残せます。
ポリシーの適用
ITポリシーや社内ポリシーの適用を自動化すれば、監視に費やすリソースを解放できるだけでなく、意図しない、あるいは故意の法的リスクから企業を事前に保護できます。IT法務を専門とする法律事務所Michalsonsは、ビジネスを保護できる以下のポリシー項目を挙げています。可能な限り、これらを構成管理ソリューションに組み込むべきです。
- 情報セキュリティポリシー
- 情報管理ポリシー
- データガバナンスポリシー
- 適正利用ポリシー(特にメール、インターネット、ソーシャルメディアの利用に関するもの)
- 情報公開ポリシー
- ITガバナンス、リスク、コンプライアンスのポリシー
- 契約管理ポリシー
- プロジェクトおよび変更管理ポリシー
- IT製品・サービス調達ポリシー
- 可用性管理ポリシー(災害復旧、事業継続など)
継続的な監視、レポート、分析
構成管理プラットフォームは、開発中と実行時の双方で、プロジェクトのパフォーマンスと脆弱性を継続的に監視する必要があります。開発中は、本番環境に移行してから修正するとコストがかかるバグの多いコードを防ぎ、実行時には、内外から進化する脅威への露出を検出します。課題管理の仕組みへの自動レポートにより、セキュリティとパフォーマンスの問題を迅速に改善できます。
監査証跡
監視・分析ソフトウェアは監査証跡を生成し、開発のどの段階で、どの部門の管理下で不備が工程に入り込んだのかを報告すべきです。これにより、これまで検出されなかったプロジェクト間の共通脆弱性が明らかになる可能性があります。
脆弱性の検出
構成管理プラットフォームにおいて、開発中のソフトウェアやリアルタイム・実行時環境の脆弱性を事前に検出できることは、開発と運用の重要な要素です。こうした役割の大部分は、前述のツール(SAST、DAST、SCAなど)が担います。これらのツールは、既知の脆弱性や安全でないコーディング手法を収録した、継続的に更新されるライブラリに対して検査を行います。
パッチ管理
社内で開発したエンドユーザー向けソフトウェアツールは、更新やアップグレードのたびにパッチ適用が必要です。商用ソフトウェアパッケージやOSの中には、広大な攻撃対象領域が常に攻撃を受けている、または機能修正や段階的なアップグレードが必要なため、ほぼ継続的なパッチ適用を要するものもあります。こうした作業を一元化・自動化すれば、大幅なリソース節約になります。
統合機能
プログラミング言語との関係でも、他の管理ツールとの互換性でも、構成管理ツールの統合機能を見落としてはいけません。構成管理の要件をすべてカバーする製品もありますが、特定の要素については、各分野で最も優れた製品を組み合わせるアプローチを選ぶこともできます。
クラウドセキュリティ構成管理
クラウドコンピューティング環境では、構成管理が極めて重要です。クラウドコンピューティングは、リソース割り当ての点でより動的です。インフラが複数のサーバー、あるいは複数のプロバイダーにまたがって割り当てられる可能性があるため、さらに複雑になります。ポリシーの適用、脆弱性への露出、その他の構成上の懸念は、プライベート、パブリック、ハイブリッドの各クラウド環境で異なる場合があります。それでも多くの企業にとって、Infrastructure as a Service(IaaS)環境のメリットは非常に魅力的です。
適切なクラウド構成管理には、いくつかのメリットがあります。
- セキュリティ制御の自動化
- 暗号化ポリシーの適用
- 脆弱性の迅速な検出
- セキュリティ問題の迅速な修復
- セキュリティ問題の説明責任を可能にする監査証跡
よくある質問
構成管理ツールの例にはどのようなものがありますか?
構成管理ツールは数多く存在します。この一覧では、実際によく目にする代表的なツールをいくつか紹介します。
- Git:前述のとおり、より上位の構成管理における「基盤ツール」であるGitは、Linux OSの分散開発向けに開発されたオープンソースのバージョン管理・リポジトリツールです。DevOps開発プロジェクトのデファクトスタンダードとなっています。
- Ansible:もう1つのオープンソース製品であるAnsibleは、開発プロジェクトの構成、プロビジョニング、デプロイ、オーケストレーションを自動化する主要ツールの1つです。ポリシーやコンプライアンスの自動化にも利用されます。Ansibleコミュニティは開発者向けのナレッジハブを運営しています。
- Puppet:しばしばAnsibleと比較されるPuppetは、セキュリティとスケーラビリティを重視するもう1つの自動化ツールです。
- Jira:アジャイル開発環境を対象とするJiraは、共同作業における柔軟性と、課題やコードの問題に関する記録、追跡、解決の品質および応答性で知られています。
- Kubernetes:K8としても知られるKubernetesは、コンテナ化アプリケーションを対象とする無償のオープンソース製品で、Googleの本番環境技術を基盤としています。
- Progress Chef:Chefは、ドメイン固有言語(Rubyベース)を使って構成ポリシーを記述します。オープンソース版とエンタープライズ版があり、Software as a Service(SaaS)方式でも利用できます。
- BitBucket:Atlassianのこのツールは、Gitのバージョン管理機能と人工知能(AI)搭載ツールを活用し、プルリクエストの生成、コメントの要約、BitBucketリポジトリからのコード提案(またはコードレビューの初期チェック)を行います。
- SaltStack:Saltはその速度で広く知られる、もう1つのオープンソースプロジェクトです。このソフトウェアは、数百件のタスクを同時に処理できるマルチスレッド設計を採用しており、永続的な接続を必要としない分離型メッセージングシステム(ZeroMQ)を使用します。
- SolarWinds:この管理製品は、フルスタックのハイブリッド環境でもマルチクラウド環境でも、クラウド環境の可視性を提供します。BitBucketと同様に、SolarWindsはAIを活用して、反復的で時間のかかるタスクを自動化します。
- CF Engine:CFは「継続的フィードバック」を意味し、CI/CD(継続的インテグレーション/継続的デプロイメント)を支援します。リスニングポートにより、設定可能なダッシュボードとカスタムアラートを通じて、パフォーマンスとコンプライアンスをリアルタイムで可視化できます。
- Terraform:Terraformは、クラウドデプロイメント向けにInfrastructure as Code(IaC)を提供します。Microsoft Azure、AWS、Google Cloud上の複数のクラウドやハイブリッドクラウドにまたがるインフラをプロビジョニング・管理できます。
この一覧は網羅的なものではなく、推奨や評価を意味するものでもありません。eSecurity Planetサイトには、個々の製品を詳しく解説した記事が複数あります。 詳しくはこちら。
構成管理ツールの費用はいくらですか?
構成管理ツールは無料で利用できる場合があります。オープンソース製品は無料で利用できることがあり、開発スタッフが非公式なサポートネットワークを活用できる場合には、検討に値する選択肢です。商用製品の価格設定にはさまざまな方法があります。例えばAnsibleは、毎年定額で課金されます。PuppetやChefなどの一部の製品は、ノード単位で年額課金され、1ノードあたり約75~135ドルです。Terraformなどの製品はユーザー単位・月額で課金され、10~60ドルです(通常は年払い)。
ベースライン構成とは何ですか?
ベースライン構成とは、情報システムの項目について定義された仕様一式です。OS、ソフトウェアパッケージのバージョン、ネットワークトポロジーなど、システムのハードウェア要件とソフトウェア要件を規定します。将来のビルドの基盤となるとともに、構成ドリフトや潜在的な脆弱性を検出するために、コンポーネントを比較する基準として機能します。
結論:より明確な構成の修復と変更を実現する
構成管理ツールは、大規模なソフトウェア開発に不可欠です。開発者を導き、共同開発プロセスを効率化するとともに、プロセスの初期段階からセキュリティを組み込むことで、脆弱性への露出とシステムパフォーマンスを継続的に監視する安全なデプロイメントを実現できます。
TechAdviceの世界には構成管理の取り組みに役立つリソースがさらにあります。





