Skip to content

Commit e79ab0c

Browse files
ekristencorybekk
authored andcommitted
fix(secretsmanager-secret): filter aws managed secrets
1 parent 1d9dbda commit e79ab0c

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

resources/secretsmanager-secret.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package resources
22

33
import (
44
"context"
5+
"errors"
6+
"regexp"
57
"strings"
68

79
"github.com/gotidy/ptr"
@@ -19,6 +21,9 @@ import (
1921

2022
const SecretsManagerSecretResource = "SecretsManagerSecret"
2123

24+
var managedRegex = regexp.MustCompile("^([a-z-]+)!.*$")
25+
var errAWSManaged = errors.New("cannot delete AWS managed secret")
26+
2227
func init() {
2328
registry.Register(&registry.Registration{
2429
Name: SecretsManagerSecretResource,
@@ -128,6 +133,20 @@ func (r *SecretsManagerSecret) Remove(_ context.Context) error {
128133
return err
129134
}
130135

136+
func (r *SecretsManagerSecret) Filter() error {
137+
if managedRegex.MatchString(*r.Name) {
138+
return errAWSManaged
139+
}
140+
141+
for _, tag := range r.tags {
142+
if *tag.Key == "aws:secretsmanager:owningService" {
143+
return errAWSManaged
144+
}
145+
}
146+
147+
return nil
148+
}
149+
131150
func (r *SecretsManagerSecret) Properties() types.Properties {
132151
properties := types.NewProperties()
133152
properties.Set("PrimaryRegion", r.PrimaryRegion)

0 commit comments

Comments
 (0)