-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add nebula_ca plugin #539
base: main
Are you sure you want to change the base?
Add nebula_ca plugin #539
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -250,6 +250,35 @@ This is also called "Repository" in old versions. The properties to be configure | |
| `password` | String | AAP client key password | Yes | `8f9989c18d27...` | | ||
| `cert_pem` | String | CA cert for the KMS instance | Yes | `-----BEGIN CERTIFICATE----- ...` | | ||
|
||
#### Nebula CA Configuration | ||
|
||
The `name` field is `nebula-ca` to enable this plugin. | ||
|
||
The plugin can generate credentials for CoCo PODs (or VMs) that want to | ||
join a Nebula encrypted overlay network. The properties below can be | ||
used to configure the plugin. | ||
|
||
| Property | Type | Description | Required | Example | | ||
|------------------------|--------|-----------------------------------|----------|-----------------------------------------------------| | ||
| `nebula_cert_bin_path` | String | nebula-cert binary path | Yes | `/usr/local/bin/nebula-cert` | | ||
| `work_dir` | String | This plugin work directory, it requires `rw` permission | Yes | `/opt/confidential-containers/kbs/nebula-ca` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do these need to be required? It seems like we could have default values for both parameters. |
||
|
||
The following properties can be set under the `[self_signed_ca]` plugin section to configure the Nebula Certificate Authority. | ||
The Nebula CA will be re-created only if `${work_dir}/ca/ca.{key,crt}` are not found. | ||
|
||
| Property | Type | Description | Required | Default | Example | | ||
|---------------------|---------|-----------------------------------|----------|-----------------------------------------------------| | ||
| `name` | String | Name of the certificate authority | Yes | | `Nebula Ca for Trustee KBS` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This also seems like it could have a default value |
||
| `argon_iterations` | Integer | Argon2 iterations parameter used for encrypted private key passphrase | No | 1 | | | ||
| `argon_memory` | Integer | Argon2 memory parameter (in KiB) used for encrypted private key passphrase | No | 2097152 | | | ||
| `argon_parallelism` | Integer | Argon2 parallelism parameter used for encrypted private key passphrase | No | 4 | | | ||
| `curve` | String | EdDSA/ECDSA Curve (25519, P256) | No | `25519` | | | ||
| `duration` | String | Amount of time the certificate should be valid for. Valid time units are: <hours>"h"<minutes>"m"<seconds>"s" | No | `8760h0m0s` | | | ||
| `groups` | String | Comma separated list of groups. This will limit which groups subordinate certs can use | No | | `server,ssh` | | ||
| `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` | | ||
| `out_qr` | String | Path to write a QR code image (png) of the certificate | No | | `/opt/confidential-containers/kbs/nebula_ca/ca_qr.crt`| | ||
| `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` | | ||
|
||
## Configuration Examples | ||
|
||
Using a built-in CoCo AS: | ||
|
@@ -283,6 +312,13 @@ policy_engine = "opa" | |
name = "resource" | ||
type = "LocalFs" | ||
dir_path = "/opt/confidential-containers/kbs/repository" | ||
|
||
[[plugins]] | ||
name = "nebula-ca" | ||
nebula_cert_bin_path = "/usr/local/bin/nebula-cert" | ||
work_dir = "/opt/confidential-containers/kbs/nebula-ca" | ||
[plugins.settings] | ||
name = "Nebula CA for Trustee KBS" | ||
``` | ||
|
||
Using a remote CoCo AS: | ||
|
@@ -302,6 +338,13 @@ as_addr = "http://127.0.0.1:50004" | |
name = "resource" | ||
type = "LocalFs" | ||
dir_path = "/opt/confidential-containers/kbs/repository" | ||
|
||
[[plugins]] | ||
name = "nebula-ca" | ||
nebula_cert_bin_path = "/usr/local/bin/nebula-cert" | ||
work_dir = "/opt/confidential-containers/kbs/nebula-ca" | ||
[plugins.settings] | ||
name = "Nebula CA for Trustee KBS" | ||
``` | ||
|
||
Running with Intel Trust Authority attestation service: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe we should have a convention for features that enable plugins. we could call this
nebula-ca-plugin
for instanceThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree and I like
nebula-ca-plugin