クラウド運用で忘れてはならないシークレット管理
こうしてTerraformの自動化、共通化、協働化を通じて、現代流の強固な運用を見てきたところだが、クラウド環境を活用するうえで忘れてはいけないのがセキュリティだ。DXを推進していくなかで、セキュリティを担保することは重要な課題となる。
クラウドを活用する場合、クラウドサービスを利用する時のアクセスキー、APIトークン、データベースにアクセスするためのユーザー名とパスワード、SSHの鍵、TLSの証明書と鍵など、セキュリティを担保するために大切な情報が数えきれないほどある。まとめて「シークレット」と呼んだりするが、クラウドではオンプレの時とは段違いにシークレットが複雑になるため、確実に管理していくことが重要になる。
なかにはシークレット類をパスワード管理台帳のようなもので管理していたり、運用管理用のユーザー名とパスワードを共有したりするかもしれない。だが、これはかなり危険な状態である。パスワード管理台帳そのものが流出してしまったり、うっかりパブリックのGitリポジトリにシークレットが混入した状態のコードをコミットしてしまい、流出してしまったりするケースもある。
シークレット管理が手薄だと、容易にセキュリティ侵害へつながりかねない。HashiCorpが2022年に発表した『HashiCorp State of Cloud Strategy Survey』によれば、過去2年間のデータ侵害の増加率は380%になっているという。様々な要因が重なり、データ侵害は急速に増加を続けている状況だ。
また草間氏は、データ侵害のうち「82%は人的要素が関与」とも指摘する。これはユーザーの操作ミスやユーザーのアカウントが攻撃されるなど、何らかの人的要素が侵害につながることを示している。また「Webアプリケーションへの侵害のうち、9割がクレデンシャルに起因するもの」という調査結果もある。
クレデンシャルの流出が起きると、そこを起点にサイバー攻撃は進行していく。米国の非営利機関MITRE ATT&CK(マイターアタック)によると、権限が低いクレデンシャルでも横展開や権限昇格などによってデータ窃取につながるという。シークレット管理はデータ流出を食い止めるのに重要な要素となる。
シークレット管理のベストプラクティスとしては、シークレットの定期的なローテーション、ユーザーごとに細かな権限管理、監査記録、暗号化などが挙げられる。しかしこれを手動で運用していたら手間がかかりすぎて、かえってミスを誘発しかねない。