MEGAZONEブログ
HashiCorpVaultでクラウドシークレットを一元管理する
Speaker : HashiCorp Korea Sr.Solutions Engineer ヤン・ソンテ
Pulisher : ジェユン
はじめに
Agendは以下のとおりです。
・HashiCorp Cloud Platform
・HashiCorp Vault, シークレットライフサイクル管理
・シークレットの管理標準化及び統合
AI時代に適したプロセスの確立
HashiCorp Platformはクラウド全体にわたってインフラとアプリケーションが途切れることなく拡張される問題があります。そのため、効率的に管理することが重要になっています。
・アプリケーションのライフサイクル管理
CI/CDのようなツール(Jenkinsなど)を使って効率的に管理すること。
・インフラストラクチャのライフサイクル管理(HashiCorp提供)
アプリケーションをインフラに迅速に展開できるサービスを提供している。
・セキュリティのライフサイクル管理(HashiCorp提供)
インフラに展開されるアプリケーションに関する重要な情報を管理するサービスを提供している。このような3つのプロセスを確立することを重視しており、そのようなサービスを提供しています。
HashiCorp Platform
HashiCorp Platformでは、インフラストラクチャとセキュリティのライフサイクル管理サービスで標準化ソリューションを提供しています。
・インフラストラクチャのライフサイクル管理サービス
Terraform, Packer, Waypoint, Nomad
・セキュリティのライフサイクル管理サービス
Vault, Boundary, Consul
今回のテーマに沿って、クラウドシークレットを一元管理するVaultについて説明します。
セキュリティのライフサイクル管理、シークレット変更の自動化
Vaultでは、シークレット管理方法のプロセスを2段階に分けています。
・導入/採択の段階
シークレット交代、ライフサイクル管理
・標準化の段階(運用及びセキュリティ)
動的シークレット管理、組織的中央管理
ポリシー付与、セキュリティ要素の強化
Vaultでいう「シークレット」とは、保護されたリソースや機密性の高い情報を確認するために使用される、重要な情報のことを指します。
パースワード | クラウド/DBキー | SSHキー | APIキー | 認証書 |
---|---|---|---|---|
Token | ソースコード内の重要情報 | CI/CD内容の重要情報 | Kubernetes Secrets | 暗/復号化が必要な重要情報 |
クラウドシークレットやキー管理に関する考慮事項
1.誰が
Identity基盤で認証を行う。プロジェクトでキーを共有する場合があるが、誰が何を行なったかの追跡が困難であり、キーを失った時の影響度を把握することが難しい。そのため、各UserにIDを発行し、認証可能な対象を定義した上で利用することが推奨される。
2.何を
対象はサーバ、DB、ストレージ、クラウドへのアクセスキー情報となる。
3.いつまで
いつまでアクセスを許可するかの定義が可能である。
4.ライフサイクル
シークレットとキーの生成/更新/破棄の自動化が可能である。
Vault事例紹介:AWS Databaseアカウント管理方法
データベースパスワードの管理は複雑です。クラウドに移行しながら様々なデータベースを管理することが難しくなりました。
この問題に対する解決策としてVaultを使用して標準化されたアクセス管理を提供します。使用目的に応じて使用期間を設定することができます。
例えば、Aurora-MySQLではTTL(生存時間)が60分の権限テーブルの生成を提供します。
ユーザーアプリケーションはIDと秘密番号を配布されて認証を受けます。
ユーザーの役割に応じてVaultはデータベースの一時的なID/PWを生成します。
これは動的な方法で、ID/PWをランダムに生成して外部の従業員や協力企業に一時的に権限を付与するのに適しています。
定常的な場合にはIDは固定され、設定されたTTL値で秘密番号に権限を付与します。これにより権限の交換やユーザー管理が可能になります。
Vault事例紹介:AWS Lambda管理方法
最近はAWS Lambdaを活用するケースが増えています。コード内の重要な内容や変数の値を外部に漏洩するリスクがあります。このようなリスクを防ぐために、Vault Lambda Extensionがキャッシングをサポートしました。AWS Lambda実行環境からVaultに格納されているシークレットの取得を簡単に行うことができます。これにより、多数のLambda実行が発生する環境下でもVaultサーバーへの負荷を大幅に削減することが可能です。
クラウドシークレットのセキュリティにおけるライフサイクル管理
今後Vaultを利用する際に、シークレット管理における考慮事項を説明します。
Stage1:導入/採択 | Stage2:標準化 | Stage3:拡張 | |
ワークフローの自動化 | Staticシークレット統合、ID基盤認証ポリシーの確立 | ||
定期的にDynamicシークレットの適用(App Modernization/MSA) | |||
可用性及び回復力 – マルチリージョンの運用 | |||
記録管理 | IDP連動、ID基盤認証ポリシーの確立 | ||
役割基盤のアクセスポリシー強化 (RBAC, Role/Endpoint Base Policy) | |||
ライフサイクル管理 | 管理していないシークレットの検索、可視化及び洞察力の確保 – Rader, Audit, Monitoring |
シークレットのスキャン、検知・把握する
SaaS型サービスであるHCP Vault Radarを利用することで、管理していないシークレットをスキャンすることができます。コード内にあるシークレットの検出、特定、削除を自動化し、シークレットのカテゴリー分け、リスク別のランク付け、修正のための手段を提供します。
Vaultの目標:シークレット管理の標準化
Vaultの目標は、シークレットのセキュリティ管理を標準化し、セキュリティリスクを解決することです。
①クラウド上にある全てのシークレットを一元管理する。
②サービスごとにシークレットを管理する。
③クラウドだけでなく、オンプレミス環境でもシークレットを管理する。
④様々なユースケースで活用できるようにする。
セッションを終えて
HashiCorpのVaultはセキュリティに特化した素晴らしいツールです。セッションを通じて、その堅牢なアクセス管理やシークレットの保護機能について学びました。特に、動的なシークレットの生成やリースの概念は、セキュリティを強化しつつ運用の自動化を実現する上で非常に有効だと感じました。Vaultの多様な認証方法やポリシーに基づく細かなアクセス制御も、企業のセキュリティポリシーを実装する上で大きな強みになると思います。