実稼働データベースを誤って破壊したために就職初日に解雇されたプログラマーに関する最近の話は、技術者にとって悪夢のようなものでした。
不運な元従業員が Reddit に投稿したこの悲しい話には、新入社員に本番環境の管理者アクセス権が与えられていたこと、オリエンテーション資料に不正確な情報が含まれていてミスが生じたこと、そして最悪なことにデータベースのバックアップが存在しなかったことが危機の影響を強めたことなど、いくつかの不穏な要素が詳しく記されている。
この大失敗は、本番環境におけるベストプラクティスを示唆しており、あらゆる企業やITプロフェッショナルにとって大きな教訓となるでしょう。そこで、本番環境が最大限の稼働時間と安定性を確保し、保守担当者の雇用を確保するために備えるべき10の要素をご紹介します。
1.冗長性
冗長性は、本番環境を成功させる上で最も重要な要素の一つと言えるでしょう。収益の創出や収益損失の防止など、組織にとって極めて重要なシステムやサービスには、決してインスタンスを一つも使用すべきではありません。サーバー全体の障害にも耐えられるよう、アプリケーションとシステムの冗長性も活用しましょう。電源とネットワーク接続も冗長化する必要があります。中には、サイト全体を冗長化し、全く異なる場所で業務を遂行している組織もあります。
堅牢な冗長性を実装する上でコストが要因として挙げられることがよくありますが、冗長性への投資は、最初は痛みを伴う可能性がありますが、将来的には、たとえそれが安心感をもたらすだけでも、大きな利益を得られる可能性があることに留意してください。
2.災害復旧能力
「災害」という言葉には曖昧な意味を持つ場合があります。アプリケーションのクラッシュから停電によるサイト全体の損失まで、予期せぬ不幸や障害を指します。本番環境の運用能力に影響を与える災害に備え、適切な対策を講じる計画を立てましょう。以下に例を挙げます。
- すべてのシステムの夜間バックアップを実行し、復元機能を確認します
- バックアップ テープ/ハード ドライブをオフサイトに発送する (または、データをクラウドにコピーしてリモートからアクセスできるようにする)
- SANボリュームと仮想マシンのスナップショットを作成し、既知の正常な状態にロールバックできるようにします。
- 緊急事態に備えて、予備のハードドライブ、ネットワーク カード、サーバーを用意しておく
- 停電に備えて発電機を設置する
3.安全なアクセス
開発者が本番環境データベースを削除したというインシデントは、会社がシンプルなガイドラインに従っていれば決して起こらなかったはずです。それは、本番環境へのアクセスを本当に必要とする人員にのみ提供し、それぞれの職務に応じた権限を設定するというものです。システムアカウントやサービスアカウントのパスワードは、安全な集中管理されたパスワードデータベースに保存しましょう。
初日から本番環境で直接作業する予定がない限り、本番環境で作業するためのキーは付与しないでください。アクセスが必要な場合は、「読み取り」権限で十分かどうかを確認し、実際にデータを変更できないようにしてください。
本番環境へのアクセス権を持つ従業員が退職する場合は、必ずアカウントを無効化またはロックしてください。本番環境へのアクセス権を持つ管理者が退職する場合は、ルートパスワードや管理者パスワードなど、関連するすべてのパスワードを変更してください。
参照: ネットワーク セキュリティ ポリシー (Tech Pro Research)
4.標準化されたアクセス
本番環境データへのアクセス方法は、Webブラウザ、SSH接続、リモートデスクトップ、Squirrelデータベースクライアント、セキュアFTPなど、多岐にわたります。ユーザーが同一のクライアントまたはポータルから本番環境にアクセスするための標準的な方法を確実に利用できるようにしてください。
ユーザーが接続して本番環境にアクセスするための「踏み台」や要塞ホストを用意することも有効です。例えば、ユーザーがリモートデスクトップ経由でログインできるWindowsサーバーに、Putty、Squirrel、Firefoxなどの標準アプリケーションをセットアップすることで、一貫性を保ち、ユーザーのニーズに容易に対応できるようになります。これは、本番環境のセキュリティ強化にも役立ちます。
5.ミニマリズム
本番環境システムには、必要なサービスとアプリケーションのみを含めるべきです。これにより、トラブルシューティングやパッチ適用の負担が軽減され、より予測可能で管理しやすい環境が実現します。また、この戦略は潜在的な攻撃の影響範囲も縮小します。
WebサーバーはIISまたはApache/Tomcatのみを実行する必要があります。FTPサーバーはセキュアFTPサービスのみを実行する必要があります。ファイルサーバーはデータのホスティングのみを行う必要があります。その他も同様です。不要になったアプリケーションやサービスがあれば、削除してください。
6.パッチ戦略
パッチ適用といえば、これは必要悪です。本番システムが少なくとも月に一度は更新されるように、パッチ適用の仕組みを構築しましょう。
本番システムの再起動は誰にとっても楽しいものではありませんが、データ漏洩の被害に遭うと、それに比べればまるでピクニックのようです。さらに、冗長化機能を使用している場合は、例えばクラスタ化された2つのシステムにパッチを適用して再起動しても、ユーザーへの影響はまったくありません。ただし、パッチ適用によって悪影響が生じ、冗長化によって実装した保護が無効になる可能性もあるため、すべての冗長システムにパッチを適用する前に、少なくとも1~2日は待つようにしてください。
7.分離されたネットワーク
本番システムは、他のサーバー、ましてやクライアントワークステーションと同じネットワーク上に配置すべきではありません。専用のサブネットに配置し、必要なポートのみを接続できるファイアウォールを通してアクセスを確保しましょう。これにより、セキュリティが確保されるだけでなく、前述のミニマリズムを実現できます。
ファイアウォールでどのポートを開く必要があるかを判断するのは面倒な作業ですが、実稼働環境がどのように機能するかを詳しく知るための投資と考えてください。これは、トラブルシューティングやサポートの際に大きな利益をもたらします。
8.変更管理
変更管理とは、提案された変更とその予想される影響を文書化し、当該変更のレビューと承認を求めるプロセスです。理想的には、変更要求には、影響を受けるシステム、変更計画、変更の検証方法(システム管理者とエンドユーザーの両方の視点から)、そしてバックアウト計画が記載されている必要があります。
他の技術者は、プロセスに潜在的な落とし穴がないか検査する必要があります (ピアレビューと呼ばれます)。その後、変更を実施する前に、マネージャーがそのリクエストを承認する必要があります。
大企業、特に金融機関は厳格な変更管理ガイドラインに従っており、中小企業も同様にメリットを享受できます。変更管理は煩雑で、多忙なIT担当者にとっては苛立ちや抵抗を生むこともありますが、本番環境への悪影響を最小限に抑えるのに役立ちます。また、変更によって予期せぬ障害が発生した場合でも、変更内容が事前に把握・承認されており、不注意な管理者による不正行為ではないため、従業員の雇用を守ることにもつながります。
参照: システム管理およびインフラストラクチャ管理バンドル (TechRepublic Academy)
9.監査、ログ記録、アラート
上記の手順の多くは、監査、ログ記録、アラート機能を活用していない場合、効果が低下したり、無意味になったりします。本番システムで実行されるすべてのアクションは記録され、重大度に応じて適切なアラートがトリガーされる必要があります。例えば、rootとしてログインすると、ITスタッフやセキュリティグループに通知が送信され、何が起こっているのか、違法行為が発生しているかどうかを評価できるようになります。
ハードウェアに不具合がある場合も同様です。「生産停止は、ユーザーが最後に知るべきだ」という格言があります。ハードドライブがいっぱいになったら、担当スタッフに連絡してください。帯域幅の過剰な使用、メモリ不足、断続的な接続の問題、その他の運用上の問題も同様です。
10.適切な文書
中国のことわざに「薄い墨は良い記憶よりも価値がある」というものがあります。知識は強力なものですが、それを適切に他者と共有する能力はさらに強力です。従業員の離職は避けられない現実であり、生産環境に関する重要な情報を脳内にしか記憶せずに退職する従業員は、企業にとって大きな損失となります。
実稼働環境に関するドキュメントは包括的かつ最新の状態に維持する必要があります。ハードウェア、ソフトウェア、ネットワークの詳細、ベンダー情報、サポート情報、他のシステムやアプリケーションへの依存関係、そして秩序維持に必要なその他の詳細情報を含める必要があります。四半期ごとにレビューを実施し、実稼働環境を担当するすべてのスタッフがドキュメントを熟知していることを確認し、災害発生時に備えて安全にバックアップされていることを確認してください。
以下も参照:
- 生産停止後の事後検証の実施方法
- 内部セキュリティリスクを軽減する5つの方法
- 緊急パッチを効果的に展開するための7つのヒント
- 休暇中にIT部門の灯火を消す10の方法