Skip to content
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

release-23.2: fipsccl: Add interfaces to expose FIPS-readiness status #115202

Merged
merged 4 commits into from
Dec 12, 2023

Conversation

bdarnell
Copy link
Contributor

Backport 4/4 commits from #114709.

/cc @cockroachdb/release


  • CLI tool cockroach debug enterprise-check-fips for detailed diagnostics
  • Global CLI flag --enterprise-require-fips-ready to abort if FIPS checks fail
  • SQL function crdb_internal.fips_ready() to check at runtime

Closes #114344

Release justification: FIPS-ready mode requires a different version of OpenSSL in 23.2 than in older versions, so new tools are needed to ensure that upgrades are done properly.

@bdarnell bdarnell requested review from a team as code owners November 28, 2023 20:51
Copy link

blathers-crl bot commented Nov 28, 2023

Thanks for opening a backport.

Please check the backport criteria before merging:

  • Backports should only be created for serious
    issues
    or test-only changes.
  • Backports should not break backwards-compatibility.
  • Backports should change as little code as possible.
  • Backports should not change on-disk formats or node communication protocols.
  • Backports should not add new functionality (except as defined
    here).
  • Backports must not add, edit, or otherwise modify cluster versions; or add version gates.
  • All backports must be reviewed by the owning areas TL and one additional
    TL. For more information as to how that review should be conducted, please consult the backport
    policy
    .
If your backport adds new functionality, please ensure that the following additional criteria are satisfied:
  • There is a high priority need for the functionality that cannot wait until the next release and is difficult to address in another way.
  • The new functionality is additive-only and only runs for clusters which have specifically “opted in” to it (e.g. by a cluster setting).
  • New code is protected by a conditional check that is trivial to verify and ensures that it only runs for opt-in clusters. State changes must be further protected such that nodes running old binaries will not be negatively impacted by the new state (with a mixed version test added).
  • The PM and TL on the team that owns the changed code have signed off that the change obeys the above rules.
  • Your backport must be accompanied by a post to the appropriate Slack
    channel (#db-backports-point-releases or #db-backports-XX-X-release) for awareness and discussion.

Also, please add a brief release justification to the body of your PR to justify this
backport.

@blathers-crl blathers-crl bot added the backport Label PR's that are backports to older release branches label Nov 28, 2023
@cockroach-teamcity
Copy link
Member

This change is Reviewable

@bdarnell bdarnell force-pushed the backport23.2-114709 branch from 9381193 to 25c2267 Compare November 30, 2023 15:19
@bdarnell bdarnell requested review from jlinder, MyAlterLego and emnet-crl and removed request for MyAlterLego November 30, 2023 17:50
@bdarnell bdarnell force-pushed the backport23.2-114709 branch from 25c2267 to d011be7 Compare December 9, 2023 02:26
Copy link
Collaborator

@emnet-crl emnet-crl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 1 files at r1, 7 of 9 files at r2, 3 of 3 files at r3, 14 of 14 files at r4, all commit messages.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @rsevinsky-cr)

@jlinder
Copy link
Collaborator

jlinder commented Dec 12, 2023

The last force push was to correct the generated files from a run of dev gen bazel. Now CI passes.

Copy link
Collaborator

@emnet-crl emnet-crl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 7 of 7 files at r5, all commit messages.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @rsevinsky-cr)

The boringcrypto build tag/experiment is not necessary to enable FIPS
functionality with this toolchain, but it is necessary to expose the
crypto/boring.Enabled method, which is the application-visible
way to confirm that FIPS mode is in use.

Updates cockroachdb#114344
Release note: None
This command reports on the status of certain prerequisites for our fips-ready
builds.

Updates cockroachdb#114344

Release note (cli change): New command `cockroach debug
enterprise-check-fips` diagnoses errors in FIPS deployments
Previously, misconfigurations of the FIPS environment would result in a
silent fallback to non-FIPS-compliant Go cryptography. This flag permits
users who require FIPS compliance to add some checks to CockroachDB
startup to ensure that the Go crypto implementation will not be used.

Updates cockroachdb#114344

Release note (cli change): New flag --enterprise-require-fips-ready
can be added to any CRDB command to prevent startup if certain
prerequisites for FIPS compliance are not met.
This function provides a way to verify FIPS readiness without modifying
the deployment to add the --enterprise-require-fips-ready flag.

Updates cockroachdb#114344

Release note (enterprise change): New SQL function fips_ready can be
used to verify the FIPS readiness of the gateway node.
@jlinder jlinder force-pushed the backport23.2-114709 branch from 2e19646 to 80795c9 Compare December 12, 2023 19:25
@jlinder
Copy link
Collaborator

jlinder commented Dec 12, 2023

Pushed to fix conflicts (only one: from the go version change in the WORKSPACE file).

@jlinder jlinder merged commit bc665a3 into cockroachdb:release-23.2 Dec 12, 2023
5 of 6 checks passed
Copy link

blathers-crl bot commented Dec 12, 2023

Encountered an error creating backports. Some common things that can go wrong:

  1. The backport branch might have already existed.
  2. There was a merge conflict.
  3. The backport branch contained merge commits.

You might need to create your backport manually using the backport tool.


error setting reviewers, but backport branch blathers/backport-release-23.2.0-rc-115202 is ready: POST https://api.github.com/repos/cockroachdb/cockroach/pulls/116281/requested_reviewers: 422 Reviews may only be requested from collaborators. One or more of the teams you specified is not a collaborator of the cockroachdb/cockroach repository. []

Backport to branch 23.2.0-rc failed. See errors above.


🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport Label PR's that are backports to older release branches
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants