Skip to content

[aws_securityhub] Enable Identity Federation for agentless deployments - #20436

Draft
seanrathier wants to merge 5 commits into
elastic:mainfrom
seanrathier:aws_securityhub/identity-federation
Draft

[aws_securityhub] Enable Identity Federation for agentless deployments#20436
seanrathier wants to merge 5 commits into
elastic:mainfrom
seanrathier:aws_securityhub/identity-federation

Conversation

@seanrathier

@seanrathier seanrathier commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Proposed commit message

[aws_securityhub] Enable Identity Federation for agentless deployments

Add a var_groups credential selector to the aws_securityhub package,
offering Identity Federation (Cloud Connectors) on the agentless path
while preserving every existing credential method for agent-based
deployments. The CloudFormation template is rendered by the IaC
Provider at onboard time from the declared provider_permissions; no
static template URL is used.

Background

Part of https://github.com/elastic/ingest-dev/issues/8812aws_securityhub is the named exit criterion for expanding Identity Federation beyond the aws package.

Depends on #20435 (pipeline hygiene pre-landing): the format_version bump to 3.6.4 in this PR activates pipeline validators that #20435 satisfies. This PR is stacked on that branch and includes its commits until it merges.

What changed

  • format_version 3.5.0 → 3.6.4 (var_groups requires 3.6.0; provider_permissions requires 3.6.4)
  • Kibana and Agent version floors raised to ^9.4.0auth.aws cloud connector support in the CEL input requires Agent 9.4.0+. The previous floor was ^9.3.0, so no stack line is dropped.
  • var_groups credential selector (Setup Access) with six options: Identity Federation (agentless-only), Direct Access Keys (both modes), and Temporary Access Keys / Assume Role / Assume Role with External ID / Shared Credentials (agent-only, hidden in agentless)
  • New supports_identity_federation var wired to use_cloud_connectors in the CEL stream template's auth.aws block
  • provider_permissions declared on the cel input: securityhub:GetFindings — note the CEL program calls the GetFindingsV2 API (POST /findingsv2), but per the AWS API reference, "GetFindings and GetFindingsV2 both use securityhub:GetFindings in the Action element of an IAM policy statement"
  • iac_template_url wired as the fallback: Kibana renders via the IaC Provider first and opens this quick-create URL only when the render fails (422/502). It points at the incremental federated-identity-aws template (same S3 bucket/URL shape as the aws package's URL, version pinned to the Kibana floor minor). The fallback only functions once the template publishes to S3 with the Security Hub permissions included — that requires both Add CloudFormation template for Federated Identity (AWS) cloudbeat#7422 (the incremental GuardDuty-only baseline) and Add aws_securityhub permissions to the Federated Identity template cloudbeat#7588 (stacked on it, mirrors this PR's provider_permissions as the ElasticAwsSecurityHub policy).

Verification

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.

🤖 Generated with Claude Code

seanrathier and others added 4 commits July 31, 2026 13:52
Add tag fields to every processor in all aws_securityhub ingest
pipelines using elastic-package modify --modifiers pipeline-tag, and
update pipeline-level on_failure error messages to include
_ingest.pipeline per the SVR00009 linter rule. Both are requirements
that will be enforced when the package format_version is bumped to
3.6.x for Identity Federation support.

Also fix a pre-existing copy-paste bug surfaced by the tagging: the
pipeline_object_evidence pipeline processor in default.yml was tagged
pipeline_object_device, duplicating the device processor's tag.

Landing these changes separately keeps the upcoming format_version
bump PR small, following the precedent of elastic#19824 for the aws package.
No functional effect at format_version 3.5.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add a var_groups credential selector to the aws_securityhub package,
offering Identity Federation (Cloud Connectors) on the agentless path
while preserving every existing credential method for agent-based
deployments. The CloudFormation template is rendered by the IaC
Provider at onboard time from the declared provider_permissions; no
static template URL is used.

- Bump format_version to 3.6.4 (var_groups needs 3.6.0,
  provider_permissions needs 3.6.4)
- Raise Kibana and Agent floors to ^9.4.0 (auth.aws cloud connector
  support in the CEL input requires Agent 9.4.0+)
- Add supports_identity_federation var and the use_cloud_connectors
  hook in the CEL stream template
- Declare provider_permissions on the cel input: the GetFindingsV2
  API authorizes via securityhub:GetFindings per the AWS API reference

Depends on the pipeline hygiene pre-landing in elastic#20435.

Part of elastic/ingest-dev#8812.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Elastic Docs Style Checker (Vale)

No issues found on modified lines!


The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale.

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

Kibana renders the template via the IaC Provider first and falls back
to opening this quick-create URL when the render fails (422/502). Same
S3 bucket and URL shape as the aws package's existing URL, but pointing
at the incremental federated-identity-aws template, version pinned to
the package's Kibana floor minor. The fallback only functions once
elastic/cloudbeat#7422 merges and publishes the template to S3.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Changelog link mismatch — expected https://github.com/elastic/integrations/pull/20436 in the following file(s):

  • packages/aws_securityhub/changelog.yml

Tip

If expected, add the changelog-link-check:skip label to skip this check. Or, if an issue link was intended, use .../issues/<n> instead.

View Buildkite build
@seanrathier

@infra-vault-gh-plugin-prod

infra-vault-gh-plugin-prod Bot commented Jul 31, 2026

Copy link
Copy Markdown

💔 Build Failed

Failed CI Steps

History

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.

1 participant