概要
secret
とは一般的に、パスワード、クライアントの構成ファイル、リポジトリ認証情報などの機密情報を保持するオブジェクトタイプです。Pod から分離され、非公開であるべきアイテムは、secret
として保管するのが最適です。
これらの secret
の管理こそが、データ漏洩や認証情報の漏出から環境を保護するための鍵となります。
シークレット管理とは
シークレット管理とは、日々の業務に必要な機密情報が、確実に秘匿されるようにするための方法です。シークレット管理は、DevOps や Security Ops のワークフローを妨げることなく、組織の開発環境と本番環境全体のセキュリティを強化します。
シークレット管理は単一の項目ではなく、認証されたアクセスや追跡、特権の原則、ロールベースのアクセス制御など、さまざまなセキュリティ・オプションを適用することを指します。これらのオプションにより、認証されていないユーザーに重要なデータを公開することなく、シークレットが適切に管理されます。
保護されたリソースへの単一の認証情報制御を使用してシークレットを管理できる自動化ツールは数多くあります。利用可能なツールには、Red Hat® OpenShift® と Red Hat® Ansible® Automation Platform、CyberArk、または Git と GitLab 内のオプションなどがあります。
Red Hat のリソース
シークレット管理の仕組み
シークレット管理は、セキュリティ・フレームワークを遵守し、DevSecOps ライフサイクルの重要なポイント各所にセキュリティ・オプションを実装することによって機能します。
上記の例を見ると、どのようなセキュリティ・ソリューションが DevOps ライフサイクルの特定のポイントにマッピングできるかがわかります。例えば、ソフトウェア・コンポジション分析は、統合開発環境 (IDE)、ビルドリポジトリ、コンテナレジストリ、およびクラスタで、オープンソースソフトウェアのコードベースをスキャンするために適用できます。このアクションにより、コードベースにおけるダウンストリームの脆弱性を防ぐことができます。シークレット・ボールトと認証ツールを開発サイクルの重要な段階で組み合わせることで、ハッカーや悪意ある攻撃者の予備軍による侵害の可能性を減らすことができます。
これは、効果的なシークレット管理とセキュリティ・ソリューションがどのように機能するかを示すほんの一例に過ぎません。効果的なシークレット管理には、上記のすべての項目を実装する必要はなく、むしろ特定のワークロード内でシークレットが漏洩する可能性を減らすために、戦略的にセキュリティ・オプションを適用する必要があります。
シークレット管理のメリット
OpenShift と Kubernetes のシークレットはすぐにエンコードできるものの、データを安全に保つにはそれだけでは不十分です。エンコーディングとは、データを別のフォーマットに変換することであり、元のフォーマットに戻すことも可能です。一方で、暗号化ではデータを変換し、元に戻したりアクセスしたりするために特定の鍵を必要とします。暗号化は、データをロックダウンするより安全な方法であり、シークレット管理戦略の一環として実施することができます。
組織のデータを安全に保つ以外にも、シークレット管理の実装が有益である理由は複数あります。
- シークレットスプロール/セキュリティアイランドの回避:シークレット管理を一元化することで、組織内の一部のグループだけが、他の誰も知らない特別なアクセス権を持つという状態を防ぐことができます。
- 悪意ある攻撃者の特定:強力な検証要件を実装することで、ハッカー予備軍を簡単に遮断し、認証されたユーザーになりすまそうとする試みを阻止することができます。
- 認証情報の自動化:認証情報の確認とアドミッションを自動化することで、ユーザーの認証に必要な手作業が減り、ユーザーのワークフローが妨げられることもなくなります。
シークレット管理について大まかに理解できたら、次は、組織のワークフロー・セキュリティを強化するための選択肢を確認してみましょう。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。