旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。
Azure Key Vault
Kong Gatewayの実装の現在のバージョンでは、2つの方法でAzure Key Vaultsの構成をサポートしています。
- 環境変数
- マネージドID認証
Kong Gateway は
Secrets
Azure Vault タイプのみをサポートします。Keys
Vault およびCertificates
Vault タイプはサポートされていません。
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">} はその一例です。 |