🧰 Prerequisites
A self-hosted Vault (community or enterprise) or an OpenBao instance is needed to set up the GatePlane Plugins. Install options are available in each respective documentation (see for Vault/OpenBao) for host and containerized deployments, both for single node and high-available setups.
Additionally, a plugin directory needs to be set under Vault/OpenBao configuration’s plugin_directory directive (see for: Vault/OpenBao).
🚀 How to Install
Downloading and Verifying the Plugins
To register a plugin, it needs to be compiled and located in the Vault/OpenBao plugin directory.
The latest binaries can be downloaded from the Github Releases Page. As SHA256 checksums are needed by Vault/OpenBao to register plugins, the checksums.txt file can also be downloaded for quick reference. Additionally, the plugin version SemVer should be noted, as always provided in the Release description (e.g: v0.1.0-base0.1.0).
Finally, the builds can be verified using the slsa-verifier project’s verify-artifact command.
Registering to Plugin Catalog
Using CLI tools
As Vault/OpenBao documentation points out (see for Vault/OpenBao), a vault register command should be issued to enable the plugins, before they can be used.
vaultandbaoCLI tools
vaultwill be used in the examples as the CLI tool that interacts with Vault/OpenBao deployments, which is interchangeable withbao.If using OpenBao, an alias can be set to use copy-paste from this page, like:
alias vault='bao'
Registering the gateplane-policy-gate plugin.
vault plugin register -sha256=<SHA256 found in the 'checksums.txt'> \
-version="<SemVer found in the Github Release>" \
auth \ # All GatePlane plugins are of type "auth"
gateplane-policy-gateUsing GatePlane Terraform modules
GatePlane provides helper Terraform modules, that can be used in Infrastructure-as-Code environments.
This helps keeping version handling at check, while also avoiding manual tinkering with high privileged tokens (like ones allowing plugin registration).
In this case, the GatePlane Setup Terraform module can be used.
module "gateplane_setup" {
source = "github.com/gateplane-io/terraform-gateplane-setup?ref=0.2.0"
policy_gate_plugin = {
filename = "gateplane-policy-gate" // The name of the binary for Policy Gate
version = "v0.1.0-base0.1.0" // The version provided in Github Release Page
sha256 = "01ba4..." // The SHA256 checksum found in the 'checksums.txt'
}
okta_group_gate_plugin = {
filename = "gateplane-okta-group-gate" // The name of the binary for Okta Group Gate
version = "v0.1.0-base0.1.0" // The version provided in Github Release Page
sha256 = "4355a..." // The SHA256 checksum found in the 'checksums.txt'
}
plugin_directory = "/etc/vault/plugins" // The value provided in the 'plugin_directory' configuration key
}Verifying that the plugin is loaded
To find out whether the plugin has been registered, the Plugin Catalog can be listed as below:
$ vault plugin list | grep gateplane
gateplane-okta-group-gate auth v0.1.0-base0.1.0
gateplane-policy-gate auth v0.1.0-base0.1.0Hint
If using the Terraform module, failure to register the plugin will result in a failed run.