-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
FIPS-compliant builds on dockerhub #23353
Comments
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
not sure if this is something we prioritize - im aware the getenvoy tetrate builds provided this and that is no longer the case as i have said elsewhere my main concern is that we multiply the number of binaries/builds that we publish but perhaps this is something we should look at |
Is there currently a way for users to enable FIPS on envoy without bazel? I'd be glad to change the code on a local fork if that's an option but I don't know where that change would need to happen. |
@tomscarlato In order to be FIPS-compliant, Envoy needs to be compiled with a FIPS-compliant version of BoringSSL. The build tool for Envoy is Bazel and afaik there is no other supported build tool, which means you will have to use Bazel to build Envoy with FIPS compliance. I would be delighted to be wrong. I have not yet manage to build Envoy offline either, so far |
So, I have been experimenting a little building Envoy with BoringSSL-FIPS. I think I might have hijacked this thread with 2 different concerns: My setup is as follows on AWS - warning, the Ec2 instance used cost big money:
Startup script:
Case 1: Building FIPS Envoy (All traffic enabled)In this case you can just build Envoy and grab the binary after the build completes. With 96 cores, it takes 15 minutes:
Case 2: Build Envoy without FIPS compliance, (almost) offlineCloning the repo alone isn't enough, you will need to grab the dependency (requires Internet access) first.
Then, from that same machine with Internet access disabled:
Note: I'm not sure exactly what Case 3: Build Envoy with FIPS compliance, (kind of) offlineThis does not work. The issue with Additionally, So, in summary:, |
Error message on trying to build FIPS-Envoy "offline"
|
|
Logs on trying to use the the
|
re the errors syncing it might be worth bumping that to its own issue - not sure of the problem - but looks like something with our setup - not sure |
re issues with using distdir - putting above errors aside - im wondering if its because the api depdendencies are in their own (bazel) namespace |
The key part for building FIPS mode in offline is https://github.com/envoyproxy/envoy/blob/main/bazel/external/boringssl_fips.genrule_cmd Those curl command are not managed by Bazel, so bazel sync doesn't know anything about those dependencies. Without patching this file it won't work. |
That modifies the output of |
And additionally even for non-FIPS I am not managing to make offline builds work unless I am fetching the dependencies on the same node as I run the build on. Fetching the dependencies and storing them in some file system (such as mounted EBS) for reuse by offline nodes does not work. On advice from Phlax I was using this issue which might help for offline builds. This thread mentions the use of Attempt using
Attempt using both
Attempt using just
|
On reading the documentation more, If the output directory is moved or shared with an offline instance, then it's possible to (1) use a middlebox to run Obviously this is only valid for non-FIPS Envoy, as FIPS-Envoy would need to be patched as indicated by @lizan |
Facing a similar issue when building for FIPS mode
|
So I'm not sure what exactly is your set up so I have to take assumptions... So my guess here is you are behind a proxy and you've edited the Alternatively you nay have done none no changes to Either way I don't think your issue is with FIPS; if you try to build Envoy without the FIPS flag it's likely to fail as well. If you are using proxies / offline nodes don't forget to patch https://github.com/envoyproxy/envoy/blob/main/bazel/external/boringssl_fips.genrule_cmd as otherwise this goes stright to the Internet |
I tried both ways with proxy and without proxy, in both ways I had the same issue. And I even tried with the non-FIPS mode and you were right, I got similar issue. Anyway, I tried with your the above patch and still having issues, Do I need to pass any arguments ?
|
So it appears the server you are running this from does not have Internet access. You could try the following curl to confirm:
As far as I'm aware this is not doable. I have tried for a while to build envoy "offline" or behind proxies and this always fail due to recursive dependencies. I don't know how to fix it - and if I'm honest I don't think this can be fixed. I would recommend that you work towards being allowed to use servers with access to the Internet, else I don't think you will be able to build Envoy. I would be absolutely delighted to be wrong :) |
i might be wrong but i think the issue is that you are only fetching the envoy deps not the api ones not sure exactly how |
The server I am running this does have internet access & I tried the above command and was able to get the content. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions. |
Title: Include FIPS-compliant builds on dockerhub
Description:
Relevant Links
The text was updated successfully, but these errors were encountered: