API7 Enterprise v3.2.16:統合されたSecret Providers
October 10, 2024
API7 Enterpriseでは、SSL証明書や秘密鍵、コンシューマ認証情報のユーザー名とパスワード、特定のプラグインが外部システムに接続するために必要な情報など、大量の機密情報を保存する場合があります。
API7 Enterprise v3.2.16では、「Secret Providers」の概念が導入されました。これにより、HashiCorp Vault、AWS Secrets Manager、GCP Secret Managerなどのサードパーティのシークレットマネージャーと統合するためのシークレットプロバイダーリソースを簡単に追加できるようになりました。これにより、外部に保存された機密情報をAPI7で変数として参照することが可能になります。参照形式は以下の通りです:
$secret://$manager/$id/$secret_name/$key
シークレットプロバイダーの使用方法
シークレットプロバイダーの追加
Gateway Groupメニューに新しい「Secret Provider」オプションが追加されました。ボタンをクリックしてシークレットプロバイダーリストページにアクセスします。その後、ページの右上にある「Add Secret Provider」ボタンをクリックします。
ポップアップウィンドウで、シークレットプロバイダーの基本情報を入力し、シークレット管理サービスの種類(例:HashiCorp Vault)を選択します。その後、HashiCorp Vaultの設定に必要なサービスアクセスアドレスと認証トークンを提供します。
シークレットプロバイダーの表示
作成後、シークレットプロバイダーの詳細ページで具体的な設定内容とシークレット変数の例を確認できます。
シークレット変数の形式は次の通りです:secret://manager/$id/$secret_name/$key
。各要素の意味は以下の通りです:
- $secret: 固定のプレフィックス、変更不要
- $manager: シークレット管理サービス
- $id: シークレットプロバイダーリソースのID
- $secret_name: シークレット管理サービス内のシークレット名
- $key: シークレット管理サービス内のシークレットに対応するキー
例えば、シークレットプロバイダーIDがmy-provider
で、シークレット管理サービスの種類がHashiCorp Vaultの場合、my-secret
という名前のシークレットとpassword
というキーを参照する場合、対応するシークレット変数は次のようになります:
$secret://vault/my-hashicorp-vault/my-secret/password
現在、HashiCorp Vaultがサポートされているシークレット管理サービスです。AWS Secrets ManagerとGCP Secret Managerも近日中に利用可能になる予定です。
シークレット変数の参照
シークレットプロバイダーを作成した後、API7 Enterprise内のさまざまなリソースで外部に保存された機密情報を変数として参照できます。例えば、コンシューマのBasic Authentication認証情報を追加する際に、パスワードなどの機密情報を外部のシークレット管理サービスに保存し、API7 Enterpriseで参照することで、セキュリティを強化できます。
同様に、フォームページ以外のプラグインエディタなどでも、シークレット変数の値を文字列として直接入力し、シークレットを参照できるフィールドに使用できます。
参照関係の表示
my-provider
からの変数をコンシューマ認証情報で参照すると、シークレットプロバイダーの参照リストでこの参照関係を確認できます。他の参照リソースもこのリストに表示され、シークレットプロバイダーの使用状況を簡単に追跡できます。
シークレットプロバイダーの編集または削除
シークレットプロバイダーを編集または削除する際、システムは参照関係をチェックし、リソース内で無効な変数が参照されないようにして、設定エラーを防ぎます。
まとめ
HashiCorp Vaultなどの外部シークレット管理サービスと統合することで、API7 Enterpriseは外部に保存された機密情報をさまざまなリソースで簡単に参照できるようになりました。これにより、手動での機密情報管理に伴うリスクとコストを削減できます。今後、さらに多くの種類のシークレット管理サービスをサポートし、ユーザーのニーズに応え、機密情報の管理における柔軟性とセキュリティを確保する予定です。