Linux上でVaultを使用して機密データを保存する方法

HashiCorp Vault は、静的なシークレットをキー/バリュー (KV) シークレット エンジンに保存し、承認されたユーザーが Web UI または CLI を介して取得できるようにします。このガイドでは、ローカルの Linux マシンでのワークフローを説明します。KV v2 シークレット エンジンと Vault 開発モードを使用します。開発モードは意図的にセキュリティが脆弱で、データはメモリにのみ保持され、停止時に削除されます。ここではプレースホルダー値を使用してください。実際のパスワード、API キー、またはプライベート認証情報は入力しないでください。永続的な機密データについては、耐久性のあるストレージと適切なアクセス制御を備えた非開発モードで Vault をデプロイしてください。

DebianまたはUbuntuにVaultをインストールする

古いバージョン固定のダウンロードリンクではなく、HashiCorpの公式パッケージリポジトリを使用してください。以下のコマンドを実行すると、署名キーとaptリポジトリが追加され、Vaultがインストールされます。RHEL、Fedora、またはAmazon Linuxを使用している場合は、Vaultの公式インストールページから該当するパッケージの手順を選択してください。

sudo apt update && sudo apt install -y wget gpg
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault
Ubuntuターミナルに、HashiCorp公式aptリポジトリからインストールされたVaultが表示されています。

CLIがパスに含まれていることを確認してください。

vault --version
Ubuntuターミナルで、vault --versionコマンドを実行して、インストールされているVault CLIを確認する準備をします。

ローカルデモサーバーを起動します

チュートリアルを進める間は、このプロセスをターミナルウィンドウで実行してください。ループバックアドレスにバインドして、自分のコンピュータからのみアクセスできるようにします。

vault server -dev -dev-listen-address=127.0.0.1:8200
Vault開発サーバーは、インメモリストレージを使用して127.0.0.1:8200にバインドされています。

Vault は、この開発サーバーを自動的に初期化してアンシールします。起動時の出力にはルートトークンが含まれています。UI にサインインするには、このトークンが必要です。このトークンには広範な管理者権限が付与されているため、ローカルマシンに保管し、決して共有しないでください。開発モードでは、安全でないデフォルト設定とインメモリストレージが使用されます。HashiCorp は、本番環境ではなく実験用であることを明示的に述べています。UI は で利用できますhttp://127.0.0.1:8200/ui。デモではループバックでプレーン HTTP を使用しているため、このポートをネットワークに公開しないでください。

再現可能な例として、 という名前の別の KV v2 マウントを作成しますlinux-kv。2 番目のターミナルで、サーバー アドレスを設定し、このデモがアクティブな間にマウントを一度有効にします。

export VAULT_ADDR='http://127.0.0.1:8200'
vault secrets enable -path=linux-kv kv-v2

これにより、サンプル設定によって異なる可能性のあるデフォルトのマウント名に依存することを回避できます。KV v2 マウントバージョンシークレット書き込み。Vault のKV v2 設定ドキュメントでは、マウントコマンドと UI ワークフローについて説明しています。

トークンフィールドとサインインボタンを備えた、127.0.0.1:8200/ui の Vault ローカルサインインページ。

VaultのWeb UIでテスト用の秘密情報を保存します。

  1. http://127.0.0.1:8200/uiブラウザで開きます。サーバーターミナルに表示されているルートトークンを入力してサインインしてください。開発モードでは、Vault UI はデフォルトで有効になっています。公式の UI ドキュメントを参照してください。
  2. 「シークレット」を選択し、linux-kv/マウントを開いて、シークレットを作成するオプションを選択します。エンジンページで、このマウントがキー/バリューバージョン2として識別されるはずです。
Vault シークレット エンジンのページで、バージョン 2 の linux-kv/ キー/バリュー マウントが表示されます。
  1. シークレットパスには、 と入力しますlinux-demo。キー/値フィールドに、api_keyキーとして 、test-value値として と入力します。保存をクリックします。これらはサンプル文字列であり、認証情報ではありません。
Vault linux-kv/ に、パス linux-demo、キー api_key、サンプル値 test-value の秘密鍵フォームを作成します。

マウントとパスを組み合わせることで、このレコードをとして識別しますlinux-kv/linux-demo。中立的なパス名とキー名を使用してください。名前はリストやメタデータに表示される可能性があるため、パスワードやその他の機密情報をこれらの名前に含めないでください。通常の再利用可能なキー/値レコードには、KV を使用してください。Vault のCubbyhole エンジンは個々のトークンにスコープされており、そのトークンの有効期限が切れると破棄されます。

CLIを使用してシークレットを書き込み、取得する

開発サーバーはローカルのVault CLIを自動的に認証します。別のターミナルで必要に応じてアドレスを設定し、以下の明示的なマウント構文を使用してください。

