forked from confidential-containers/trustee
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The nebula plugin can be used to deliver credentials for nodes (confidential PODs or VMs) to join a Nebula overlay network. Within the nebula network, the communication between nodes is automatically encrypted by Nebula. A nebula credential can be requested using the kbs-client: kbs-client --url http://127.0.0.1:8080 \ get-resource \ --path 'plugin/nebula/credential?ip[ip]=10.11.12.13&ip[netbits]=21&name=pod1' at least the IPv4 address (in CIDR notation) and the name of the node must be provided in the query string. The other parameters supported can be found in the struct NebulaCredentialParams. After receiving a credential request, the nebula plugin will call the nebula-cert binary to create a key pair and sign a certificate using the Nebula CA. The generated node.crt and node.key, as well as the ca.rt are then returned to the caller. During the nebula-plugin initialization, a self signed Nebula CA can be created if 'ca_generation_policy = 1' in the nebula-config.toml, the file contains all parameters supported. Another option is to pre-install a ca.key and ca.crt, and set 'ca_generation_policy = 2'. The nebula-plugin cargo feature is set by default, however the plugin itself is not initialized by default. In order to initialize it, you need to add 'nebula' to 'manager_plugin_config.enabled_plugins' in the kbs-config.toml. Closes confidential-containers#396 Signed-off-by: Claudio Carvalho <[email protected]>
- Loading branch information
Showing
8 changed files
with
563 additions
and
3 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Required: <String> | ||
# CA certificate path | ||
crt_path = "/opt/confidential-containers/kbs/plugin/nebula/ca/ca.crt" | ||
|
||
# Required: <String> | ||
# CA key path | ||
key_path = "/opt/confidential-containers/kbs/plugin/nebula/ca/ca.key" | ||
|
||
# Required: <u32> | ||
# Certificate Authority generation policy | ||
# | ||
# 1 = Create a self signed CA only if | ||
# crt_path/key_path not found | ||
# | ||
# 2 = Never generate self signed CA as | ||
# both crt_path and key_path are pre-installed | ||
ca_generation_policy = 1 | ||
|
||
[self_signed_ca_config] | ||
|
||
# Required: <String> | ||
# Name of the certificate authority | ||
name = "Nebula CA for Trustee KBS" | ||
|
||
# Optional: <u32> | ||
# Argon2 iterations parameter used for encrypted | ||
# private key passphrase (default 1) | ||
## argon_iterations = 1 | ||
|
||
# Optional: <u32> | ||
# Argon2 memory parameter (in KiB) used for encrypted | ||
# private key passphrase (default 2097152) | ||
## argon_memory = 2097152 | ||
|
||
# Optional: <u32> | ||
# Argon2 parallelism parameter used for encrypted private | ||
# key passphrase (default 4) | ||
## argon_parallelism = 4 | ||
|
||
# Optional: <String> | ||
# EdDSA/ECDSA Curve (25519, P256) (default "25519") | ||
## curve = "25519" | ||
|
||
# Optional: <String> | ||
# Amount of time the certificate should be valid for. | ||
# Valid time units are seconds: | ||
# "s", minutes: "m", hours: "h" (default 8760h0m0s) | ||
## duration = "8760h0m0s" | ||
|
||
# Optional: <String> | ||
# Comma separated list of groups. This will limit which | ||
# groups subordinate certs can use | ||
## groups = "servers,ssh" | ||
|
||
# Optional: <String> | ||
# Comma separated list of ipv4 address and network | ||
# in CIDR notation. This will limit which ipv4 addresses and | ||
# networks subordinate certs can use for ip addresses | ||
## ips = "192.168.100.10/24" | ||
|
||
# Optional: <String> | ||
# Path to write a QR code image (png) of the certificate | ||
## out_qr = "/opt/confidential-containers/kbs/plugin/nebula/ca/ca.png" | ||
|
||
# Optional: <String> | ||
# Comma separated list of ipv4 address and network | ||
# in CIDR notation. This will limit which ipv4 addresses and | ||
# networks subordinate certs can use in subnets | ||
## subnets = "192.168.86.0/24" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.