LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

事例から学ぶ、シークレット管理の重要性とメリット

今日、クラウドサービスの利用は当たり前の時代になりました。クラウドベースの環境では、多くのシステムやアプリケーションがアクセスキーやその他の認証情報をシークレットとして使用しています。これらの情報は、不正アクセスや漏えいが発生した際に大きな被害が生じる可能性があるため、適切な管理と保護が求められます。

今回は、「シークレットの集中管理で、データアクセスの一元化・機密化を推進しよう」というテーマで、シークレットの不適切な管理により実際に起こりうる課題とその解決策について、事例を交えてご紹介します。

シークレットとは?

シークレットとは、データベース(以下、DB)のID・パスワードのようにシステムへのアクセス権限を付与した機密情報のことです。

具体的には、以下のような情報が該当します。

シークレットの例 概要
DBの接続情報 DBのID・パスワードのように、DBへのアクセス権限を付与した資格情報
APIキー 外部サービスへのアクセス権限を付与するためのキー
暗号化キー データの暗号化や復号に使用するキー
トークン 認証や認可に使用される一時的な情報
証明書 SSL/TLS通信のためのデジタル証明書や秘密鍵

事例紹介:DB接続情報の管理不備

実際に発生した、複数の事例を組み合わせた仮想事例を通して、シークレットの不適切な管理がもたらすリスクと解決策を具体的に解説します。

事例

A社はWeb通販事業を営んでおり、ユーザーがスマートフォンから商品を購入できるアプリを提供しています。このアプリは、ユーザーの個人情報や購入履歴をDBに保管しており、運用はA社の運用チームが実施していました。

ある日、ユーザーの氏名および電話番号が匿名掲示板に投稿されているという通報がありました。A社は緊急対策本部を設置し、原因調査をしました。その結果、アプリに不正な文字列を送信することで、Webサーバーのルートディレクトリを参照できる脆弱性があり、「/tmp」ディレクトリに保存されたDB接続情報を含む作業用の一時ファイルを参照できる状態にあったことが判明しました。

/tmpディレクトリに作業用ファイルを放置していたことにより、攻撃者はDBのID・パスワードを窃取し、本番環境DBの顧客ファイルを参照可能になった

※ 本事例は、実際に発生した複数の事例を組み合わせた仮想のものです

運用チームは、DBの接続情報をどのように管理するべきだったのでしょうか?

原因と課題:管理の難しさとセキュリティリスク

シークレット情報が複数の場所や環境に散在することには、管理の難しさを生むだけでなく、セキュリティ上の多くのリスクをはらんでいます。

ID・パスワード管理

上記の事例では、A社は開発環境・本番環境を保有しており、環境ごとのDBのID・パスワード管理について、チームで異なる運用を実施していました。さらに、IDとパスワードは複数の場所に分散して管理されていたことが判明しました。

開発Webにてアプリケーションのプロパティファイルに記載、デバック用に開発者個人端末のメモ帳アプリに開発環境のDB接続情報を記載
作業用にDBサーバの一時ディレクトリにID・パスワード情報を設置、環境情報をエクセルに記載しチーム内で共有

これでは取り扱いが難しく、運用にも手間がかかります。例えば、本番環境と開発環境で設定ファイルが異なる場合、それぞれを管理する必要があります。

本番環境と開発環境で異なるソースコードを管理しなければならない
IDやパスワードを変更した場合には設計書や運用手順書を書き換える必要がある

情報漏えいリスク

セキュリティの観点からも問題があります。IDとパスワードが複数の場所に存在すると、情報の取り扱いミスや不適切な共有、セキュリティ対策の欠如となることで、情報漏えいのリスクが高まります。

例えば、誤って外部に公開された場合や、アプリケーションに脆弱性がある場合などが考えられます。

ソースコードを保管したリポジトリが誤って外部に公開されたら...個人アカウントが漏洩し、組織内のファイルを閲覧されたら...
アプリケーションに脆弱性があり、サーバに不正侵入されたら...

解決策:シークレットの一元管理

上記のような課題を解決するには、機密情報を一元管理し、安全にアクセスできる仕組みを提供する「シークレット管理ツール」の利用がおすすめです。一元管理とは、シークレット情報を一箇所に集約し、統一的な管理を行うことです。

このアプローチの実現方法として注目されるのが、HashiCorp社のシークレット一元管理ツール"Vault(ヴォルト)"です。

関連サービス

HashiCorp社は、IaC(Infrastructure as Code)ツール「Terraform」を提供する会社としても知られています。VaultはIDベースのシークレット管理や暗号化の機能を有しており、インストール型とSaaSの両方でソフトウェアを提供しています。APIを介して、既存のシステムと連携が可能です。

シークレットの一元管理ツール「Vault」の運用フロー

Vaultの運用フローについて、具体的に紹介します。先ほどの事例のように、開発者やWebアプリケーションが、Vaultからシークレットを取得するケースで考えてみましょう。

まず、開発者またはアプリケーションはVaultにログインを行います。ログインの際の認証情報はIDプロバイダーとの連携で取得できます。例えば「人」あれば、Active Directoryとの連携が、「アプリケーション」であれば各種クラウドの「アクセス制御システム」などと連携が可能です。Vaultはポリシーチェックに基づいてクライアントの代わりにシークレットの発行を要求できます。

この際、シークレットの暗号化や有効期限の設定など、+SEC(プラス"セキュリティ")の要素を活用して安全な管理が行われます。

シークレット管理システムVaultとIDプロバイダー、シークレットプロバイダーとの連携により、安全な管理が行われる

シークレットを一元管理する「Vault」のメリット

このようにシークレットの一元管理を実現するVaultの導入には、多くのメリットがあります。

先ほどの事例においてVaultを採用した場合、各環境のWebサーバーがVaultからDBのIDやパスワードを動的に取得できるため、異なる環境設定の管理が不要です。

ソースコードにシークレット情報をハードコードするリスクも回避でき、セキュリティの向上が期待されます。Vaultは、DBサーバーと連携して、一時的なDBユーザーの発行やそのID・パスワードの提供も行います。またID・パスワードだけでなく組織全体のシークレット管理の運用が統一・最適化されることで、効率的な運用が実現されます。

①本番WebからVaultへシークレットを要求、②VaultはCREATE USER文を実行しDBユーザを作成し本番DBへ、③本番DBはVaultへ一時的なID及びパスワードを発行、④Vaultから本番WebへID・パスワードを返却、⑤本番Webは本番DBへ接続

さいごに

シークレット情報の一元管理は、システムの安全性や効率性を高める上で欠かせない要素です。特に、HashiCorp社のVaultのようなツールを活用した一元管理の導入は、セキュリティの強化と、効率的な運用の両方を実現するための鍵となります。企業組織の中で、シークレット管理の手順が統一されているかどうかを検証することは、非常に重要です。

シークレットの一元管理に困りごとがありましたら、ぜひラックへお声がけください。

プロフィール

DevSecOpsチーム

DevSecOpsチーム
DevOpsにセキュリティを融合し、セキュリティの強化と効率的な開発の両立を促進しています。
セキュリティ意識の高い開発現場を実現し、安全かつ迅速なソフトウェアの提供ができる環境を、お客様の課題に応じて提案します。

「シークレットの一元管理」に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • カード業界必見!PCI DSS v4.0のデータ暗号化に「HashiCorp Vault」をおすすめする理由

  • 生成AIを活用した新機能も発表!~サンフランシスコ開催「HashiConf Global 2023」参加レポート

  • イチから学べるTerraform~基礎から実践を紹介するウェビナー動画を無料公開~