From a8b07261bf6c7638d6d2d64648c69f9a4ba24358 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 23 Oct 2025 19:36:55 -0400 Subject: [PATCH] update kmip docs --- docs/documentation/platform/kms/kmip.mdx | 269 ++++++++++++++++------- docs/images/kmip-diagram.png | Bin 0 -> 68839 bytes 2 files changed, 195 insertions(+), 74 deletions(-) create mode 100644 docs/images/kmip-diagram.png diff --git a/docs/documentation/platform/kms/kmip.mdx b/docs/documentation/platform/kms/kmip.mdx index 1e025d51a..d82269447 100644 --- a/docs/documentation/platform/kms/kmip.mdx +++ b/docs/documentation/platform/kms/kmip.mdx @@ -8,135 +8,256 @@ description: "Learn more about integrating with Infisical KMS using KMIP (Key Ma sales@infisical.com if you have any questions. -## Overview +Infisical KMS provides Key Management Interoperability Protocol (KMIP) support for integration with KMIP-compatible clients. This allows for enhanced key management across various applications that support the KMIP 1.4 protocol. -Infisical KMS provides **Key Management Interoperability Protocol (KMIP)** support, enabling seamless integration with KMIP-compatible clients. This allows for enhanced key management across various applications that support the **KMIP 1.4 protocol**. +## How KMIP Works with Infisical -## Supported Operations +At a high level, the KMIP integration follows this architecture: -The Infisical KMIP server supports the following operations for **symmetric keys**: -- **Create** - Generate symmetric keys. -- **Register** - Register externally created keys. -- **Locate** - Find keys using attributes. -- **Get** - Retrieve keys securely. -- **Activate** - Enable keys for usage. -- **Revoke** - Revoke existing keys. -- **Destroy** - Permanently remove keys. -- **Get Attributes** - Retrieve metadata associated with keys. -- **Query** - Query server capabilities and supported operations. +![KMIP Architecture Diagram](/images/kmip-diagram.png) -## Benefits of KMIP Integration +At a high level, the KMIP integration works as follows: -Integrating Infisical KMS with KMIP-compatible clients provides the following benefits: +1. KMIP clients (your applications or tools) communicate with the KMIP server +2. The KMIP server acts as a proxy and forwards requests to Infisical KMS +3. The KMIP server authenticates to Infisical using a machine identity -- **Standardized Key Management**: Allows interoperability with security and cryptographic applications that support KMIP. -- **Enterprise-Grade Security**: Utilizes Infisical’s encryption mechanisms to securely store and manage keys. -- **Centralized Key Management**: Enables a unified approach for managing cryptographic keys across multiple environments. +The KMIP server itself is deployed using the Infisical CLI (`infisical kmip start` command) and serves as an intermediary between your KMIP clients and Infisical's key management system. -## Compatibility +### Supported Operations -Infisical KMIP supports **KMIP versions 1.0 to 1.4**, ensuring compatibility with a wide range of clients and security tools. +The Infisical KMIP server supports the following operations for symmetric keys: -## Secure Communication & Authorization +- **Create** - Generate symmetric keys +- **Register** - Register externally created keys +- **Locate** - Find keys using attributes +- **Get** - Retrieve keys securely +- **Activate** - Enable keys for usage +- **Revoke** - Revoke existing keys +- **Destroy** - Permanently remove keys +- **Get Attributes** - Retrieve metadata associated with keys +- **Query** - Query server capabilities and supported operations -KMIP client-server communication is secured using **mutual TLS (mTLS)**, ensuring strong identity verification and encrypted data exchange via **PKI certificates**. Each KMIP entity must possess valid certificates signed by a trusted Root CA to establish trust. -For strong isolation, each Infisical organization has its own KMIP PKI (Public Key Infrastructure), ensuring that cryptographic operations and certificate authorities remain separate across organizations. +### Compatibility -Infisical KMS enforces a **two-layer authorization model** for KMIP operations: +Infisical KMIP supports KMIP versions 1.0 to 1.4, ensuring compatibility with a wide range of clients and security tools. -1. **KMIP Server Authorization** – The KMIP server, acting as a proxy, must have the `proxy KMIP` permission to forward client requests to Infisical KMS. This is done using a **machine identity** attached to the KMIP server. -2. **KMIP Client Authorization** – Clients must have the necessary KMIP-level permissions to perform specific key management operations. +### Network Requirements -By combining **mTLS for secure communication** and **machine identity-based proxying**, Infisical KMS ensures **strong authentication, controlled access, and centralized key management** for KMIP operations. +Ensure the following network connectivity is in place: -## Setup Instructions +- **KMIP Client → KMIP Server**: KMIP clients must be able to reach the KMIP server on port 5696 (or your configured port). Ensure firewalls allow this traffic and DNS resolution works if using hostnames. -### Setup KMIP for your organization +- **KMIP Server → Infisical Platform**: The KMIP server needs outbound HTTP access to Infisical. For self-hosted instances, ensure connectivity to your custom domain. + +## Configure and Deploy the KMIP Server + +Follow these steps in order to set up KMIP integration with Infisical: - - From there, press Setup KMIP. + + First, you need to enable KMIP for your entire Infisical organization and set up its PKI infrastructure. + + Navigate to **Organization Settings > KMIP** and click **Setup KMIP**. + ![KMIP org navigate](/images/platform/kms/kmip/kmip-org-setup-navigation.png) - - - In the modal, select the desired key algorithm to use for the KMIP PKI of your organization. Press continue. + + In the modal, select the desired key algorithm to use for the KMIP PKI of your organization, then click **Continue**. + ![KMIP org PKI setup](/images/platform/kms/kmip/kmip-org-setup-modal.png) - This generates the KMIP PKI for your organization. After this, you can proceed to setting up your KMIP server. - + This generates the KMIP PKI for your organization, creating the cryptographic foundation that will be used for secure KMIP communications. + + You do not need to manage these certificates yourself; Infisical handles the PKI infrastructure for you. + - -### Deploying and Configuring the KMIP Server + + The KMIP server needs a machine identity to authenticate with Infisical and proxy requests on behalf of clients. -Follow these steps to configure and deploy a KMIP server. + Configure a [machine identity](/documentation/platform/identities/machine-identities#machine-identities) by heading to your organization's **Access Control** and switching over to the **identities** tab. + From there you can click **Create Identity**. - - - Configure a [machine identity](https://infisical.com/docs/documentation/platform/identities/machine-identities#machine-identities) for the KMIP server to use. + This guide assumes you'll be using the [Universal Auth](/documentation/platform/identities/universal-auth) method for the machine identity but you can choose any supported authentication method. + ![KMIP create machine identity](/images/platform/kms/kmip/kmip-create-mi.png) + This machine identity will be used by the KMIP server to authenticate and forward client requests to Infisical KMS. + + + + The machine identity needs permission to proxy KMIP requests. + Create a custom organization role and give it the **Proxy KMIP** permission. + ![KMIP create custom role](/images/platform/kms/kmip/kmip-create-custom-role.png) ![KMIP assign proxy to role](/images/platform/kms/kmip/kmip-assign-custom-role-proxy.png) - Assign the machine identity to the custom organization role. This allows the machine identity to serve KMIP client requests and forward them from your KMIP server to Infisical. - ![KMIP assign role to machine identity](/images/platform/kms/kmip/kmip-assign-mi-to-role.png) - + This permission allows the KMIP server to act as an intermediary between KMIP clients and Infisical. - - To deploy the KMIP server, use the Infisical CLI’s `kmip start` command. - Before proceeding, make sure you have the [Infisical CLI installed](https://infisical.com/docs/cli/overview). + + Now connect the machine identity to the role you just created. - Once installed, launch the KMIP server with the following command: + Assign the machine identity to the custom organization role. + + ![KMIP assign role to machine identity](/images/platform/kms/kmip/kmip-assign-mi-to-role.png) + + This grants the machine identity the ability to serve KMIP client requests and forward them from your KMIP server to Infisical. + + + + Now you're ready to deploy the KMIP server. + You can run the KMIP server on any infrastructure that can reach the Infisical platform, such as a VM or container. + + Once you have your infrastructure ready, you'll need to install the Infisical CLI on the server where you want to run the KMIP server. + + To install the latest Infisical CLI visit [Infisical CLI instructions](https://infisical.com/docs/cli/overview). + If you need to install specific versions of the CLI, you can find them on the [Infisical CLI GitHub Releases](https://github.com/Infisical/cli/releases). + + Then, launch the KMIP server with the following command: ```bash infisical kmip start \ - --identity-client-id= \ # This can be set by defining the INFISICAL_UNIVERSAL_AUTH_CLIENT_ID ENV variable - --identity-client-secret= \ # This can be set by defining the INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET ENV variable - --domain=https://app.infisical.com \ + --identity-client-id=example-client-id \ + --identity-client-secret=example-client-secret \ + --domain=https://my-infisical-instance.com \ + --listen-address="0.0.0.0:5696" \ --hostnames-or-ips="my-kmip-server.com" ``` - The following flags are available for the `infisical kmip start` command:: - - **listen-address** (default: localhost:5696): The address the KMIP server listens on. - - **identity-auth-method** (default: universal-auth): The authentication method for the machine identity. - - **identity-client-id**: The client ID of the machine identity. This can be set by defining the `INFISICAL_UNIVERSAL_AUTH_CLIENT_ID` ENV variable. - - **identity-client-secret**: The client secret of the machine identity. This can be set by defining the `INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET` ENV variable. - - **server-name** (default: "kmip-server"): The name of the KMIP server. - - **certificate-ttl** (default: "1y"): The duration for which the server certificate is valid. - - **hostnames-or-ips:** A comma-separated list of hostnames or IPs the KMIP server will use (required). + **Available flags:** + - **listen-address** (default: localhost:5696): The address the KMIP server listens on. In most cases you'll want to listen on all interfaces (0.0.0.0:5696) + - **identity-auth-method** (default: universal-auth): The authentication method for the machine identity + - **identity-client-id**: The client ID of the machine identity (can be set via `INFISICAL_UNIVERSAL_AUTH_CLIENT_ID` env var) + - **identity-client-secret**: The client secret of the machine identity (can be set via `INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET` env var) + - **server-name** (default: "kmip-server"): The name of the KMIP server + - **certificate-ttl** (default: "1y"): The duration for which the server certificate is valid + - **hostnames-or-ips**: The IP address or the hostname of the server where you have deployed the KMIP server. + Once started, your KMIP server is now running and ready to accept client connections. It will authenticate to Infisical using the machine identity and proxy all KMIP operations. - -### Add and Configure KMIP Clients + + Now that the KMIP server is running, you need to register KMIP clients that will connect to it. - - - From there, press Add KMIP Client + Navigate to the desired KMS project if you already have one or create a new project of type KMS, then select **KMIP** once inside the project, and click **Add KMIP Client**. + ![KMIP client overview](/images/platform/kms/kmip/kmip-client-overview.png) - - In the modal, provide the details of your client. The selected permissions determine what KMIP operations can be performed in your KMS project. + + + Define the client and its permissions. + + In the modal, provide the details of your client. The selected permissions determine what KMIP operations (Create, Get, Revoke, etc.) can be performed in your KMS project. + ![KMIP client modal](/images/platform/kms/kmip/kmip-client-modal.png) + + This creates a KMIP client entity in Infisical that will be authenticated via mTLS certificates. - - Once the KMIP client is created, you will have to generate a client certificate. - Press Generate Certificate. + + + Each KMIP client needs its own certificate for mTLS authentication. + + Click **Generate Certificate** for your newly created client. + ![KMIP generate client cert](/images/platform/kms/kmip/kmip-client-generate-cert.png) - Provide the desired TTL and key algorithm to use and press Generate Client Certificate. + Provide the desired TTL (time-to-live) and key algorithm, then click **Generate Client Certificate**. + ![KMIP client cert config](/images/platform/kms/kmip/kmip-client-cert-config-modal.png) - Configure your KMIP clients to use the generated client certificate, certificate chain and private key. + Download the generated client certificate, certificate chain, and private key. + ![KMIP client cert modal](/images/platform/kms/kmip/kmip-client-certificate-modal.png) + Configure your KMIP-compatible applications or tools to use these credentials when connecting to the KMIP server. The client will now authenticate via mTLS and perform authorized key management operations through the KMIP server, which proxies requests to Infisical KMS. -## Additional Resources +## Connecting your KMIP Client to Infisical -- [KMIP 1.4 Specification](http://docs.oasis-open.org/kmip/spec/v1.4/os/kmip-spec-v1.4-os.html) +After completing the setup, configure your KMIP compatible application to connect to the KMIP server. + +While exact configuration steps vary by application, you'll generally need to provide: + +1. **KMIP Server Address**: The hostname or IP and port where your KMIP server is listening (e.g., `my-kmip-server.com:5696`) + +2. **Client Certificates**: The certificate credentials generated from your Infisical KMS project: + - **Client Certificate** (`client-cert.pem`) - Identifies your KMIP client + - **Client Private Key** (`client-key.pem`) - Used for mTLS authentication + - **Certificate Chain** (`cert-chain.pem`) - Verifies the KMIP server + +### General Configuration Steps + + + Determine the address where your KMIP server is accessible. This should match one of the hostnames or IPs you specified when starting the KMIP server with the `--hostnames-or-ips` flag. + + **Example endpoints:** + - `my-kmip-server.com:5696` + - `10.0.1.50:5696` + - `kmip.example.com:5696` + + The default port is `5696`, but this can be changed using the `--listen-address` flag when starting the server. + + + + Organize the certificate materials you downloaded when generating the client certificate from the Infisical KMS project. You should have three files: + + - **client-cert.pem** - The client certificate + - **cert-chain.pem** - The certificate chain (includes intermediate and root CA certificates) + - **client-key.pem** - The private key + + Most KMIP clients require these files in PEM format, which is what Infisical provides by default. + + + + The exact configuration steps vary depending on your KMIP client application. Generally, you'll need to specify: + + **Common configuration parameters:** + - **Server hostname/IP**: Your KMIP server address (e.g., `my-kmip-server.com`) + - **Server port**: Default is `5696` + - **Client certificate**: Path to `client-cert.pem` + - **Client private key**: Path to `client-key.pem` + - **CA certificate**: Path to `cert-chain.pem` (used to verify the server) + - **Protocol version**: KMIP 1.0 through 1.4 are supported + + **Example configuration for PyKMIP:** + ```ini + [client] + host=my-kmip-server.com + port=5696 + certfile=/path/to/client-cert.pem + keyfile=/path/to/client-key.pem + ca_certs=/path/to/cert-chain.pem + ``` + + + + + Once configured, test the connection by performing a simple KMIP operation, such as: + - Querying server capabilities + - Creating a test key + - Listing available keys + + If the connection is successful, your KMIP client is now integrated with Infisical KMS and can perform key management operations according to the permissions you assigned. + + **Troubleshooting connection issues:** + - Verify network connectivity between your KMIP client and the KMIP server + - Check that certificate files are readable and in the correct format + - Ensure the KMIP server is running and accessible + - Review KMIP server logs for authentication errors + - Confirm the client certificate has not expired + + If you require further verification of your certificate details and connectivity to the KMIP server from your KMIP client, you can use the following command from your client machine: + + ```bash + openssl s_client -connect kmip-server-ip-here:5696 --cert /path/to/client-cert.pem --key /path/to/client-cert.pem --CAfile /path/to/cert-chain.pem --tls1_2 --showcerts --state --debug + ``` + + This command attempts to establish a TLS connection to the KMIP server using your client certificate and key, displaying detailed information about the handshake process. + If the connection is successful, you'll see the server's certificate chain and a message indicating that the handshake was completed. + + + diff --git a/docs/images/kmip-diagram.png b/docs/images/kmip-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..cc56607a22bd7a88cf2e588ed71bb830eee4a8c7 GIT binary patch literal 68839 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 y