Add support for Aeza.net hosting provider
Proposed Commit Message
Add support for Aeza.net hosting provider
Added a DataSource for the Aeza.net hosting provider, enabling
metadata and user data retrieval and instance provisioning via
cloud-init.
Additional Context
Test urls:
- http://77.221.156.49/v1/cloudinit/3c0fff62-b1db-4165-a2b2-f819c5ddf83f/meta-data
- http://77.221.156.49/v1/cloudinit/3c0fff62-b1db-4165-a2b2-f819c5ddf83f/user-data
- http://77.221.156.49/v1/cloudinit/3c0fff62-b1db-4165-a2b2-f819c5ddf83f/vendor-data
Test Steps
At the moment cloud-init support in our service is in draft state. We have tested the functionality of these changes.
Checklist
- [x] My code follows the process laid out in the documentation
- [x] I have updated or added any unit tests accordingly
- [x] I have updated or added any documentation accordingly
Merge type
- [x] Squash merge using "Proposed Commit Message"
- [ ] Rebase and merge unique commits. Requires commit messages per-commit each referencing the pull request number (#<PR_NUM>)
Also a general security question here. Given that user-data and vendor-data likely contains potentially sensitive information and Aeza.net's instance metadata endpoint is providing content over http that appears to be accessible to anyone with the URL http://77.221.156.49/v1/cloudinit/3c0fff62-b1db-4165-a2b2-f819c5ddf83f/meta-data and UUIDs can be guessable, what sort of authentication layer do you have planned to avoid potential exposure of sensitive information to unwanted parties?
Also a general security question here. Given that user-data and vendor-data likely contains potentially sensitive information and Aeza.net's instance metadata endpoint is providing content over http that appears to be accessible to anyone with the URL http://77.221.156.49/v1/cloudinit/3c0fff62-b1db-4165-a2b2-f819c5ddf83f/meta-data and UUIDs can be guessable, what sort of authentication layer do you have planned to avoid potential exposure of sensitive information to unwanted parties?
The UUID is not guessable, as it always uses UUIDv4, in which 122 bits are random and using system-level random source. I believe that this is a sufficient layer of authorization. And in order to accurately prevent cloud-init metadata information retrieval the service will be limited through rate-limit requests per second.
@blackboxsw can you please take a look?
@TheRealFalcon can you please take a look?
Hi @cofob, I don't see that your github username has signed the cloud-init's Contributor License Agreement. So that I can enable CI on this PR and move toward merging this PR, would you mind reviewing and signing our CLA so that we may include this work in upstream cloud-init?
Hi @cofob, I don't see that your github username has signed the cloud-init's Contributor License Agreement. So that I can enable CI on this PR and move toward merging this PR, would you mind reviewing and signing our CLA so that we may include this work in upstream cloud-init?
I signed the CLA
@blackboxsw I have made the changes according to your comments.
@blackboxsw can you review my changes please?
@cofob if the proposed changes work for you, I think the final thing we'd need (once we agree on the approach for how to address util.read_seeded) would be to have you test this version of cloud-init in your environment and paste the following:
- captured output of
sudo DI_LOG=stderr /usr/lib/cloud-init/ds-identify --forceon a working system to ensure ds-identify is working well. - Captured /var/log/cloud-init.log after running
sudo cloud-init init --localandsudo cloud-init init - Captured output of
sudo cloud-init query --all
Ping @cofob. I think this PR needs a git rebase upstream/main to ensure it has visibility to the incompatible changes in util.read_seeded which surfaces a 4-tuple return value. Let us know how we should proceed with the previous change suggestions.
Hello! Thank you for this proposed change to cloud-init. This pull request is now marked as stale as it has not seen any activity in 14 days. If no activity occurs within the next 7 days, this pull request will automatically close.
If you are waiting for code review and you are seeing this message, apologies! Please reply, tagging TheRealFalcon, and he will ensure that someone takes a look soon.
(If the pull request is closed and you would like to continue working on it, please do tag TheRealFalcon to reopen it.)