TASK 38260338: Updated the pipelines to produce Linux builds capable of complying with the FIPS 140-3 standard.#3482
Draft
al-msft wants to merge 4 commits into
Draft
Conversation
Collaborator
Author
@microsoft-github-policy-service agree company="Microsoft" |
e4763da to
44fa071
Compare
e26737d to
a8b1a22
Compare
…ds capable of complying with the FIPS 140-3 standard. Microsoft's version of Go provides the FIPS capability. The FIPS-capable builds are produced alongside the existing builds, which don't use Microsoft's version of Go.
… a template and reverted to using the Microsoft-hosted pool for all but the FIPS-enabled images.
4c3e28d to
8981a6e
Compare
…ming and task conditions in the pipeline. Ideally, all agents would use the same version of Python to run the Python tests. However, azurelinux 3 only seems to support a different minor version of Python 3, as judged by log messages in the pipeline.
…apable of complying with the FIPS 140-3 standard. Microsoft's version of Go provides the FIPS capability. The FIPS-capable builds are produced alongside the existing builds, which don't use Microsoft's version of Go.
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Microsoft's version of Go provides the FIPS capability. The FIPS-capable builds are produced alongside the existing builds, which don't use Microsoft's version of Go.
Description
The CSI driver image is built by another team at Microsoft. That image needs to comply with the FIPS 140-3 standard by June 30th. A FIPS-compliance checker scans all binaries in the image; AzCopy is one of those binaries. To pass the FIPS-compliance check, each binary must be built with the Microsoft build of Go in the particular way the check expects and pass a run-time check that considers the host OS. The CSI driver image downloads azcopy as an RPM package on Azure Linux 3.0. To reduce the risk of migrating AzCopy from the official build of Go to the Microsoft build of Go, it was decided to release FIPS-capable builds of AzCopy - only for Linux - alongside the existing builds, and not to release Docker container images containing FIPS-capable builds. All existing Linux builds will now have a FIPS-capable analog, other than the Mariner 2 builds, because Mariner 2 has reached end of life.
These changes are intended to match the approach that was taken in previous pipeline updates, especially regarding the assurances and costs of testing. The changes are expected to increase the run-time of the affected pipelines; to mitigate this, parallelism was used (via the "matrix" strategy) where it seemed unlikely to lead to conflicts in the parallel operations, the tests in run_scenarios.yml were not updated to test the FIPS-capable builds (there seemed to be little value in doing so), and only the FIPS-capable build for the AMD64 architecture was tested (following the approach that was taken for the non-FIPS-capable builds). The "unit" tests, end-to-end tests, and Python tests were updated to test the FIPS-capable build, because each of those types of tests includes tests at the integration level or higher. If we later update the set of "unit" tests to ensure they are all true unit tests, we should update the pipeline to stop running those tests on the FIPS-capable build.
Cut for Time/Risk:
Items to Discuss with the Product Manager before This PR Is Marked Ready for Review:
Related Links:
Type of Change
How Has This Been Tested?