HashiCorp Vault を使用してエージェントキーを管理する
- English
- 日本語
HashiCorp Vault 用の Signal Sciences プラグインを使用すると、Vault を使用して Next-Gen WAF エージェントのキーを管理できます。Vault は、ID ベースのシークレットおよび暗号化管理システムです。
具体的には、このプラグインでは次のことが可能になります。
Vault が、サイト (ワークスペースとも呼ばれる) のエージェントアクセスキーとエージェントシークレットキーを保存する。
Vault エージェントが必要に応じて Vault からキーを取得し、そのキーを Next-Gen WAF エージェントに渡す。
Vault がキーをローテーションまたは交換する。Vault がキーを交換すると、Vault エージェントは関連する Next-Gen WAF エージェントの設定ファイルを更新し、Next-Gen WAF エージェントを再起動します。
認証済みアプリケーション、サービス、およびマシンが Vault に保存されたキーを読み取る。
制約と考慮事項
Vault 内のキーを管理するプラグインを設定する前に、以下の点に留意してください。
HashiCorp Vault 用の Signal Sciences プラグインを使用するには、Vault がすでにインストールされ、外部プラグインを読み込むように設定されている必要があります。
キーのローテーションプロセスにより、Next-Gen WAF エージェントが自動的に再起動します。キーのローテーション中にエージェントに短時間のダウンタイムが生じるため、メンテナンス期間中にキーをローテーションすることをお勧めします。
Signal Sciences プラグインは、x86 CPU アーキテクチャの Linux でのみサポートされています。
プラグインの設定
systemd を使用するシステムで初めてプラグインを設定するには、次の手順に従ってください。
curl コマンドラインツールを使用して、プラグインのバイナリを外部プラグインディレクトリにコピーします。
$ curl -O https://dl.security.fastly.com/vault-plugin-sigsci/latest/vault-plugin-sigsci.tar.gz$ tar xzvf vault-plugin-sigsci.tar.gz$ vault plugin register -sha256=$(sha256sum vault-plugin-sigsci|cut -c-64) secret vault-plugin-sigsciコマンドラインを使用してプラグインを有効にします。
$ vault secrets enable -path=sigsci vault-plugin-sigsciVault はプラグインをパス
/sigsciにマウントします。プラグイン用のユーザーを作成します。ユーザーにユーザーロールを割り当てます。プラグインユーザーに指定したメールアドレスに招待メールが送信されます。
プラグインユーザーのメールアカウントから招待メールを開き、Accept invite をクリックします。アカウント作成フォームが表示されます。
アカウント作成フォームに必要な情報を入力します。
Email address フィールドはそのままにしておきます。
Name フィールドに
vault-userと入力します。Password フィールドにアカウントのパスワードを入力します。
Confirm password フィールドにパスワードをもう一度入力します。
Create account をクリックします。
プラグインユーザー用の API アクセストークンを作成します。エージェントキーの読み取りと管理には、Signal Sciences クラウド API 認証情報が必要です。
コマンドラインを使用して、API アクセストークンを
token.txtファイルにコピーします。$ vault write -f /sigsci/role/vault-user corp=<corp-id> email=<email-id> token=@token.txt<corp-id>を貴社 (アカウント) の ID に、<email-id>をプラグインユーザーのメールアドレスに置き換えます。コマンドラインを使用して、単一のサイト (ワークスペース) またはすべてのサイト (ワークスペース) のエージェントキーを Vault にコピーします。
$ vault write -f /sigsci/creds/vault-user/sites/<site-name><site-name>をサイト (ワークスペース) の名前に置き換えます。または
$ vault write -f /sigsci/creds/vault-user/sites/以下のテンプレートを使用して、Vault エージェントをインストールして設定します。
template {source = "/etc/signalsciences/agent.ctmpl"destination = "/etc/signalsciences/agent.conf"}Vault エージェントは、エージェントキーがローテーションされたときに、Next-Gen WAF エージェント設定テンプレートのレンダリングを自動化します。
設定テンプレート
/etc/signalsciences/agent.ctmplの例 :{{ with secret "sigsci/creds/vault-user/sites/<site-name>" }}accesskeyid={{ .Data.accessKey }}secretkey={{ .Data.secretKey }}{{ end }}コマンドラインを使用して、systemd service を作成し、エージェントを再起動します。
$ sudo tee -a /etc/systemd/system/sigsci-agent-restart.service <<END[Unit]Description="signalsciences agent restarter"[Service]Type=OneShotExecStart=/usr/bin/systemctl restart sigsci-agent.service[Install]WantedBy=multi-user.targetENDコマンドラインを使用して、設定ファイルウォッチャーを作成します。
$ sudo tee -a /etc/systemd/system/sigsci-agent-restart.path <<END[Path]PathChanged=/etc/signalsciences/agent.conf[Install]WantedBy=multi-user.targetENDコマンドラインを使用して、設定ファイルウォッチャーを起動して有効にします。
$ systemctl enable --now sigsci-agent-restart.service
エージェントキーのローテーション
サイト (ワークスペース) のエージェントキーをローテーションするには、Vault 内のキーを置き換え、Next-Gen WAF エージェントを再起動してから、Vault 内の非プライマリキーを削除します。
コマンドラインを使用して、Vault 内のエージェントキーをローテーションします。
$ vault write -f /sigsci/rotate/sites/<site-name><site-name>を該当するサイト (ワークスペース) の名前に置き換えます。コマンドラインを使用して、Vault 内の非プライマリキーを削除します。
$ vault delete /sigsci/rotate/sites/<site-name><site-name>を該当するサイト (ワークスペース) の名前に置き換えます。
プラグインのロールとキーの管理
プラグインが設定されると、コマンドラインを使用して次のアクションを実行できます。
| Action | コマンド |
| ロールを一覧表示する | vault read /sigsci/role/ |
| ロール詳細を読み込む | vault read /sigsci/role/vault-user |
| ロールを削除する | vault delete /sigsci/role/vault-user |
| 1つのサイト (ワークスペース) のキーを Vault にコピーする | vault write -f /sigsci/creds/vault-user/sites/<site-name> |
| すべてのサイト (ワークスペース) のキーを Vault にコピーする | vault write -f /sigsci/creds/vault-user/sites/ |
| サイト (ワークスペース) のキーをローテーションする | vault write -f /sigsci/rotate/sites/<site-name> |
| すべてのサイト (ワークスペース) のキーを一覧表示する | vault read /sigsci/creds/vault-user/sites/ |
| 1つのサイト (ワークスペース) のキーを読み込む | vault read /sigsci/creds/vault-user/sites/<site-name> |
| サイト (ワークスペース) の非プライマリキーを Vault から削除する | vault delete /sigsci/rotate/sites/<site-name> |
| サイト (ワークスペース) のキーを Vault から削除する | vault delete /sigsci/creds/vault-user/sites/<site-name> |