Bottlerocket – Minimal, immutable Linux OS with verified boot
bottlerocket.dev
bottlerocket.dev
I wish the Bottlerocket team would do 1 of 2 things. Either own up that this is just an AWS project, or start to solve for things like this and actually be a product that "runs in the cloud or in your datacenter" as they suggest on their website.
Do you want to know if you are patched? Are you running the latest version? If so, you have all the available patches.
I appreciate this can cause difficulties in some regulated domains because there's a "vm" box that needs to be ticked on the compliance worksheet.
Most of the reason we need VM on a "traditional" OS is to handle the fact that they have a very broad configuration space and their software composition can be - and often is - pretty arbitrary (incorporating stuff from a ton of sources / vendors and those versions can move independently).
But that's not how you're supposed to use a container OS.
If you do "extra work" to discover vulnerabilities in "latest", you are not really doing the job of a system owner (whose job is to apply patches from upstream in a timely fashion), you are doing the work of a security researcher.
It’s been around longer than Bottlerocket
Genuine questions, I don't know if this is the case or not.
I guess my point is the project should be providing a clear path that doesn't involve AWS instead of just stopping short.
tl;dr: Amazon prioritizes patching really well, fixing real issues first
Just to save anybody the trouble who needs FIPS approved encryption for host OSes that you use at work for various compliance programs. This makes Bottlerocket a non-starter for us. A very active issue has been open for over 2 years on this and the dev teams don't seem to be convinced that this is important. We even communicated with the dev team through our dedicated AWS reps and they have no interest in adding this.
Here is the open 2+ year thread on this: https://github.com/bottlerocket-os/bottlerocket/issues/1667
FIPS support continues to be the top customer ask by a wide margin. Unfortunately the timing here is not kind for a new distro with no previous FIPS offering. New FIPS 140-2 certifications are no longer available, and new FIPS 140-3 certifications have to make it through a lengthy queue as the entire industry switches over.
If this were something the dev team could just power through, I assure you it would have happened by now. I apologize for giving the impression that it’s not important. It is, but that doesn’t help the timeline in this case.
If you need it, then you need it, but having the certification is a mildly bad sign in my opinion.
I’m not the only one with this opinion. For instance, the Microsoft Windows team seems to agree:
https://techcommunity.microsoft.com/t5/microsoft-security-ba...
Thanks for the link.
However, the whole FIPS and USG compliance in general mindset is not that; the goal instead is "be aware of ways in which your system is known to not be secure". The idea that a known flaw is better than an less-known fix is infuriating to devs, but from a business standpoint it makes some sense.
I’ve only seen them force changes were ones that weaken or remove defenses against known attacks.
I’ve never seen them require additional standard defenses, or identity and propose fixes against attacks that were not already considered and addressed by the existing system.
Here's your reminder that even if FIPS itself isn't evil, it moves in evil circles with evil people. [2]
[1] https://twitter.com/matthew_d_green/status/41279364233232384...
[2] https://threadreaderapp.com/thread/1433451378391883782.html
I found the VMware instructions at https://github.com/bottlerocket-os/bottlerocket/blob/develop...
We run immutable container hosts in production because we want to minimize the level of admin interaction. Basically it goes like this. Terraform idempotent setup of VMs with immutable Linux server OS, running containers.
We even disabled login on these in production, only keep it enabled in staging. All changes are tested in staging. If anything happens in prod, instead of logging in and making manual changes we just revert to an earlier state.
There is less need to configure files and services on the OS when everything runs in a container. You set it up once and start the VM.
Instead it says:
> Bottlerocket is installed as the base operating system on the machine or instance where your containers themselves are running.
> Bottlerocket runs in the cloud or in your datacenter.
https://github.com/bottlerocket-os/bottlerocket/blob/develop...
https://github.com/bottlerocket-os/bottlerocket/blob/develop...
I’ll have to spend a bit more time, but this seems like a nice option for orgs that want to run on-prem (e.g. not in cloud), and have a low maintenance container host.
2. Easily spin up as many instances as you need!
Is this available as an AMI I can use when launching an EC2 instance? If so, how do I specify which container or containers it should run? Do I paste a docker-compose.yaml file into the User Data field in the EC2 launch wizard? Do I send configuration to a certain reserved port with a specially authed HTTP POST? About the only thing I know atm is that I can’t use ssh until a container is deployed.
https://aws.amazon.com/bottlerocket/faqs/#Using_Bottlerocket
https://github.com/bottlerocket-os/bottlerocket/blob/develop...
We've been using Bottlerocket together with its update operator on K8s for about a year now and we are really happy with it as it solves patch management by swapping out an immutable host OS image instead.
shells
|
containers
|
Bottlerocket
|
OS kernelRegular Linux distributions don't have this, even if Secure Boot is enabled: https://0pointer.net/blog/brave-new-trusted-boot-world.html
Just use the damn OS and hardware directly. SSH into the host whenever you need to see how things are performing.
Kubernetes only works so long as you don't really care about resources being used well.
Nowadays I see people spend man-years developing tools to ensure consistent deployment on 10 machines. Not only do the tools not even work, they take months to land a change that could be done manually in two minutes.
These SSH people is how EC2 instances get hacked. Please stop and use telemetry.
There's also the SSM agent for people that feel the need to touch their instance.