You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The plugin can create a Nebula certificate authority to provide
credentials for CoCo PODs (or VMs) that want to join a Nebula encrypted
overlay network. A credential is provided only for attested CoCo PODs.
The steps below can be used to build and start trustee with support for
the 'nebula-ca' plugin. The first step builds the KBS with the
'nebula-ca' cargo feature enabled. The second step configures the
plugin as explained in the kbs/docs/config.md.
$ docker compose build --build-arg NEBULA_CA=true
$ cat >> kbs/config/docker-compose/kbs-config.toml << EOF
[[plugins]]
name = "nebula-ca"
nebula_cert_bin_path = "/usr/local/bin/nebula-cert"
work_dir = "/opt/confidential-containers/kbs/nebula-ca"
[plugins.self_signed_ca]
name = "Nebula CA for Trustee KBS"
EOF
$ docker compose up
The nebula-ca is a self signed certificate authority. When the plugin is
started, it will create the CA key and certificate based on the
configuration provided in the kbs-config.toml file, unless the
${work_dir}/ca/ca.{key,crt} already exists.
A credential can be requested via GET /kbs/v0/nebula-ca/credential.
Additional parameters can be provided via query string:
/// Required: name of the cert, usually hostname or podname
name: String,
/// Required: IPv4 address and network in CIDR notation to assign the cert
ip: String,
/// Optional: how long the cert should be valid for.
/// The default is 1 second before the signing cert expires.
/// Valid time units are seconds: "s", minutes: "m", hours: "h".
duration: Option<String>,
/// Optional: comma separated list of groups.
groups: Option<String>,
/// Optional: comma separated list of ipv4 address and network in CIDR notation.
/// Subnets this cert can serve for
subnets: Option<String>,
For example, the GET below provides two required parameters via query
string: name and IP address (CIDR notation). Other examples can be found
in the unit test cases defined in the nebula_ca.rs file.
GET /kbs/v0/nebula-ca/credential?name=podA&ip=10.9.8.2/21
Signed-off-by: Claudio Carvalho <cclaudio@linux.ibm.com>
|`name`| String | Name of the certificate authority | Yes ||`Nebula Ca for Trustee KBS`|
272
+
|`argon_iterations`| Integer | Argon2 iterations parameter used for encrypted private key passphrase | No | 1 ||
273
+
|`argon_memory`| Integer | Argon2 memory parameter (in KiB) used for encrypted private key passphrase | No | 2097152 ||
274
+
|`argon_parallelism`| Integer | Argon2 parallelism parameter used for encrypted private key passphrase | No | 4 ||
275
+
|`curve`| String | EdDSA/ECDSA Curve (25519, P256) | No |`25519`||
276
+
|`duration`| String | Amount of time the certificate should be valid for. Valid time units are: <hours>"h"<minutes>"m"<seconds>"s" | No |`8760h0m0s`||
277
+
|`groups`| String | Comma separated list of groups. This will limit which groups subordinate certs can use | No ||`server,ssh`|
278
+
|`ips`| 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 | No ||`192.168.100.10/24,192.168.100.15/24`|
279
+
|`out_qr`| String | Path to write a QR code image (png) of the certificate | No ||`/opt/confidential-containers/kbs/nebula_ca/ca_qr.crt`|
280
+
|`subnets`| 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 | No ||`192.168.86.0/24`|
0 commit comments