c6fc / npk

A mostly-serverless distributed hash cracking platform
508 stars 59 forks source link

Restrict deployment and operation to specific AWS Regions #74

Closed neilramsay closed 1 year ago

neilramsay commented 1 year ago

We want to restrict the deployment of hash cracking EC2 instances to specific AWS Regions due to compliance restrictions. This MR restricts the deployment of NPK AWS Resources, and Campaigns to Regions specified by the installer.

The installer has been extended to list available Regions, and prompt which regions to enable (empty means all regions available) image

The resulting Terraform deployment only includes resources in the Region selected. image

The quota page has been updated to show only quotas in enabled regions, as well as tell the operator which regions are enabled. image

When creating a Campaign, only Instance Types available in the enabled Regions are listed. image

c6fc commented 1 year ago

These are great fixes! I'll take a look and get it merged as soon as I can. Thanks!

c6fc commented 1 year ago

Hi Neil,

Before anything else, props on suffering through the mayhem that is my JSonnet/Node code. That couldn't have been easy.

I merged your changes to dev, but altered the approach to be a little simpler while still keeping the features you were looking for. Rather than pass restrict_to_regions through the installer, npk_config, controllers, views, and lambda functions, I instead just removed the regions that weren't included in the setting from the quotas object that all the configs/campaigns/views are based on. It's not exactly the same, since it won't show excluded regions in the quota view, but that's about the only functional difference between the approaches.

You're the first person in the history of all my public projects to submit complex and well-integrated features in a PR. Thanks for that!

neilramsay commented 1 year ago

Awesome. Thanks for improving my request, and then merging in to dev. I'll have a look at your improvements, and try and add them to my craft.