Attackers Hijack AWS Bedrock Access Using Stolen IAM Credentials

· Original article ↗

Summary

Fortinet reports an AWS compromise in which a leaked, long-lived administrator IAM key was used to create an identity, subscribe to foundation models through Marketplace, and invoke them, charging inference costs to the victim. The article outlines logging and identity-

Key points

  • A leaked, long-lived AWS IAM key with AdministratorAccess was used to compromise an account.
  • The operator created a new IAM user, subscribed to foundation models through AWS Marketplace, and invoked them, generating charges for the victim.
  • LLMjacking abuses valid cloud credentials to consume hosted AI inference, with access potentially resold to others.
  • The activity can resemble legitimate API use; Fortinet recommends corroborating first-time Bedrock use with signals such as new identities or unfamiliar IPs.
  • Enable CloudTrail and, where feasible, Bedrock invocation logging; prefer short-lived, role-assumed credentials over broad, long-lived keys.
  • Fortinet lists detections covering IAM changes, new users, Marketplace agreements, Bedrock invocation logging, and service-specific credentials; several policies require explicit enablement.

Article Details

Attack Vectors
  • In the investigated incident, a leaked, long-lived IAM access key with AdministratorAccess permissions enabled compromise of an AWS account.
  • The operator created a new IAM user, subscribed to foundation models through CreateAgreementRequest/AcceptAgreementRequest, and invoked those models at the victim account's expense.
  • The article describes service-specific credential issuance for the new identity as a typical additional step in this attack class, not a confirmed step in the investigated incident.
  • The article identifies leaked access keys, exposed CI/CD secrets, and stolen local credentials as general prerequisites for this form of abuse. Hijacked inference access can be used directly or resold; resale was not confirmed in the investigated incident.
Defensive Notes
  • Enable CloudTrail on every account to reconstruct identity creation, credential issuance, subscriptions, and their sequence.
  • Enable Bedrock invocation logging where feasible. It is disabled by default and captures request-level details not captured by CloudTrail alone.
  • Treat long-lived IAM keys with broad permissions as tier-0 risks and prefer short-lived, role-assumed credentials where workloads permit.
  • Corroborate first-time Bedrock usage with additional signals such as a new identity, unfamiliar IP, enumeration behavior, or access-denied events rather than treating new usage alone as malicious.
  • Default-enabled, high-severity detections include lacework-global-12 for IAM policy changes, lacework-global-13 for traditional access-key changes, and lacework-global-2037 for deletion of Bedrock invocation logging.
  • Default-enabled, medium-severity detections include lacework-global-2906 for marketplace agreement creation or acceptance and lacework-global-2907 for service-specific credential creation or reset. Traditional access-key detection does not cover the separate service-specific credential API.
  • The default-enabled, medium-severity lacework-global-2038 detection alerts on individual Bedrock ThrottlingException events, not a volume threshold.
  • Explicitly enable lacework-global-14, the new-user detection, for accounts running AI workloads; it is available but disabled by default.
  • Explicitly enable Bedrock configuration policies lacework-global-1999 through 2002 and 2781 for accounts with Bedrock access. They do not require CloudTrail integration and need explicit enablement or inclusion in a custom framework to appear in compliance reporting.

MITRE ATT&CK

People

Vendors

Products

Related Articles