Skip to content

Commit 4d2b1b6

Browse files
tas50claude
andcommitted
🐛 Fix standardNameFromArn to handle ruleset/ prefix
CIS standards use "ruleset/" instead of "standards/" in their ARN (e.g., arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/...). Handle both prefixes so all standard names are human-readable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fcf0bcb commit 4d2b1b6

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

providers/aws/resources/aws_securityhub.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -521,17 +521,23 @@ func (a *mqlAwsSecurityhubInsightResult) id() (string, error) {
521521
}
522522

523523
// standardNameFromArn extracts a human-readable name from a Security Hub standard ARN.
524-
// e.g. "arn:aws:securityhub:::standards/aws-foundational-security-best-practices/v/1.0.0"
525-
// becomes "aws-foundational-security-best-practices".
524+
// Handles both "standards/" and "ruleset/" prefixes:
525+
//
526+
// "arn:aws:securityhub:::standards/aws-foundational-security-best-practices/v/1.0.0"
527+
// → "aws-foundational-security-best-practices"
528+
// "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"
529+
// → "cis-aws-foundations-benchmark"
526530
func standardNameFromArn(arn string) string {
527-
const prefix = "standards/"
528-
idx := strings.Index(arn, prefix)
529-
if idx == -1 {
530-
return arn
531-
}
532-
name := arn[idx+len(prefix):]
533-
if slash := strings.Index(name, "/"); slash != -1 {
534-
name = name[:slash]
531+
for _, prefix := range []string{"standards/", "ruleset/"} {
532+
idx := strings.Index(arn, prefix)
533+
if idx == -1 {
534+
continue
535+
}
536+
name := arn[idx+len(prefix):]
537+
if slash := strings.Index(name, "/"); slash != -1 {
538+
name = name[:slash]
539+
}
540+
return name
535541
}
536-
return name
542+
return arn
537543
}

0 commit comments

Comments
 (0)