How AWS Security Hub Now Cross-Pollinates Cloud Vulnerabilities with Azure
Are you struggling with multi-cloud security visibility? This post provides a deep dive into AWS Security Hub's new cross-cloud monitoring capabilities
Multi-cloud visibility typically requires stitching together fragile API polling scripts or paying a premium for third-party overlays. Native AWS tools can now ingest Azure vulnerabilities directly without a middleman agent. You can centralize threat detection for hybrid workloads natively within AWS Security Hub.
TL;DR: AWS Security Hub now natively ingests Azure security findings, eliminating the need for third-party CSPM aggregation. By configuring the new cross-cloud connectors and running
aws securityhub get-findings, teams can unify risk auditing across hybrid architectures. This post details the setup, the architecture, and how GuardDuty now protects Bedrock workloads.
What you’ll walk away with:
- Configure Security Hub to receive Azure Defender vulnerability data via OIDC.
- Query hybrid alerts using exact
aws securityhub get-findingsparameters. - Decide between multi-cloud ingestion patterns vs Azure Arc capabilities.
- Enable GuardDuty AI Protection for Amazon Bedrock and SageMaker.
How Does AWS Security Hub Ingest Findings From Azure?
AWS Security Hub ingests Azure findings through a direct, agentless OIDC trust established between AWS Identity and Access Management (IAM) and Microsoft Entra ID. Once authenticated, AWS periodically pulls Defender for Cloud alerts and maps them into the AWS Security Finding Format (ASFF), avoiding legacy API polling.
This process represents modern Cloud Security Posture Management (CSPM). CSPM is a class of automated security tools that continuously monitor cloud infrastructures to detect misconfigurations, compliance violations, and vulnerabilities. Historically, you had to deploy specific agents or rely on expensive external platforms to aggregate this data.
Now, Security Hub performs the translation natively. By establishing federated trust, AWS eliminates the need to store long-lived Azure credentials inside AWS Secrets Manager.
flowchart LR
Entra["Microsoft Entra ID"] -->|"OIDC Trust"| IAM["AWS IAM"]
IAM -->|"Assumes Role"| Hub["AWS Security Hub"]
Defender["Azure Defender"] -->|"Pulls Alerts"| Hub
Hub -->|"ASFF Format"| EventBridge["Amazon EventBridge"]
This agentless architecture contrasts heavily with the approaches detailed in Azure Arc’s Hybrid Cloud Evolution: A Look at the 2026 Landscape. While Arc focuses on deep, agent-based management of compute resources, Security Hub’s connector operates purely at the API control plane level.
Use OIDC federation instead of long-lived service principal credentials for cross-cloud trust.
How Do You Configure the Azure Connector For Security Hub?
You configure the Azure connector by creating an AWS IAM role with a web identity provider linked to your Entra ID tenant ID, then registering the Azure subscription in Security Hub. This setup dictates that AWS assumes a specific role to query the Azure Resource Graph and Defender APIs.
You must run these commands using exactly azure-cli: 2.61 and aws-cli: 2.14. Older versions lack the updated ASFF schema definitions required for cross-cloud resource tagging. First, create the Entra ID application and grant it the required read access to your subscription.
1
2
az ad app create --display-name aws-security-hub-connector
az role assignment create --role "Security Reader" --assignee 00000000-0000-0000-0000-000000000000 --scope /subscriptions/11111111-1111-1111-1111-111111111111
(Replace the zeroed UUID with your actual App ID and the ones with your Azure Subscription ID)
Next, configure Security Hub to start polling the new integration.
1
aws securityhub create-finding-aggregator --region us-east-1 --region-linking-mode ALL_REGIONS
1
2
3
4
{
"FindingAggregatorArn": "arn:aws:securityhub:us-east-1:123456789012:finding-aggregator/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"RegionLinkingMode": "ALL_REGIONS"
}
Follow this exact setup checklist before verifying the connection:
- Register the Entra ID OIDC endpoint in AWS IAM as a Web Identity Provider.
-
Assign the Azure
Security Readerrole to the federated application. - Enable the cross-region aggregator in AWS Security Hub.
- Implement guardrails as discussed in Terraform Policy as Code: Enforcing Compliance with AI-Powered Guardrails to prevent misconfigurations locally.
Verify your Entra ID app registration has the exact
Security.Read.Allgraph permission before testing the AWS connector.
How Can You Query Multi-Cloud Vulnerabilities via AWS CLI?
You query multi-cloud vulnerabilities by passing the CompanyName or ProductFields filters directly to the aws securityhub get-findings command. Security Hub automatically tags all Azure-originated alerts with specific attributes, allowing you to isolate hybrid infrastructure risks from your native AWS alerts instantly.
For example, imagine a fictional team at Aicademy tracking down critical Azure storage misconfigurations directly from their AWS jump host. They can isolate external findings by filtering for the specific integration ID.
1
2
3
aws securityhub get-findings \
--filters '{"CompanyName":[{"Value":"Microsoft","Comparison":"EQUALS"}], "RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}]}' \
--max-items 1
Click to view the verbose ASFF JSON output for an Azure finding
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
"Findings": [
{
"SchemaVersion": "2018-10-08",
"Id": "azure/subscription/11111111/resourceGroups/aicademy-prod/providers/Microsoft.Storage/storageAccounts/aicademydatalake",
"ProductArn": "arn:aws:securityhub:us-east-1::product/microsoft/defender",
"GeneratorId": "azure-defender-storage-encryption",
"AwsAccountId": "123456789012",
"Types": [
"Software and Configuration Checks/Vulnerabilities/CVE"
],
"FirstObservedAt": "2026-08-14T15:22:11Z",
"UpdatedAt": "2026-08-14T15:22:11Z",
"Severity": {
"Product": 70,
"Label": "HIGH",
"Normalized": 70
},
"Title": "Azure Storage Account should use customer-managed keys for encryption",
"Description": "Storage accounts should be configured with customer-managed keys to maintain full control over the encryption of data at rest.",
"Resources": [
{
"Type": "Azure::Storage::StorageAccount",
"Id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/aicademy-prod/providers/Microsoft.Storage/storageAccounts/aicademydatalake",
"Partition": "azure",
"Region": "eastus"
}
],
"RecordState": "ACTIVE"
}
]
}
This unified query structure simplifies incident response. Analysts do not need to switch context between the AWS Management Console and the Azure Portal to view active threats.
Always filter
get-findingsbyRecordState=ACTIVEto avoid auditing resolved or suppressed alerts.
Should You Route Multi-Cloud Alerts to AWS Security Hub or Azure Defender?
You should route multi-cloud alerts to the platform where your incident response automation and core security information and event management (SIEM) tools currently reside. If your response playbooks rely on AWS Step Functions or EventBridge, centralize in Security Hub; if you use Azure Sentinel heavily, route to Azure Defender.
Choosing the right centralization point dictates your egress costs and operational overhead. Exporting all AWS findings to Azure incurs different architectural constraints than pulling Azure findings into AWS.
flowchart TD
Start{"Where is the SIEM?"}
Start -->|"AWS Hosted"| RouteAWS["Route to AWS Security Hub"]
Start -->|"Azure Hosted"| RouteAzure["Route to Azure Defender"]
Start -->|"Third Party SIEM"| Export["Export via EventBridge / Event Hubs"]
| Feature | AWS Security Hub | Azure Defender | Winner / Best For |
|---|---|---|---|
| Agentless Ingestion | Yes (via OIDC) | Yes (via Azure Arc APIs) | Tie |
| Custom Actions | Amazon EventBridge | Azure Logic Apps | Matches specific SIEM |
| Finding Format | ASFF (JSON) | Resource Graph (KQL) | Security Hub (Standardized) |
| AI Threat Detection | GuardDuty Integration | Defender for AI | Security Hub (for Bedrock) |
If you maintain a truly balanced multi-cloud footprint, standardize on the ASFF schema in Security Hub. It scales more predictably when building custom automation scripts.
Default to centralizing alerts in the same cloud environment that hosts your primary SIEM to reduce cross-cloud data egress costs.
How Does GuardDuty Protect Bedrock and SageMaker Workloads?
GuardDuty protects Bedrock and SageMaker workloads by analyzing AWS CloudTrail management events and data plane API logs to identify anomalous AI model access patterns. It specifically flags suspicious inference requests, unexpected model deployments, and automated data exfiltration attempts targeting your generative AI infrastructure.
Traditional network monitoring fails to detect prompt injection or model theft because these attacks look like legitimate HTTPS traffic. Proper visibility requires analyzing the specialized context of the AI workload, a concept heavily explored in Optimizing Multi-Cloud Networking for AI Workloads: A 2026 Guide. GuardDuty solves this by mapping API behaviors against established threat intelligence baselines.
You must explicitly update your GuardDuty detectors to enable this feature, as it is disabled by default on existing accounts.
1
2
3
4
5
6
7
8
9
10
11
12
{
"Features": [
{
"Name": "S3_DATA_EVENTS",
"Status": "ENABLED"
},
+ {
+ "Name": "MACHINE_LEARNING_PROTECTION",
+ "Status": "ENABLED"
+ }
]
}
Once enabled, GuardDuty routes these specific ML findings directly into Security Hub. If an external actor uses compromised Azure credentials to pivot and query your Bedrock models, Security Hub displays the initial Azure identity breach alongside the Bedrock data exfiltration event.
Enable GuardDuty’s AI Protection feature explicitly; it is not activated by default on existing detectors.
Bottom Line
AWS Security Hub’s ability to ingest Azure vulnerabilities natively changes how lean teams manage hybrid risk. You no longer require heavy, agent-based overlays to maintain visibility across two primary clouds. Activate the OIDC integration today to centralize your active threats and immediately enable GuardDuty AI Protection if your developers are experimenting with Bedrock.
FAQ
What is the required AWS CLI version for configuring Security Hub’s Azure integration?
You need aws-cli version 2.14 or newer. Older versions lack the updated ASFF schema definitions required for cross-cloud resource tagging.
Does AWS Security Hub pull Azure logs or just security findings?
It only pulls analyzed security findings from Microsoft Defender for Cloud. It does not ingest raw flow logs or raw Azure Monitor logs.
How frequently does Security Hub poll Azure for new vulnerabilities?
By default, the cross-cloud connector queries the Azure APIs every 6 hours. This interval cannot currently be reduced below the default threshold.
Can Security Hub automatically remediate Azure misconfigurations?
No, it provides visibility and alerting only. To auto-remediate, you must forward the Security Hub finding to an EventBridge rule that triggers an external Azure automation runbook.
What is the cost of ingesting Azure findings into AWS Security Hub?
Findings ingested from external sources incur the standard Security Hub ingestion fee per 10,000 findings. There is no premium upcharge for cross-cloud origin data.
Further Reading
- https://aws.amazon.com/blogs/security/icymi-july-2026-aws-security/
- https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-integrations.html
🚀 Ready to get hands-on? Spin up an interactive AI or Kubernetes Sandbox at Aicademy Labs for free.
