Skip to content

Commit

Permalink
aws/cert-manager: Tighten IAM permissions for cert-manager
Browse files Browse the repository at this point in the history
This change restricts which record types and domain prefixes
cert-manager is allowed to change for DNS01 acme challenges.

Only _acme-challenge.* TXT records may be created/updated/removed.

Implements kubernetes#15680
  • Loading branch information
andsens committed Mar 18, 2024
1 parent db26ad5 commit eb07883
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions pkg/model/components/addonmanifests/certmanager/iam.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,24 @@ func addCertManagerPermissions(b *iam.PolicyBuilder, p *iam.Policy) {

p.Statement = append(p.Statement, &iam.Statement{
Effect: iam.StatementEffectAllow,
Action: stringorset.Of("route53:ChangeResourceRecordSets",
"route53:ListResourceRecordSets",
),
Action: stringorset.Of("route53:ListResourceRecordSets"),
Resource: stringorset.Set(zoneResources),
})

p.Statement = append(p.Statement, &iam.Statement{
Effect: iam.StatementEffectAllow,
Action: stringorset.Of("route53:ChangeResourceRecordSets"),
Resource: stringorset.Set(zoneResources),
Condition: iam.Condition{
"ForAllValues:StringLike": map[string]interface{}{
"route53:ChangeResourceRecordSetsNormalizedRecordNames": []string{"_acme-challenge.*"},
},
"ForAllValues:StringEquals": map[string]interface{}{
"route53:ChangeResourceRecordSetsRecordTypes": []string{"TXT"},
},
},
})

p.Statement = append(p.Statement, &iam.Statement{
Effect: iam.StatementEffectAllow,
Action: stringorset.Set([]string{"route53:GetChange"}),
Expand Down

0 comments on commit eb07883

Please sign in to comment.