はじめに
Vaultのドキュメントって英語だし、英検3級レベルで英語力のない私にはつらい・・・
そして、一回(google翻訳を使って)訳しながら読んでまた忘れてまた(google翻訳を使って)訳すを繰り返すのをやめたい。
調べるときは全文を見ずに、必要な部分だけを見てたりするので、公式ドキュメントを訳しながら全体を理解していこうと思う。
英語読むのめんどくせーーーとなっている人の助けになればと思い公開した
今回は what-is-vault
とuse-cases
注意事項
- 基本的にGoogle翻訳のまんまです。
- 一応、意味が分かるようには訳してるつもりですが、ちょいちょい意味分からない部分もあります。
誤訳がある可能性があるので、最後はちゃんと公式ドキュメントを読みましょう - 私の知りたい部分からやるので、訳す部分はバラバラになります。
- 公式ドキュメントに記載されていない部分(自分で調べた部分とか)はitalicで記載しています。
Introduction to Vault
HashiCorp Vaultの紹介ガイドへようこそ!このガイドはVaultを使い始めるのに最適な場所です。このガイドでは、Vaultとは何か、解決できる問題、既存のソフトウェアとの比較、およびVaultを使用するためのクイックスタートについて説明します。
Vaultの基本についてすでによく知っている場合は、使用可能なすべての機能と内部の詳細な参照ガイドがドキュメントに記載されています。
What is Vault?
Vaultはシークレットに安全にアクセスするためのツールです。シークレットとは、APIキー、パスワード、証明書など、アクセスを厳密に制御したいものです。Vaultは、厳密なアクセス制御を提供し、詳細な監査ログを記録しながら、あらゆる機密事項に対する統一されたインターフェースを提供します。
最近のシステムでは、データベースの認証情報、外部サービス用のAPIキー、サービス指向アーキテクチャ通信用の認証情報など、さまざまな秘密にアクセスする必要があります。誰がどの秘密にアクセスしているかを理解することは、すでに非常に困難でプラットフォーム固有のものです。キーローリング、安全なストレージ、および詳細な監査ログを追加することは、カスタムソリューションなしではほとんど不可能です。キーローリング、安全なストレージ、および詳細な監査ログを追加することは、カスタムソリューションなしではほとんど不可能です。これは、Vaultが参加する場所です。
例は、Vaultを紹介するのに最適です。ユースケースを見てください。
Vaultの主な機能は次のとおりです。
- Secure Secret Storage:任意のキー/値のシークレットはVaultに保存できます。Vaultはこれらの秘密を永続的なストレージに書き込む前に暗号化するので、生のストレージにアクセスしてもあなたのシークレットにアクセスするには不十分です。VaultはディスクやConsulなどに書き込むことができます。
- Dynamic Secrets:Vaultは、AWSやSQLデータベースなどの一部のシステムでオンデマンドで秘密を生成できます。たとえば、アプリケーションがS3バケットにアクセスする必要がある場合は、Vaultに認証情報を要求し、Vaultは必要に応じて有効な権限を持つAWSキーペアを生成します。これらの動的な秘密を作成した後、Vaultはリースが起動した後にそれらを自動的に取り消します。
- Data Encryption:Vaultはデータを保存せずに暗号化および復号化できます。これにより、セキュリティチームは暗号化パラメータを定義でき、開発者は独自の暗号化方法を設計する必要なく、暗号化されたデータをSQLなどの場所に格納できます。
- Leasing and Renewal:Vault内のすべてのシークレットにはリースが関連付けられています。リースの終わりに、Vaultは自動的にその秘密を無効にします。クライアントは組み込み更新APIを介してリースを更新することができます。
- Revocation:Vaultはシークレットの失効をサポートしています。Vaultは、単一の秘密だけでなく、特定のユーザーによって読み取られたすべての秘密、または特定のタイプのすべての秘密など、秘密のツリーを取り消すことができます。失効は、侵入の場合にキーのローリングやシステムのロックダウンを支援します。
Use Cases
ユースケースを理解する前に、Vaultとは何かを知っておくと便利です。このページはVaultのためのいくつかの具体的なユースケースをリストします、しかし可能なユースケースは我々がカバーするものよりはるかに広いです。
General Secret Storage
最低限、Vaultはあらゆるシークレットの保管に使用できます。たとえば、Vaultは、機密の環境変数、データベースの認証情報、APIキーなどを保存するための素晴らしい方法です。
これをプレーンテキストのファイル、構成管理、データベースなどに格納する現在の方法と比較してください。vault read
またはAPIを使用してこれらをクエリする方がはるかに安全です。これにより、これらの機密情報のプレーンテキスト版とVault監査ログへのアクセスが保護されます。
Employee Credential Storage
これは"General Secret Storage"と重複しますが、Vaultは、従業員がWebサービスにアクセスするために共有する認証情報を格納するための優れたメカニズムです。監査ログメカニズムを使用すると、従業員がアクセスした機密情報や従業員が退職したときにキーをロールバックし、どのキーがロールされたことがあるかどうかを把握しやすくなります。
API Key Generation for Scripts
Vaultの"dynamic secrets"機能はスクリプトに最適です。AWSアクセスキーはスクリプトの実行中に生成され、その後失効させることができます。キーペアはスクリプトの実行前または実行後には存在せず、キーの作成は完全にログに記録されます。
これは、Amazon IAMのようなものを使用することよりも改善されていますが、それでもさまざまな場所でアクセス制限付きアクセストークンを効果的にハードコーディングすることです。
Data Encryption
シークレットを格納できることに加えて、Vaultは他の場所に格納されているデータを暗号化/復号化するために使用することができます。これの主な用途は、アプリケーションがプライマリデータストアにデータを保存しながら、データを暗号化できるようにすることです。
これの利点は、開発者がデータを適切に暗号化する方法について心配する必要がないことです。暗号化の責任はVaultとそれを管理するセキュリティチームにあり、開発者は必要に応じてデータを暗号化/復号化するだけです。