Skip to content

Add support for FedRAMP Moderate Assured Workloads deployments - #162

Open
jmpugh wants to merge 4 commits into
mainfrom
jeffpugh/g4g-frm
Open

Add support for FedRAMP Moderate Assured Workloads deployments#162
jmpugh wants to merge 4 commits into
mainfrom
jeffpugh/g4g-frm

Conversation

@jmpugh

@jmpugh jmpugh commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Description

Updates Stellar Engine FAST stages to deploy Assured Workloads supporting the FedRAMP Moderate compliance regime. The major differences between FedRAMP Moderate and High are the following:

  • FRM does not have to conform to the strict US-data boundary
  • FRM allows for global resource deployment (eg Load Balancing) due to the above
  • FRM has more relaxed encryption policies, namely allowing for SOFTWARE level protection in KMS which is more cost-effective

Fixes #101

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Deployment & Compliance Impact

  • Applicable Regimes:
    • US Region Restricted (e.g., Access Policy constraint)
    • FedRAMP Moderate
    • FedRAMP High
    • DoD IL4
    • DoD IL5
    • General / All
  • NIST 800-53r5 Controls: (If this PR helps satisfy or modifies control implementations, list them here)

Checklist

Code Quality & Reusability

  • My code adheres to the Maximize Reusability principle. I have not redefined common elements and have reused existing base configurations and modules where possible.
  • I have checked that no existing module or configuration in modules/ or fast/ can be leveraged for this change.
  • My code follows the established naming conventions outlined in documentation/naming-convention.md.

Documentation

  • I have updated the README.md of the modified module or blueprint.
  • I have added/updated documentation for inputs (variables) and outputs.

Security

  • My change adheres to GCP security best practices and the principle of least privilege.
  • I have ensured compliance with the targeted regime (FedRAMP High, IL5, etc.).

Testing

  • I have tested my changes locally.
  • I have included details of my testing in this PR.

Testing Performed

I have successfully completed the FAST stages to deploy Assured Workloads compliant with the FedRAMP Moderate regime.

@@ -0,0 +1,64 @@
# Copyright 2025 Google LLC

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all of the below custom-org-policies adhere to what a default FRM Assured Workloads folder would set for you

# naming: environment used in most resource names
prefix = join("-", compact([var.prefix, "prod"]))
prefix = join("-", compact([var.prefix, "prod"]))
kms_protection_level = coalesce(var.kms_protection_level, var.assured_workloads.regime == "FEDRAMP_MODERATE" ? "SOFTWARE" : "HSM")

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as mentioned in the PR description, FRM does not require FIPS 140-3 Level 3 so SOFTWARE is the more cost-effective option

output "kms_protection_level" {
description = "KMS protection level."
value = var.kms_protection_level
}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

include in output so it can be used downstream

Comment thread scripts/deploy.sh
exit 1
fi
fi
deploy_networking

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consolidates a lot of this duplicate code into the deploy_networking function

Comment thread scripts/destroy.sh
done
}

destroy_networking() {

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as above, consolidates the destroy_networking code

version_template = {
algorithm = "GOOGLE_SYMMETRIC_ENCRYPTION"
protection_level = "HSM"
protection_level = var.kms_protection_level

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is the only difference between the FRH and FRM networking configuration, I decided not to make a separate directory for FRM for this single change (and is consistent with how IL4 and IL5 share networking code)

@jmpugh
jmpugh requested a review from LanceWray July 24, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Extend Stellar Engine to support FedRAMP Moderate

1 participant