From 85852891e94b23ae3a04129e3fbfdfb42db3ecb1 Mon Sep 17 00:00:00 2001 From: Daryl White <53910321+djwfyi@users.noreply.github.com> Date: Wed, 3 Apr 2024 16:57:10 -0400 Subject: [PATCH 1/3] Updates for KES release 2024-02-29T08-12-28Z - Adds info about KES Grafana dashboard - Adds info about new HMAC API endpoint - Removes references to "enclave" throughout and two `rm` commands - Updates info about downgrading after this version Closes #49 --- content/_includes/params/enclave.md | 3 -- content/_includes/server-config.md | 1 - content/cli/kes-enclave/_index.md | 20 --------- content/cli/kes-enclave/create.md | 46 ------------------- content/cli/kes-enclave/info.md | 50 --------------------- content/cli/kes-enclave/rm.md | 39 ---------------- content/cli/kes-identity/_index.md | 1 - content/cli/kes-identity/info.md | 9 ++-- content/cli/kes-identity/ls.md | 5 --- content/cli/kes-identity/rm.md | 33 -------------- content/cli/kes-key/create.md | 5 --- content/cli/kes-key/decrypt.md | 5 --- content/cli/kes-key/dek.md | 5 --- content/cli/kes-key/encrypt.md | 5 --- content/cli/kes-key/import.md | 5 --- content/cli/kes-key/info.md | 5 --- content/cli/kes-key/ls.md | 5 --- content/cli/kes-key/rm.md | 5 --- content/cli/kes-policy/_index.md | 1 - content/cli/kes-policy/assign.md | 5 --- content/cli/kes-policy/create.md | 5 --- content/cli/kes-policy/info.md | 5 --- content/cli/kes-policy/ls.md | 5 --- content/cli/kes-policy/rm.md | 52 ---------------------- content/cli/kes-policy/show.md | 5 --- content/cli/kes-secret/create.md | 5 --- content/cli/kes-secret/info.md | 5 --- content/cli/kes-secret/ls.md | 5 --- content/cli/kes-secret/rm.md | 5 --- content/cli/kes-secret/show.md | 5 --- content/concepts/environment-variables.md | 8 ---- content/concepts/grafana-dashboard.png | Bin 0 -> 125286 bytes content/concepts/monitoring.md | 9 ++++ content/concepts/server-api.md | 29 +++++++++++- content/tutorials/getting-started.md | 17 +++++-- 35 files changed, 54 insertions(+), 359 deletions(-) delete mode 100644 content/_includes/params/enclave.md delete mode 100644 content/cli/kes-enclave/_index.md delete mode 100644 content/cli/kes-enclave/create.md delete mode 100644 content/cli/kes-enclave/info.md delete mode 100644 content/cli/kes-enclave/rm.md delete mode 100644 content/cli/kes-identity/rm.md delete mode 100644 content/cli/kes-policy/rm.md create mode 100644 content/concepts/grafana-dashboard.png diff --git a/content/_includes/params/enclave.md b/content/_includes/params/enclave.md deleted file mode 100644 index df403f0..0000000 --- a/content/_includes/params/enclave.md +++ /dev/null @@ -1,3 +0,0 @@ -_Optional_ - -The short name of the KES enclave to output information about. \ No newline at end of file diff --git a/content/_includes/server-config.md b/content/_includes/server-config.md index 6aa8318..8e46024 100644 --- a/content/_includes/server-config.md +++ b/content/_includes/server-config.md @@ -204,7 +204,6 @@ log: # "time": "2006-01-02T15:04:05Z07:00", # "request": { # "ip": "87.149.99.199", - # "enclave": "default", # "path": "/v1/key/create/my-app-key", # "identity": "4067503933d4a78358f908a2df7ec14e554c612acf8a9d1aa29b7da4aa018ec9", # }, diff --git a/content/cli/kes-enclave/_index.md b/content/cli/kes-enclave/_index.md deleted file mode 100644 index 5410eee..0000000 --- a/content/cli/kes-enclave/_index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: kes enclave -date: 2023-03-03 -lastmod: :git -draft: false -tableOfContents: true ---- - -## Overview - -Use `kes enclave` and its subcommands to create, list, or remove KES enclave. -Enclaves provide secure zones for performing actions with the KES server. - -## Subcommands - -|Subcommands |Description | -|:----------------------------------------------------|:----------------------------------| -|[`create`]({{< relref "/cli/kes-enclave/create" >}}) |Create a new enclave | -|[`info`]({{< relref "/cli/kes-enclave/info" >}}) |Show information about an enclave | -|[`rm`]({{< relref "/cli/kes-enclave/rm" >}}) |Delete an enclave | diff --git a/content/cli/kes-enclave/create.md b/content/cli/kes-enclave/create.md deleted file mode 100644 index e05f47a..0000000 --- a/content/cli/kes-enclave/create.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: kes enclave create -date: 2023-03-03 -lastmod: :git -draft: false -tableOfContents: true ---- - -## Overview - -Creates a new KES enclave. - -## Syntax - -```sh -kes enclave create \ - \ - \ - [--insecure, -k] -``` - -## Parameters - -### `` - -_Required_ - -A short, human-readable name to use to interact with the enclave with the KES commands. - -### `` - -_Required_ - -The [`subject`]({{< relref "cli/kes-identity/new.md#subject" >}}) of the identity to use to create the enclave. - -### `--insecure, -k` - -{{< include "_includes/params/insecure.md" >}} - -## Examples - -The following command creates a new enclave called `tenant-1` with the provided identifier. - -```sh {.copy} -kes enclave create tenant-1 5f2f4ef3e0e340a07fc330f58ef0a1c4d661e564ab10795f9231f75fcfe572f1 -``` \ No newline at end of file diff --git a/content/cli/kes-enclave/info.md b/content/cli/kes-enclave/info.md deleted file mode 100644 index dc9effb..0000000 --- a/content/cli/kes-enclave/info.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: kes enclave info -date: 2023-03-03 -lastmod: :git -draft: false -tableOfContents: true ---- - -## Overview - -Prints the identity information for a KES enclave. - -## Syntax - -```sh -kes enclave info \ - \ - [--color ] \ - [--insecure, -k] \ - [--json] -``` - -## Parameters - -### `name` - -_Required_ - -The short name of the KES enclave to output information about. - -### `--color` - -{{< include "_includes/params/color.md" >}} - -### `--insecure, -k` - -{{< include "_includes/params/insecure.md" >}} - -### `--json` - -{{< include "_includes/params/json.md" >}} - - -## Examples - -The following command displays the identity information for the enclave named `tenant-1`. - -```sh {.copy} -kes enclave info tenant-1 -``` diff --git a/content/cli/kes-enclave/rm.md b/content/cli/kes-enclave/rm.md deleted file mode 100644 index 86c76b0..0000000 --- a/content/cli/kes-enclave/rm.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: kes enclave rm -date: 2023-03-03 -lastmod: :git -draft: false -tableOfContents: true ---- - -## Overview - -Deletes an enclave from KES. - -## Syntax - -```sh -kes enclave rm \ - \ - [--insecure, -k] -``` - -## Parameters - -### `name` - -_Required_ - -The short name of the KES enclave to output information about. - -### `--insecure, -k` - -{{< include "_includes/params/insecure.md" >}} - -## Examples - -The following command deletes the KES enclave named `tenant-1`. - -```sh {.copy} -kes enclave rm tenant-1 -``` \ No newline at end of file diff --git a/content/cli/kes-identity/_index.md b/content/cli/kes-identity/_index.md index 4f26dc8..59aaa3a 100644 --- a/content/cli/kes-identity/_index.md +++ b/content/cli/kes-identity/_index.md @@ -25,7 +25,6 @@ This page provides reference information for the `kes identity` commands. |[`ls`]({{< relref "/cli/kes-identity/ls" >}}) |List KES identities | |[`new`]({{< relref "/cli/kes-identity/new" >}}) |Create a KES identity | |[`of`]({{< relref "/cli/kes-identity/of" >}}) |Compute a KES identity from a certificate | -|[`rm`]({{< relref "/cli/kes-identity/rm" >}}) |Delete a KES identity | ## Related Content diff --git a/content/cli/kes-identity/info.md b/content/cli/kes-identity/info.md index 22f3e19..5b4866b 100644 --- a/content/cli/kes-identity/info.md +++ b/content/cli/kes-identity/info.md @@ -23,7 +23,6 @@ Role Admin ```sh kes identity info \ [--color ] \ - [--enclave, -e ] \ [] \ [--insecure, -k] \ [--json] @@ -35,10 +34,6 @@ kes identity info \ {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `identity` _Optional_ @@ -55,12 +50,14 @@ The UUID of a specific identity to retrieve information about. ## Examples -The following command displays the identity information for the enclave named `tenant-1`. +The following command displays the identity information for the kes server. ```sh {.copy} kes identity info` ``` +The following command displays the identity of the provided key. + ```sh {.copy} kes identity info 3ecfcdf38fcbe141ae26a1030f81e96b753365a46760ae6b578698a97c59fd22 ``` diff --git a/content/cli/kes-identity/ls.md b/content/cli/kes-identity/ls.md index 8cf9635..558fcea 100644 --- a/content/cli/kes-identity/ls.md +++ b/content/cli/kes-identity/ls.md @@ -20,7 +20,6 @@ The `kes identity ls` command does not return admin identities. ```sh kes identity ls \ [--color ] \ - [--enclave, -e ] \ [--insecure, -k] \ [--json] \ [pattern] @@ -32,10 +31,6 @@ kes identity ls \ {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-identity/rm.md b/content/cli/kes-identity/rm.md deleted file mode 100644 index 58f7759..0000000 --- a/content/cli/kes-identity/rm.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: kes identity rm -date: 2023-03-03 -lastmod: :git -draft: false -tableOfContents: true ---- - -## Overview - -Removes the identity of either an api key or a certificate. - -## Syntax - -kes identity rm \ - [--enclave, -e ] \ - [--insecure, -k] - -## Parameters - -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - -### `--insecure, -k` - -{{< include "_includes/params/insecure.md" >}} - -## Examples - -```sh {.copy} -kes identity rm 736bf58626441e3e134a2daf2e6a8441b40e1abc0eac510878168c8aac9f2b0b -``` diff --git a/content/cli/kes-key/create.md b/content/cli/kes-key/create.md index a33268b..b7ca127 100644 --- a/content/cli/kes-key/create.md +++ b/content/cli/kes-key/create.md @@ -16,7 +16,6 @@ KES *never* returns the generated secret to clients. ```sh kes key create \ \ - [--enclave, -e ] \ [--insecure, -k] ``` @@ -28,10 +27,6 @@ kes key create \ You may add multiple names to a single command to generate multiple keys. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/decrypt.md b/content/cli/kes-key/decrypt.md index 516b9e4..11c42ca 100644 --- a/content/cli/kes-key/decrypt.md +++ b/content/cli/kes-key/decrypt.md @@ -23,7 +23,6 @@ kes key decrypt \ \ \ [] \ - [--enclave, -e ] \ [--insecure,-k] ``` @@ -47,10 +46,6 @@ The context value to scope the request for a data encryption key. You create contexts in the `kubeconfig` file of a Kubernetes deployment to define a set of cluster, namespace, and user configuration to use. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/dek.md b/content/cli/kes-key/dek.md index afe721f..8a3e6eb 100644 --- a/content/cli/kes-key/dek.md +++ b/content/cli/kes-key/dek.md @@ -30,7 +30,6 @@ Avoid storing the plaintext value of a DEK on disk, as it allows decryption of d key key dek \ [] \ - [--enclave, -e ] \ [--insecure, -k] ``` @@ -48,10 +47,6 @@ The context value to scope the request for a data encryption key. You create contexts in the `kubeconfig` file of a Kubernetes deployment to define a set of cluster, namespace, and user configuration to use. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/encrypt.md b/content/cli/kes-key/encrypt.md index dc6a742..09a58f5 100644 --- a/content/cli/kes-key/encrypt.md +++ b/content/cli/kes-key/encrypt.md @@ -22,7 +22,6 @@ Avoid storing the plaintext on disk, as it allows decryption of data without req kes key encrypt \ \ \ - [--enclave, e ] \ [--insecure,-k] ``` @@ -38,10 +37,6 @@ _Required_ The string to encrypt. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/import.md b/content/cli/kes-key/import.md index 5329d84..a00cf6a 100644 --- a/content/cli/kes-key/import.md +++ b/content/cli/kes-key/import.md @@ -16,7 +16,6 @@ Import a cryptographic key. kes key import \ \ \ - [--enclave, -e ] \ [--insecure, -k] ``` @@ -32,10 +31,6 @@ _Required_ Key to use to decrypt the import file. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/info.md b/content/cli/kes-key/info.md index 62ce6be..d19a6f6 100644 --- a/content/cli/kes-key/info.md +++ b/content/cli/kes-key/info.md @@ -25,7 +25,6 @@ Created By 3ecfcdf38fcbe141ae26a1030f81e96b753365a46760ae6b578698a97c59fd22 kes key info \ \ [--color ] \ - [--enclave, -e] \ [--insecure, -k] \ [--json] ``` @@ -40,10 +39,6 @@ kes key info \ {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/ls.md b/content/cli/kes-key/ls.md index 073e233..cd1459a 100644 --- a/content/cli/kes-key/ls.md +++ b/content/cli/kes-key/ls.md @@ -27,7 +27,6 @@ Date Created Key ```sh kes key ls \ [--color ] \ - [--enclave, -e] \ [--insecure, -k] \ [--json] \ [] @@ -39,10 +38,6 @@ kes key ls \ {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-key/rm.md b/content/cli/kes-key/rm.md index 2917dd8..74f6928 100644 --- a/content/cli/kes-key/rm.md +++ b/content/cli/kes-key/rm.md @@ -21,7 +21,6 @@ Removing a Secret Key renders all data encrypted using that key permanently unre ```sh kes key rm \ \ - [--enclave, -e] \ [--insecure, -k] ``` @@ -34,10 +33,6 @@ _Required_ The name of the existing key to remove. To remove more than one key, separate each key with a space. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-policy/_index.md b/content/cli/kes-policy/_index.md index 033afe6..84ab106 100644 --- a/content/cli/kes-policy/_index.md +++ b/content/cli/kes-policy/_index.md @@ -23,5 +23,4 @@ To make persistent changes to KES policies, modify the `policy` section of the K |[`create`]({{< relref "/cli/kes-policy/create" >}}) |Create a new policy | |[`info`]({{< relref "/cli/kes-policy/info" >}}) |Get information about a policy | |[`ls`]({{< relref "/cli/kes-policy/ls" >}}) |List policies | -|[`rm`]({{< relref "/cli/kes-policy/rm" >}}) |Remove a policy | |[`show`]({{< relref "/cli/kes-policy/show" >}}) |Display a policy | diff --git a/content/cli/kes-policy/assign.md b/content/cli/kes-policy/assign.md index 6260f63..0500212 100644 --- a/content/cli/kes-policy/assign.md +++ b/content/cli/kes-policy/assign.md @@ -16,7 +16,6 @@ Assign a KES policy to identities. kes policy assign \ \ \ - [--enclave, -e ] \ [--insecure, -k] ``` @@ -32,10 +31,6 @@ Use `kes policy ls` to find the name. The name of the identity to which to assign the policy. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-policy/create.md b/content/cli/kes-policy/create.md index e7b8f61..cbc7556 100644 --- a/content/cli/kes-policy/create.md +++ b/content/cli/kes-policy/create.md @@ -25,7 +25,6 @@ To create permanent policies, modify the `policy` section of the KES [configurat kes policy create \ \ \ - [--enclave, -e ] \ [--insecure, -k] ``` @@ -43,10 +42,6 @@ _Required_ The path to the file containing the policy to use with this name. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-policy/info.md b/content/cli/kes-policy/info.md index 897a37e..8de040f 100644 --- a/content/cli/kes-policy/info.md +++ b/content/cli/kes-policy/info.md @@ -24,7 +24,6 @@ Created by 3ecfcdf38fcbe141ae26a1030f81e96b753365a46760ae6b578698a97c59fd22 kes policy info \ \ [--color ] \ - [--enclave, -e ] \ [--insecure, -k] \ [--json] ``` @@ -41,10 +40,6 @@ The short name of the policy about which to output information. {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-policy/ls.md b/content/cli/kes-policy/ls.md index a11d01c..775a08b 100644 --- a/content/cli/kes-policy/ls.md +++ b/content/cli/kes-policy/ls.md @@ -22,7 +22,6 @@ Date Created Policy ```sh kes policy ls \ [--color ] \ - [--enclave, -e ] \ [--insecure, -k] \ [--json] \ [<'pattern'>] @@ -34,10 +33,6 @@ kes policy ls \ {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-policy/rm.md b/content/cli/kes-policy/rm.md deleted file mode 100644 index 78523cd..0000000 --- a/content/cli/kes-policy/rm.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: kes policy rm -date: 2023-03-03 -lastmod: :git -draft: false -tableOfContents: true ---- - -## Overview - -Remove a policy name from the KES server. -Removing a policy prevents clients authenticating with an identity associated to that policy from performing any operations on the KES server. - -## Syntax - -```sh -kes policy rm \ - \ - [--enclave, -e ] \ - [--insecure, -k] -``` - -## Parameters - -### `name` - -_Required_ - -The short name of the policy to remove. -To remove more than one policy name, separate multiple policy names with commas. - -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - -### `--insecure, -k` - -{{< include "_includes/params/insecure.md" >}} - -## Examples - -Remove a policy: - -```sh {.copy} -kes policy rm my-policy -``` - -Remove two policies: - -```sh {.copy} -kes policy rm my-policy1, my-policy2 -``` \ No newline at end of file diff --git a/content/cli/kes-policy/show.md b/content/cli/kes-policy/show.md index ddedfcd..2492547 100644 --- a/content/cli/kes-policy/show.md +++ b/content/cli/kes-policy/show.md @@ -37,7 +37,6 @@ Created by: 3ecfcdf38fcbe141ae26a1030f81e96b753365a46760ae6b578698a97c59fd22 ```sh kes policy show \ \ - [--enclave, -e ] \ [--insecure, -k] \ [--json] ``` @@ -50,10 +49,6 @@ _Required_ The short name of the policy about which to output information. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-secret/create.md b/content/cli/kes-secret/create.md index 4b03797..53649aa 100644 --- a/content/cli/kes-secret/create.md +++ b/content/cli/kes-secret/create.md @@ -16,7 +16,6 @@ Add a new secret to use on the KES server. kes secrete create \ \ \ - [--enclave, -e ] \ [--file ] \ [--insecure, -e] ``` @@ -29,10 +28,6 @@ _Required_ A short name to use to refer to the secret. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--file` Use the contents of a file as the secret. diff --git a/content/cli/kes-secret/info.md b/content/cli/kes-secret/info.md index f1bf33b..f48e081 100644 --- a/content/cli/kes-secret/info.md +++ b/content/cli/kes-secret/info.md @@ -23,7 +23,6 @@ Created by 3ecfcdf38fcbe141ae26a1030f81e96b753365a46760ae6b578698a97c59fd22 kes secret info \ \ [--color ] \ - [--enclave, -e ] \ [--insecure, -e] \ [--json] ``` @@ -40,10 +39,6 @@ The short name of the secret about which to output information. {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-secret/ls.md b/content/cli/kes-secret/ls.md index 94e1753..55d6243 100644 --- a/content/cli/kes-secret/ls.md +++ b/content/cli/kes-secret/ls.md @@ -17,7 +17,6 @@ You can display a list of all secrets or a list that match a specific pattern. ```sh kes secret ls \ [--color ] \ - [--enclave, -e ] \ [--insecure, -k] \ [--json] \ [<'pattern'>] @@ -31,10 +30,6 @@ kes secret ls \ {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-secret/rm.md b/content/cli/kes-secret/rm.md index 6022158..3a2f057 100644 --- a/content/cli/kes-secret/rm.md +++ b/content/cli/kes-secret/rm.md @@ -16,7 +16,6 @@ Once removed, the secret is no longer valid for the KES server. ```sh kes secret rm \ \ - [--enclave, -e ] \ [--insecure, -k] ``` @@ -28,10 +27,6 @@ _Required_ The short name of the secret to remove. -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/cli/kes-secret/show.md b/content/cli/kes-secret/show.md index ebbe168..4089af7 100644 --- a/content/cli/kes-secret/show.md +++ b/content/cli/kes-secret/show.md @@ -16,7 +16,6 @@ Output the contents of a secret. kes secret show \ \ [--color ] \ - [--enclave, -e ] \ [--insecure, -k] \ [--json] \ [--plain, -p] @@ -34,10 +33,6 @@ The short name of the secret to remove. {{< include "_includes/params/color.md" >}} -### `--enclave, -e` - -{{< include "_includes/params/enclave.md" >}} - ### `--insecure, -k` {{< include "_includes/params/insecure.md" >}} diff --git a/content/concepts/environment-variables.md b/content/concepts/environment-variables.md index 92feb46..4aaac6a 100644 --- a/content/concepts/environment-variables.md +++ b/content/concepts/environment-variables.md @@ -34,11 +34,3 @@ MinIO uses this key for the following: - Encrypting backend data ( [IAM](https://min.io/docs/minio/linux/administration/identity-access-management.html#minio-authentication-and-identity-management), server configuration). - The default encryption key for Server-Side Encryption with [SSE-KMS](https://min.io/docs/minio/linux/administration/server-side-encryption/server-side-encryption-sse-kms.html#minio-encryption-sse-kms). - The encryption key for Server-Side Encryption with [SSE-S3](https://min.io/docs/minio/linux/administration/server-side-encryption/server-side-encryption-sse-s3.html#minio-encryption-sse-s3). - -## `MINIO_KMS_KES_ENCLAVE` - -Use this optional environment variable to define the name of a KES enclave. -A KES enclave provides an isolated space for its associated keys separate from other enclaves on a stateful KES server. - -If not set, MinIO does not send enclave information. -For a stateful KES server, this results in using the default enclave. \ No newline at end of file diff --git a/content/concepts/grafana-dashboard.png b/content/concepts/grafana-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..b6dc91ecaf5ea99c363b7db8c1dae63e4546781e GIT binary patch literal 125286 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%0A%P?>&OuGtiLVnGORVc$j>?+~zx5@6E4Gt4%-0 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 diff --git a/content/concepts/server-api.md b/content/concepts/server-api.md index 45d6fb3..219df9b 100644 --- a/content/concepts/server-api.md +++ b/content/concepts/server-api.md @@ -30,7 +30,8 @@ If any endpoint does not require a certificate, failed calls result in an HTTP e | [`/v1/key/list`](#list-keys) | List cryptographic keys. | | [`/v1/key/generate`](#generate-key) | Generate a new plain/encrypted data encryption key pair. | | [`/v1/key/encrypt`](#encrypt-key) | Encrypt a (small) plaintext with a key. | -| [`/v1/key/decrypt`](#decrypt-ley) | Decrypt a (small) ciphertext with a key. | +| [`/v1/key/decrypt`](#decrypt-key) | Decrypt a (small) ciphertext with a key. | +| [`/v1/key/hmac`](#hmac) | | [**Policy API**](#Policy-API) | | | [`/v1/policy/describe`](#describe-policy) | Fetch information about a policy. | | [`/v1/policy/read`](#read-policy) | Fetch a policy. | @@ -550,6 +551,32 @@ $ curl \ } ``` +### HMAC + + +| Method | Path | Content-Type | +|:--------:|:---------------------:|:------------------:| +| `PUT` | `/v1/key/hmac/` | `application/json` | + +Compute a message authentication code (MAC) for some provided data. +Use this to verify that messages are authentic or to generate the same pseudo-random secret on startup. + +#### Sample Request +```bash {.copy} +$ curl \ + --key root.key \ + --cert root.cert \ + --request PUT \ + --data '{"message":"Data to use to generate the HMAC secret"}' +``` + +#### Sample Response +```json +{ + "hmac": "5ded46b0e5450b0790637d71e453bce1fdae61f25a34c211216906a99791c6a5" +} +``` + ## Policy API ### Describe Policy diff --git a/content/tutorials/getting-started.md b/content/tutorials/getting-started.md index 7edb6dd..bb7b5a9 100644 --- a/content/tutorials/getting-started.md +++ b/content/tutorials/getting-started.md @@ -78,8 +78,19 @@ This starts a KES server on `127.0.0.1:7373` and stores keys in memory. export PATH=$PATH:@HOME/minio-binaries/ ``` - **Important:** Invoke the Windows executable file from the terminal, PowerShell, or Command Prompt. - You cannot double click the file from the Windows graphical user interface. + **Important:** + + - Windows: Invoke the Windows executable file from the terminal, PowerShell, or Command Prompt. + You cannot double click the file from the Windows graphical user interface. + + - MacOS: Create an exception to allow MacOS to open the executable downloaded from the Internet. + + 1. Locate the binary in Finder. + 2. `CTRL + Click` the file, then select `Open`. + 3. Follow the prompts to open the app and create a security exception. + 4. Close the window that opens showing the KES help page. + 5. Return to the Terminal and verify you can access KES with `./kes -h`. + {{< /tab >}} @@ -235,7 +246,7 @@ This starts a KES server on `127.0.0.1:7373` and stores keys in memory. To upgrade KES, follow the getting started steps and replace the KES binary with the newer version on each KES server node. {{< admonition type="important" >}} -You cannot revert to a previous version of KES after upgrading. +After upgrading to release `2024-02-29T08-12-28Z` or later, you cannot revert to a release prior to `2024-02-29T08-12-28Z` due to changes in how KES processes ciphertext. {{< /admonition >}} ## References From 14200d8eedae013699f5a96d979121eaba60fb75 Mon Sep 17 00:00:00 2001 From: Daryl White <53910321+djwfyi@users.noreply.github.com> Date: Wed, 3 Apr 2024 17:15:05 -0400 Subject: [PATCH 2/3] Adds weights to pages to give order to the left nav. --- content/tutorials/_index.md | 19 +++++++++++++++++++ content/tutorials/configuration.md | 1 + content/tutorials/filesystem-keystore.md | 1 + content/tutorials/getting-started.md | 1 + content/tutorials/kes-for-minio.md | 1 + content/tutorials/systemd.md | 1 + 6 files changed, 24 insertions(+) create mode 100644 content/tutorials/_index.md diff --git a/content/tutorials/_index.md b/content/tutorials/_index.md new file mode 100644 index 0000000..56b4355 --- /dev/null +++ b/content/tutorials/_index.md @@ -0,0 +1,19 @@ +--- +title: Tutorials +date: 2023-02-08 +lastmod: :git +draft: false +tableOfContents: true +heading: true +weight: -1 +--- + +This section provides tutorials for common tasks related to installing and using KES. + +| Tutorial | Description | +|----------------------------------------------------------------|------------------------------------------------------------------------------| +| [Configuration]({{< relref "configuration.md" >}}) | Details for creating the configuration file for a KES Client and KES Server. | +| [Filesystem Keystore]({{< relref "filesystem-keystore.md" >}}) | Setup KES for testing using the local filesystem for persistent key storage. | +| [Getting Started]({{< relref "getting-started.md" >}}) | Setup KES for testing using system memory for ephemeral key storage. | +| [KES for MinIO]({{< relref "kes-for-minio.md" >}}) | Setup KES to work as the key encryption service for a MinIO deployment. | +| [systemd]({{< relref "systemd.md" >}}) | Configure a KES service on a Linux system using systemd service manager. | \ No newline at end of file diff --git a/content/tutorials/configuration.md b/content/tutorials/configuration.md index e372ff2..68b1477 100644 --- a/content/tutorials/configuration.md +++ b/content/tutorials/configuration.md @@ -4,6 +4,7 @@ date: 2023-02-08 lastmod: :git draft: false tableOfContents: true +weight: 40 --- This page provides information about KES configuration options for a KES Client and a KES Server. diff --git a/content/tutorials/filesystem-keystore.md b/content/tutorials/filesystem-keystore.md index 3d39bb4..eef41d5 100644 --- a/content/tutorials/filesystem-keystore.md +++ b/content/tutorials/filesystem-keystore.md @@ -4,6 +4,7 @@ date: 2023-02-08 lastmod: :git draft: false tableOfContents: true +weight: 50 --- Use this page to setup a KES server that uses the filesystem as persistent key store. diff --git a/content/tutorials/getting-started.md b/content/tutorials/getting-started.md index bb7b5a9..f93ba72 100644 --- a/content/tutorials/getting-started.md +++ b/content/tutorials/getting-started.md @@ -4,6 +4,7 @@ date: 2023-02-08 lastmod: :git draft: false tableOfContents: true +weight: 1 --- This Quickstart shows you how to setup a local KES server that stores keys in-memory. diff --git a/content/tutorials/kes-for-minio.md b/content/tutorials/kes-for-minio.md index 17c85a8..058e041 100644 --- a/content/tutorials/kes-for-minio.md +++ b/content/tutorials/kes-for-minio.md @@ -4,6 +4,7 @@ date: 2023-02-08 lastmod: :git draft: false tableOfContents: true +weight: 20 --- This tutorial shows how to setup a KES server and then configure a [MinIO deployment](https://min.io/docs/minio/linux/index.html) as a KES client for object encryption. diff --git a/content/tutorials/systemd.md b/content/tutorials/systemd.md index b8123c4..fd9bb32 100644 --- a/content/tutorials/systemd.md +++ b/content/tutorials/systemd.md @@ -4,6 +4,7 @@ date: 2023-02-08 lastmod: :git draft: false tableOfContents: true +weight: 30 --- This tutorial explains how to create a `systemd` service for KES on Linux systems. From a5868220e9634cb8106da3784ce1c412952f3f41 Mon Sep 17 00:00:00 2001 From: Daryl White <53910321+djwfyi@users.noreply.github.com> Date: Thu, 4 Apr 2024 08:19:06 -0400 Subject: [PATCH 3/3] Applying PR feedback --- content/cli/_index.md | 2 +- content/cli/kes-update/_index.md | 4 ++-- content/concepts/server-api.md | 2 +- content/tutorials/getting-started.md | 7 ++++--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/content/cli/_index.md b/content/cli/_index.md index 8de340e..6f17c96 100644 --- a/content/cli/_index.md +++ b/content/cli/_index.md @@ -56,7 +56,7 @@ docker pull minio/kes {{< /tab >}} {{< tab "Homebrew" >}} -MacOS users can use [Homebrew](https://brew.sh/) to install KES: +macOS users can use [Homebrew](https://brew.sh/) to install KES: ```sh {.copy} brew install minio/stable/kes diff --git a/content/cli/kes-update/_index.md b/content/cli/kes-update/_index.md index e66d995..4d4409e 100644 --- a/content/cli/kes-update/_index.md +++ b/content/cli/kes-update/_index.md @@ -60,7 +60,7 @@ Valid operating systems: - `darwin` - Use for MacOS. + Use for macOS. - `linux` - `windows` @@ -88,7 +88,7 @@ Download an older binary version and replace the current one: kes update --downgrade v.0.19.0 ``` -Download the latest binary for MacOS on an `arm64` chip like the M2 and save it to a file, keeping the current binary in place: +Download the latest binary for macOS on an `arm64` chip like the M2 and save it to a file, keeping the current binary in place: ```sh {.copy} kes update -o ./kes-darwin-arm64 --os darwin --arch arm64 diff --git a/content/concepts/server-api.md b/content/concepts/server-api.md index 219df9b..45e8890 100644 --- a/content/concepts/server-api.md +++ b/content/concepts/server-api.md @@ -558,7 +558,7 @@ $ curl \ |:--------:|:---------------------:|:------------------:| | `PUT` | `/v1/key/hmac/` | `application/json` | -Compute a message authentication code (MAC) for some provided data. +Compute a message authentication code (MAC) for the data passed in the request. Use this to verify that messages are authentic or to generate the same pseudo-random secret on startup. #### Sample Request diff --git a/content/tutorials/getting-started.md b/content/tutorials/getting-started.md index f93ba72..391073d 100644 --- a/content/tutorials/getting-started.md +++ b/content/tutorials/getting-started.md @@ -81,10 +81,10 @@ This starts a KES server on `127.0.0.1:7373` and stores keys in memory. **Important:** - - Windows: Invoke the Windows executable file from the terminal, PowerShell, or Command Prompt. + - For Windows: Invoke the Windows executable file from the terminal, PowerShell, or Command Prompt. You cannot double click the file from the Windows graphical user interface. - - MacOS: Create an exception to allow MacOS to open the executable downloaded from the Internet. + - For macOS: Create an exception to allow macOS to open the executable downloaded from the Internet. 1. Locate the binary in Finder. 2. `CTRL + Click` the file, then select `Open`. @@ -247,7 +247,8 @@ This starts a KES server on `127.0.0.1:7373` and stores keys in memory. To upgrade KES, follow the getting started steps and replace the KES binary with the newer version on each KES server node. {{< admonition type="important" >}} -After upgrading to release `2024-02-29T08-12-28Z` or later, you cannot revert to a release prior to `2024-02-29T08-12-28Z` due to changes in how KES processes ciphertext. +Due to changes in how KES processes ciphertext, it is not possible to revert to an earlier version after upgrading to release `2024-02-29T08-12-28Z` or later. +MinIO recommends always testing in a lower environment such as staging or development prior to upgrading production. {{< /admonition >}} ## References