RELOPS-2530: decommission Splunk Azure IaC (replaced by CrowdStrike NGSIEM) - #325
Merged
Merged
Conversation
CrowdStrike Falcon Next-Gen SIEM has replaced Splunk. RELOPS-2331 stood the CrowdStrike pipeline up alongside Splunk and deliberately kept the Splunk connection active through the transition; that transition is now complete, so the Splunk log-forwarding infrastructure is redundant. Removed: - terraform/azure_fx_nonci/splunk.tf, covering rg-splunk-eventhub, the mozsplunkeventhub Event Hub namespace, the entralogs and activitylogs hubs, the per-subscription activity-log diagnostic settings, and the Entra tenant diagnostic setting - terraform/azure_ad/sp_splunk.tf, the sp-infosec-splunkeventhub app registration and service principal - terraform/azure_ad/sp_splunk_logging.tf, the "Splunk Logging" app registration and service principal - azurerm_role_assignment.splunkeventhub from terraform/azure_ad/rbac.tf - the now-orphaned azure_subscriptions list from terraform/azure_fx_nonci/terraform.tfvars, whose only consumer was splunk.tf Deliberately preserved, since all three are shared with CrowdStrike, packer or fuzzing: data.azuread_user.jmoss, data.azuread_group.relops, and var.azure_subscriptions in azure_ad/rbac.tf, which still feeds billing_reader_releng and infrasec_reader. Plans are pure destroys with no collateral: azure_fx_nonci 0 to add, 0 to change, 10 to destroy azure_ad 0 to add, 0 to change, 10 to destroy Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jwmossmoz
approved these changes
Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
RELOPS-2530 — remove the Splunk log-forwarding infrastructure from the Azure Terraform.
RELOPS-2331 stood up log streaming into SecOps' new SIEM (CrowdStrike Falcon Next-Gen SIEM) via Event Hubs, deliberately keeping the Splunk connection active through the transition. CrowdStrike has now replaced Splunk, so this pipeline is redundant.
The CrowdStrike replacement in
azure_infrasec/crowdstrike.tfis untouched by this PR and carries the same 15 Entra log categories, so log coverage is retained. It's also the better-built of the two: it enumerates subscriptions dynamically off the tenant root management group, so new subscriptions onboard automatically. Splunk used a hardcoded list that had already drifted — 0DIN and Fuzzing activity logs were reaching CrowdStrike but not Splunk.Removed
terraform/azure_fx_nonci/splunk.tfrg-splunk-eventhub, themozsplunkeventhubnamespace, theentralogsandactivitylogshubs, the per-subscription activity-log diagnostic settings, and the Entra tenant diagnostic settingterraform/azure_ad/sp_splunk.tfsp-infosec-splunkeventhubapp registration + service principalterraform/azure_ad/sp_splunk_logging.tfterraform/azure_ad/rbac.tfazurerm_role_assignment.splunkeventhubterraform/azure_fx_nonci/terraform.tfvarsazure_subscriptionslist — its only consumer wassplunk.tfgrep -rniE splunkacross the whole repo now returns nothing.Deliberately preserved
All three are shared with CrowdStrike, packer or fuzzing — removing them would break unrelated resources:
data.azuread_user.jmoss, declared insp_packer_worker_images.tf— still used bysp_crowdstrike.tfdata.azuread_group.relops, declared inkitchen-ronin-puppet.tf— still used byfuzzing.tfandsp_firefox_wns.tfvar.azure_subscriptionsinazure_ad/rbac.tf— still feedsbilling_reader_relengandinfrasec_readerPlans
Pure destroys — nothing added, nothing modified, and no CrowdStrike resource appears in either plan.
terraform/azure_fx_nonciterraform/azure_adazure_addestroys 6 role assignments whileazure_fx_noncidestroys 5 diagnostic settings — that asymmetry is the pre-existing coverage drift noted above (azure_ad's list included 0DIN,azure_fx_nonci's did not).terraform plan —
terraform/azure_fx_nonci(0 to add, 0 to change, 10 to destroy)terraform plan —
terraform/azure_ad(0 to add, 0 to change, 10 to destroy)Before applying
This destroys live infrastructure, not just code. Worth confirming first:
entralogs/activitylogshubs.AuditLog.Read.All,Directory.Read.All,Policy.Read.All,User.Read.All. Terraform cannot see consumers outside Azure, so confirm nothing else authenticates as it.Verification
terraform validateandfmtclean on both changed workspaces;azure_fx_noncinow validates with zero warnings, as the deprecation noise came fromsplunk.tfazuread_service_principal.splunkeventhub,azurerm_eventhub_namespace.splunk,rg-splunk-eventhub,mozsplunkeventhub,sp-infosec-splunkeventhub, and both hardcoded app/scope GUIDs)Note for reviewers
This should land before #324 (RELOPS-2520). That PR modifies
splunk.tf, which this one deletes — it will be rebased to drop its splunk hunk once this merges.🤖 Generated with Claude Code