AWS STS GetFederationToken with AdministratorAccess in Request
Identifies successful calls to AWS STS GetFederationToken where request parameters reference AdministratorAccess. This API returns temporary security credentials for a federated user with permissions bounded by the calling IAM user and any inline session policy passed in the request. Supplying or referencing the AWS managed AdministratorAccess policy (or an equivalent string in the policy payload) can grant broadly privileged temporary credentials and may indicate privilege abuse or dangerous automation.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/04/08"
3integration = ["aws"]
4maturity = "production"
5updated_date = "2026/04/08"
6
7[rule]
8author = ["Elastic"]
9description = """
10Identifies successful calls to AWS STS GetFederationToken where request parameters reference AdministratorAccess. This API
11returns temporary security credentials for a federated user with permissions bounded by the calling IAM user and any
12inline session policy passed in the request. Supplying or referencing the AWS managed AdministratorAccess policy (or an
13equivalent string in the policy payload) can grant broadly privileged temporary credentials and may indicate privilege
14abuse or dangerous automation.
15"""
16false_positives = [
17 """
18 Highly unusual for legitimate workflows to embed or reference full administrator access in GetFederationToken session
19 policies; if found, it is often legacy or misconfigured tooling. Confirm with the owning team and replace with
20 least-privilege session policies. Tune only after documented approval.
21 """,
22]
23from = "now-6m"
24index = ["filebeat-*", "logs-aws.cloudtrail-*"]
25language = "kuery"
26license = "Elastic License v2"
27name = "AWS STS GetFederationToken with AdministratorAccess in Request"
28note = """## Triage and analysis
29
30### Investigating AWS STS GetFederationToken with AdministratorAccess in Request
31
32`GetFederationToken` issues temporary credentials (typically up to 36 hours) for a **federated user name** you specify.
33The effective permissions are the **intersection** of the IAM user’s permissions and the optional session policy in the
34request. Including `AdministratorAccess` in `Policy` (or a policy ARN / JSON that names it) is almost always
35over-privileged for federation use cases. For first-time `GetFederationToken` usage without this policy signal, see
36**AWS First Occurrence of STS GetFederationToken Request by User**.
37
38**Note:** AWS documents that `GetFederationToken` must be called with **long-term IAM user credentials** (not role
39temporary credentials). Pivot on `aws.cloudtrail.user_identity.arn` and `access_key_id` accordingly.
40
41#### Possible investigation steps
42
43- Parse `aws.cloudtrail.request_parameters` for `name`, `policy`, and `durationSeconds`.
44- Confirm whether the IAM user should perform federation or if the key may be compromised.
45- Search CloudTrail for subsequent events using `response_elements.credentials.accessKeyId` from the same response (if
46 logged).
47- Correlate with IAM changes, data-plane access, or other STS calls from the same `source.ip` in a ±30 minute window.
48
49### False positive analysis
50
51- Typos or test accounts in non-production: still validate and narrow session policies.
52
53### Response and remediation
54
55- Revoke or rotate the IAM user access keys involved; enforce least privilege on the user and replace broad session
56 policies.
57- [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)
58
59### Additional information
60
61- [AWS STS temporary security credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)
62"""
63references = [
64 "https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html",
65 "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html",
66]
67risk_score = 73
68rule_id = "f2a3b4c5-d6e7-4f89-a012-b3c4d5e6f789"
69severity = "high"
70tags = [
71 "Domain: Cloud",
72 "Domain: Identity",
73 "Data Source: AWS",
74 "Data Source: Amazon Web Services",
75 "Data Source: AWS STS",
76 "Use Case: Threat Detection",
77 "Tactic: Privilege Escalation",
78 "Tactic: Lateral Movement",
79 "Resources: Investigation Guide",
80]
81timestamp_override = "event.ingested"
82type = "query"
83
84query = '''
85event.dataset: "aws.cloudtrail"
86 and event.provider: "sts.amazonaws.com"
87 and event.action: "GetFederationToken"
88 and event.outcome: "success"
89 and aws.cloudtrail.request_parameters: *AdministratorAccess*
90'''
91
92[rule.investigation_fields]
93field_names = [
94 "@timestamp",
95 "user.name",
96 "user_agent.original",
97 "source.ip",
98 "aws.cloudtrail.user_identity.arn",
99 "aws.cloudtrail.user_identity.type",
100 "aws.cloudtrail.user_identity.access_key_id",
101 "event.action",
102 "event.outcome",
103 "cloud.account.id",
104 "cloud.region",
105 "aws.cloudtrail.request_parameters",
106 "aws.cloudtrail.response_elements",
107]
108
109[[rule.threat]]
110framework = "MITRE ATT&CK"
111
112[[rule.threat.technique]]
113id = "T1548"
114name = "Abuse Elevation Control Mechanism"
115reference = "https://attack.mitre.org/techniques/T1548/"
116
117[[rule.threat.technique.subtechnique]]
118id = "T1548.005"
119name = "Temporary Elevated Cloud Access"
120reference = "https://attack.mitre.org/techniques/T1548/005/"
121
122[rule.threat.tactic]
123id = "TA0004"
124name = "Privilege Escalation"
125reference = "https://attack.mitre.org/tactics/TA0004/"
126
127[[rule.threat]]
128framework = "MITRE ATT&CK"
129
130[[rule.threat.technique]]
131id = "T1550"
132name = "Use Alternate Authentication Material"
133reference = "https://attack.mitre.org/techniques/T1550/"
134
135[[rule.threat.technique.subtechnique]]
136id = "T1550.001"
137name = "Application Access Token"
138reference = "https://attack.mitre.org/techniques/T1550/001/"
139
140[rule.threat.tactic]
141id = "TA0008"
142name = "Lateral Movement"
143reference = "https://attack.mitre.org/tactics/TA0008/"
Triage and analysis
Investigating AWS STS GetFederationToken with AdministratorAccess in Request
GetFederationToken issues temporary credentials (typically up to 36 hours) for a federated user name you specify.
The effective permissions are the intersection of the IAM user’s permissions and the optional session policy in the
request. Including AdministratorAccess in Policy (or a policy ARN / JSON that names it) is almost always
over-privileged for federation use cases. For first-time GetFederationToken usage without this policy signal, see
AWS First Occurrence of STS GetFederationToken Request by User.
Note: AWS documents that GetFederationToken must be called with long-term IAM user credentials (not role
temporary credentials). Pivot on aws.cloudtrail.user_identity.arn and access_key_id accordingly.
Possible investigation steps
- Parse
aws.cloudtrail.request_parametersforname,policy, anddurationSeconds. - Confirm whether the IAM user should perform federation or if the key may be compromised.
- Search CloudTrail for subsequent events using
response_elements.credentials.accessKeyIdfrom the same response (if logged). - Correlate with IAM changes, data-plane access, or other STS calls from the same
source.ipin a ±30 minute window.
False positive analysis
- Typos or test accounts in non-production: still validate and narrow session policies.
Response and remediation
- Revoke or rotate the IAM user access keys involved; enforce least privilege on the user and replace broad session policies.
- GetFederationToken
Additional information
References
Related rules
- AWS STS Role Chaining
- AWS EC2 CreateKeyPair by New Principal from Non-Cloud AS Organization
- AWS EC2 Instance Profile Associated with Running Instance
- AWS EC2 Role GetCallerIdentity from New Source AS Organization
- AWS IAM Customer Managed Policy Version Created or Default Version Set