Skip to content

[DEV-14468] Update modules to handle customer IAM restrictions#551

Merged
ashmuck merged 4 commits intomainfrom
DEV-14468
Mar 25, 2026
Merged

[DEV-14468] Update modules to handle customer IAM restrictions#551
ashmuck merged 4 commits intomainfrom
DEV-14468

Conversation

@ashmuck
Copy link
Copy Markdown
Contributor

@ashmuck ashmuck commented Mar 24, 2026

This will only apply on customer hosted clusters.


Note

Medium Risk
Updates core Terraform modules for EKS, S3, and FSx with new security/access toggles; misconfiguration could affect cluster access or networking/security group behavior on customer-hosted deployments.

Overview
Updates Terraform to better support customer-hosted IAM/security restrictions by upgrading the indico-aws-buckets, indico-aws-fsx, and indico-aws-eks-cluster modules.

Adds new configuration knobs to reduce required permissions and tighten defaults: S3 can now enable Public Access Block (s3_enable_public_access_block), FSx can toggle its backup lambda (enable_backup_lambda), and EKS now supports optional additional access entries plus the ability to create vs reuse cluster/node security groups (create_cluster_security_group, create_node_security_group).

Written by Cursor Bugbot for commit a0561ca. This will update automatically on new commits. Configure here.

@ashmuck ashmuck requested review from a team, NathanOkolita and ltellesfl March 24, 2026 14:20
enable_loki_logging = var.enable_loki_logging
cleanup_noncurrent_days = var.s3_cleanup_noncurrent_days
retain_backup_days = var.s3_retain_backup_days
include_pgbackup = var.include_pgbackup
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Disabling pgbackup now breaks pgBackRest S3 bucket reference

Medium Severity

Passing include_pgbackup to the s3-storage module is new — previously the module always created the pgbackup bucket regardless of this flag. Now when include_pgbackup = false, the bucket won't be created, but application.tf unconditionally configures crunchy-postgres pgBackRestConfig with local.environment_pgbackup_s3_bucket_name (which becomes the string "null" via coalesce). This means PostgreSQL backups will silently target a nonexistent bucket, causing backup failures with no corresponding config guard.

Additional Locations (1)
Fix in Cursor Fix in Web

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This only applies if either intake or insights are enabled

@ashmuck ashmuck requested a review from a team March 24, 2026 14:29
Copy link
Copy Markdown
Contributor

@ltellesfl ltellesfl left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Copy Markdown
Contributor

@ltellesfl ltellesfl left a comment

Choose a reason for hiding this comment

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

lgtm

@ashmuck ashmuck merged commit f4a6ea2 into main Mar 25, 2026
19 of 20 checks passed
@ashmuck ashmuck deleted the DEV-14468 branch March 25, 2026 18:23
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

enable_loki_logging = var.enable_loki_logging
cleanup_noncurrent_days = var.s3_cleanup_noncurrent_days
retain_backup_days = var.s3_retain_backup_days
include_pgbackup = var.include_pgbackup
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pgbackup bucket created when intake/insights both disabled

Medium Severity

The include_pgbackup parameter is passed unconditionally as var.include_pgbackup (which defaults to true), but the pgbackup S3 bucket is only consumed by pgBackRest configs for intake and insights Crunchy Postgres instances. When neither ipa_enabled nor insights_enabled is true, this creates an unnecessary bucket. On customer-hosted clusters with IAM restrictions (the purpose of this PR), creating unneeded S3 resources could fail or violate least-privilege policies. The value likely needs to be gated on var.ipa_enabled || var.insights_enabled.

Fix in Cursor Fix in Web

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.

2 participants