kibana/docs/user
Kurt 4554b75899
Add license check for FIPS (#181187)
## Updates
### Latest updates

- Expose whether KB is configured to run in FIPS mode from Core ->
Security
<img width="653" alt="Screenshot 2024-06-20 at 9 55 17 PM"
src="56a9f50f-0a05-41ca-9292-ed225b3d8062">



Consolidating all FIPS PRs into this PR

*Previous PRs were Approved

### Changes

- Config option is now experimental:
`xpack.security.experimental.fipsMode.enabled`
- Documentation has been revised
  - Listed as an experimental feature
  - Added keystore references for adding a password

## Summary
Closes #169738
Closes #169739
Closes #169740
Closes #185948

FIPS is a platinum license feature. 

KIbana instances must have a platinum or better license to start up in
FIPS mode, a lesser license will result in Kibana failing to start up

If the license is degraded, Kibana will still run, but an error will be
logged letting the user know that Kibana will not be able to restart.

## Config changes

This PR required the changes that were approved from [a previous
PR](https://github.com/elastic/kibana/pull/174558), since that PR
couldn't be merged into main, I merged it here.

## Testing

### Locally

In your `kibana.dev.yml` add:
`xpack.security.experimental.fipsMode.enabled: true`

To allow Kibana to start without actually providing a compliant OpenSSL
provider, in `x-pack/plugins/security/server/config.ts` change L328 from
`if (isFipsEnabled !== isNodeRunningWithFipsEnabled)` to `if (false)`

You are now configured to run in FIPS-spoof mode!

Run: `yarn es snapshot` and `yarn start` > You should see Kibana fail to
start with an error about using a basic license.

Run: `yarn es snapshot --license trial` and `yarn start` > Kibana should
start.

Login as `elastic` and navigate to Stack Management > License Management

Switch your license to `basic` and accept.

In your logs, you will see an error letting users know that you no
longer have an appropriate license and Kibana will not restart.


### For FIPS enthusiasts

Start an ES instance in a method of your choosing, but not using `yarn
es snapshot`. I like to use an 8.15.0-snapshot from the `.es/cache`
directory by running `tar -xzvf
elasticsearch-8.15.0-SNAPSHOT-darwin-aarch64.tar.gz ` and cd into the
new directory's `bin` folder to run `./elasticsearch`

Ensure you have Docker running locally.

From any command line, run: `docker run --rm -it -e
XPACK_SECURITY_FIPSMODE_ENABLED='true' -p 5601:5601/tcp
docker.elastic.co/kibana-ci/kibana-ubi-fips:8.15.0-SNAPSHOT-bc3150316ed317c08d57c6bd785ba39586072e1d`

This will start Kibana into Interactive Setup mode, copy and paste the
token from the ES startup logs.

Kibana should fail to start and you should see Kibana fail to start with
an error about using a basic license.

Repeat the above process except before you paste the token from ES, do
the following to enable a trial license on your ES instance:

In a new terminal window, navigate to your the top level of your
elasticsearch folder and run

`curl -X POST --cacert config/certs/http_ca.crt -u
elastic:YOUR_PASSWORD_HERE
"https://localhost:9200/_license/start_trial?acknowledge=true&pretty"`

You should receive a successful response.

Now paste the token from the ES startup logs into the Kibana Interactive
Setup window and Kibana should start.

Login as `elastic` and navigate to Stack Management > License Management

Switch your license to `basic` and accept.

In your logs, you will see an error letting users know that you no
longer have an appropriate license and Kibana will not restart.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: lcawl <lcawley@elastic.co>
2024-07-02 11:03:28 -04:00
..
alerting [DOCS] Stack Management Alerts app (#184384) 2024-06-05 16:12:54 -07:00
commands [docs] Improve Secure saved objects and kibana-encryption-keys docs (#132828) 2022-05-25 06:27:37 +02:00
dashboard [Lens][Docs] add metric coloring doc (#174405) 2024-01-16 09:41:20 -06:00
graph [DOCS] Updates saved objects & other docs (#139328) 2022-09-21 16:11:41 -07:00
images [DOCS] Adds the whats new page for 8.14 (#183556) 2024-05-28 21:13:13 -04:00
introduction/images Doc changes for stack management and grouped feature privileges (#80486) 2020-10-27 11:41:31 -04:00
ml [DOCS] Adjusts log rate analysis docs (#185008) 2024-06-12 11:19:14 +02:00
monitoring describe the values in the CCR metrics table (#184545) 2024-06-03 10:46:40 -04:00
production-considerations (+Doc) Make "expired hot timestamps" searchable to resolve (#184363) 2024-05-30 08:35:32 -06:00
reporting [Reporting/Docs] Organize troubleshooting page and add CSV content (#182202) 2024-06-24 14:53:57 -07:00
security Add license check for FIPS (#181187) 2024-07-02 11:03:28 -04:00
troubleshooting [Telemetry] Use header-based versioned APIs instead of path-based (#159839) 2023-08-12 14:20:06 -07:00
api.asciidoc [Docs] remove Kibana book-scoped variables (#178676) 2024-03-14 11:53:33 -04:00
canvas.asciidoc [Docs] remove Kibana book-scoped variables (#178676) 2024-03-14 11:53:33 -04:00
dev-tools.asciidoc [Docs] remove Kibana book-scoped variables (#178676) 2024-03-14 11:53:33 -04:00
discover.asciidoc [DOCS] Discover troubleshooting blog link (#179109) 2024-03-21 13:40:52 -04:00
index.asciidoc [DOCS] Add Playground docs (#182692) 2024-05-08 17:29:17 +01:00
introduction.asciidoc [DOCS] Fix Rules and Connectors app labels (#145660) 2022-11-22 09:14:31 -08:00
management.asciidoc [Docs] remove Kibana book-scoped variables (#178676) 2024-03-14 11:53:33 -04:00
plugins.asciidoc Remove Kibana Prometheus Exporter from documentation. (#171624) 2023-11-21 14:24:47 +00:00
setup.asciidoc [Docs] remove Kibana book-scoped variables (#178676) 2024-03-14 11:53:33 -04:00
whats-new.asciidoc [DOCS] Adds the whats new page for 8.14 (#183556) 2024-05-28 21:13:13 -04:00