旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。
Azure Key Vault
Kong Gatewayの実装の現在のバージョンでは、2つの方法でAzure Key Vaultsの構成をサポートしています。
- 環境変数
 - マネージドID認証
 
Kong Gateway は
SecretsAzure Vault タイプのみをサポートします。KeysVault およびCertificatesVault タイプはサポートされていません。
Azure Key Vaultの構成
Kong Gateway はキーを使用して自動的にAzure Key Vault APIを認証し、アクセス権をグラントします。
次の値を指定する必要があります。
- Azure ActiveDirectory テナント ID
 - AzureクライアントID
 vault_URI- Azureクライアントシークレット:この値は環境変数としてのみ構成できます。
 
Kong Gateway を起動する前に、これらの値を環境変数で設定できます.Instance Managed Identity Tokenを使用している場合は、環境変数を設定する必要はありません。
export KONG_VAULT_AZURE_VAULT_URI=https://my-vault.vault.azure.com
export KONG_VAULT_AZURE_TENANT_ID=tenant_id
export KONG_VAULT_AZURE_CLIENT_ID=client_id
export AZURE_CLIENT_SECRET=client_secret
Azure Vault 経由の Secrets 管理は Azure Instance (VM) および Azure Function App でサポートされています。 Azure Container App では現在サポートされていません
例:
secret-nameという名前でシークレットを使用するには、1 つ以上のプロパティを持つ JSON オブジェクトを Azure Key Vault に作成します。
{
  "foo": "bar",
  "snip": "snap"
}
Azure AD テナント ID、クライアント ID、vault_uri、およびクライアントシークレットを指定する必要があります。
Kong Gateway を起動する前に、環境変数を使用してこれらの値を構成できます。
export KONG_VAULT_AZURE_VAULT_URI=https://my-vault.vault.azure.com
export KONG_VAULT_AZURE_TENANT_ID=tenant_id
export KONG_VAULT_AZURE_CLIENT_ID=client_id
export AZURE_CLIENT_SECRET=client_secret
{vault://azure/secret-name/foo}
{vault://azure/secret-name/snip}
あるいは、vaultsエンティティを介してvaultを構成することもできます。
vaultsエンティティによる構成
データベースが初期化されると、vaultエンティティを作成し、 プロバイダーと必要な Azure Key Vault 情報をカプセル化します。
Vaultエンティティを配置すると、それを通じてAzureシークレットを参照できます。
{vault://azure-key-vault/secret-name/foo}
{vault://azure-key-vault/secret-name/snip}
Vaultエンティティの設定オプション
サポートツールのいずれかから、次の構成オプションを使用して Vault エンティティを構成します。
- Kong Manager
 - Konnect
 - Admin API
 - 宣言型構成
 
Kong GatewayにAzure Key Vaultのオプションを構成します。
| パラメータ | フィールド名 | 説明 | 
|---|---|---|
vaults.config.vault_uri | 
      Vault URI | Vaultに到達できるURI。この値は、 Azure Key Vaultダッシュボード のVault URIエントリの下にあります。 | 
vaults.config.client_id | 
      クライアント ID | 登録済みアプリケーションのクライアントID。Azure Dashboardにアクセスし、 アプリ登録 を選択してクライアントIDを確認します。 | 
vaults.config.tenant_id | 
      テナントID | 
DirectoryId と TenantIdはどちらも、ActiveDirectory テナントを表す GUID に相当します。つまり、” テナント ID “ は “ ディレクトリ ID “ です。コンテキストに応じて、両方の用語が Microsoft のドキュメントおよび製品で使用される場合があります。 | 
    
vaults.config.location | 
      Location | 各 Azure 地域には 1 つ以上のリージョンが含まれ、個別のデータ所在地とコンプライアンスの要件を満たしています。 | 
vaults.config.type | 
      タイプ | Azure Key Vaultを使用すると、Microsoft Azureアプリケーションおよびユーザーは、キー、シークレット、証明書など、さまざまな種類のシークレットデータまたはキーデータを保存および使用できるようになります。Kongは現在、secretsのみをサポートしています。 | 
    
vaults.config.ttl | 
      TTL | キャッシュされた場合の、vaultからのシークレットのTime-to-live(秒)。特別な値0は「ローテーションなし」を意味し、デフォルトです。ゼロ以外の値を使用する場合は、少なくとも1分単位にすることをお勧めします。 | 
vaults.config.neg_ttl | 
      ネガティブTTL | Vaultのミス(シークレットが存在しない)のTime to Live(秒単位)。ネガティブキャッシュされたシークレットは、neg_ttlに達するまで有効です。その後、Kongはシークレットのリフレッシュを試行します。neg_ttlのデフォルト値は0で、ネガティブキャッシュは発生しないことを意味します。 | 
    
vaults.config.resurrect_ttl | 
      Resurrect TTL | シークレットが期限切れになった(config.ttlが終了した)後もシークレットが使用され続ける時間(秒単位)。これは、Vaultにアクセスできなくなった場合や、シークレットがVaultから削除されてすぐに置き換えられない場合に役立ちます。どちらの場合も、ゲートウェイはresurrect_ttl秒間シークレットの更新を試行し続けます。その後、更新は停止します。Vaultに予期しない問題が発生した場合にシームレスな移行を確実に行うには、この構成オプションに高い値を設定します。resurrect_ttlのデフォルト値である1^e8秒は、約3年に相当します。 | 
    
一般的なオプション:
| パラメータ | フィールド名 | 説明 | 
|---|---|---|
vaults.descriptionオプション  | 
      説明 | Vault の説明(オプション)。 | 
vaults.name | 
      名前 | Vaultのタイプ。env、 gcp、 azure、 aws、またはhcvのいずれかを受け入れます。Azure Key Vaults にazureを設定します。 | 
    
vaults.prefix | 
      Prefix | 参照プレフィックス。このVaultに保存されているシークレットにアクセスするには、このプレフィックスが必要です。{vault://gcp-sm-vault/<some-secret id="sl-md0000000">}はその一例です。 |