export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put -mount=linux-kv linux-demo api_key=test-value
vault kv get -mount=linux-kv linux-demo
Ubuntuターミナルで-mount=linux-kv構文を使用して、サンプルKV v2シークレットを書き込み、取得します。

このgetコマンドは値を出力するため、例ではプレースホルダーのみを使用しています。KV v2 はput新しいバージョンを書き込み、シークレットの現在のデータを置き換えます。保持したいフィールドはすべて含めてください。実際の認証情報をシェルコマンドに直接記述することは避けてください。シェルの履歴に残ったり、ローカルプロセスの検査で確認できてしまう可能性があります。実際のユーザーやアプリケーションには、root 以外の ID と、範囲を限定した ACL ポリシーを使用してください。

デモを停止し、Vaultを実際のデータ用に準備します。

サーバーを実行しているターミナルに戻り、Ctrl+Cを押してください。デモが停止し、メモリ内の秘密情報とトークンが失われます。再度起動すると新しいインスタンスが作成され、以前の記録は復元されません。

Ctrl+Cを押した後のUbuntuターミナルに、Vault開発サーバーが停止し、一時データに関する警告が表示されます。

機密情報を保護するには、開発用ではないVaultサーバーに耐久性のあるストレージバックエンドを設定してください。HashiCorpは、多くのセルフマネージド環境において統合ストレージを推奨しています。Raftのドキュメントでは、その永続性およびバックアップ/リストア機能について説明しています。ファイルシステムバックエンドも、耐久性のあるシングルサーバー環境で使用できるサポート対象のオプションですが、高可用性は提供されません。

実際の運用環境では、クライアント接続にTLS、本番環境認証、最小権限ポリシー、保護された初期化およびアンシール処理、ファイルシステムへのアクセス制限、およびテスト済みのバックアップが必要です。Vaultは保存されたデータを暗号化しますが、サーバー、トークン、およびバックアップ自体も保護する必要があります。依存する認証情報を保存する前に、HashiCorpの開発モードに関する警告と本番環境への導入に関するガイダンスに従ってください。

コメントを残す

LinuxデスクトップでQRコードをスキャンする方法

LinuxデスクトップでQRコードをスキャンする方法

CoBangを使えば、Webカメラまたは画像ファイルでLinux上でQRコードをスキャンできます。インストールオプション、セットアップ手順、Flatpakカメラへのアクセスに関する修正方法については、こちらをご覧ください。

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使用してLinux上でウェブカメラの設定を変更しましょう。露出、色、フリッカー低減などのサポートされているコントロールを調整し、互換性のあるビデオモードを確認できます。

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールするには、JetBrains Toolboxを使用するか、スタンドアロンのtar.gzアーカイブを使用するか、SnapおよびArch AURオプションを選択してください。Javaは既にバンドルされています。

LinuxにCisco Packet Tracerをインストールする方法

LinuxにCisco Packet Tracerをインストールする方法

Cisco Packet Tracer 9.0.1 を Ubuntu 64 ビット版にダウンロードし、APT を使用して DEB パッケージをインストールし、ターミナルでライセンスに同意してサインインすると、ラボを開始できます。

LinuxでCD-ROMをISOイメージとしてバックアップする方法

LinuxでCD-ROMをISOイメージとしてバックアップする方法

Linux上でGNOME Disksまたはddコマンドを使用してCD-ROM ISOイメージを作成します。光学ドライブを識別し、コピーを監視し、イメージを検証し、破損したディスクやオーディオディスクに別のツールが必要な場合を把握できます。

XFCE 4でデュアルパネルを設定する方法

XFCE 4でデュアルパネルを設定する方法

各ディスプレイごとに個別のXFCE 4パネルを作成し、2番目のパネルを右側の出力に割り当て、位置とサイズを調整し、必要なランチャーとステータス項目を追加します。

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って写真の背景を削除する方法:被写体をトレースし、選択した背景を削除し、透明度を保持して、再利用可能なPNG形式でエクスポートします。

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearは公式サイトから無料でダウンロードできます。Windows、macOS、Linuxの各パッケージを比較し、データファイルをインストールして、最初のフライトを開始しましょう。

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSamplerはMP3クリップをキーボードのキーにマッピングし、音声をループ再生できます。この旧型フリーウェアの機能、旧機能が失われた箇所、ダウンロード前に確認すべき点について解説します。

Googleタスクのデスクトップアプリケーション:パソコンでの使い方

Googleタスクのデスクトップアプリケーション:パソコンでの使い方

Googleタスクをブラウザで開き、Chromeショートカットやアプリスタイルの起動機能を追加し、カレンダーとGmailを通じて期日が過ぎたタスクを管理できます。