Skip to content

Commit 2359a03

Browse files
fix: Add kms:decrypt policy for External Secret (#349)
Co-authored-by: Bryant Biggs <[email protected]>
1 parent a49f767 commit 2359a03

File tree

5 files changed

+16
-1
lines changed

5 files changed

+16
-1
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/antonbabenko/pre-commit-terraform
3-
rev: v1.77.0
3+
rev: v1.77.1
44
hooks:
55
- id: terraform_fmt
66
- id: terraform_validate

examples/iam-role-for-service-accounts-eks/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ module "external_secrets_irsa_role" {
137137
attach_external_secrets_policy = true
138138
external_secrets_ssm_parameter_arns = ["arn:aws:ssm:*:*:parameter/foo"]
139139
external_secrets_secrets_manager_arns = ["arn:aws:secretsmanager:*:*:secret:bar"]
140+
external_secrets_kms_key_arns = ["arn:aws:kms:*:*:key/1234abcd-12ab-34cd-56ef-1234567890ab"]
140141

141142
oidc_providers = {
142143
ex = {

modules/iam-role-for-service-accounts-eks/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ No modules.
204204
| <a name="input_create_role"></a> [create\_role](#input\_create\_role) | Whether to create a role | `bool` | `true` | no |
205205
| <a name="input_ebs_csi_kms_cmk_ids"></a> [ebs\_csi\_kms\_cmk\_ids](#input\_ebs\_csi\_kms\_cmk\_ids) | KMS CMK IDs to allow EBS CSI to manage encrypted volumes | `list(string)` | `[]` | no |
206206
| <a name="input_external_dns_hosted_zone_arns"></a> [external\_dns\_hosted\_zone\_arns](#input\_external\_dns\_hosted\_zone\_arns) | Route53 hosted zone ARNs to allow External DNS to manage records | `list(string)` | <pre>[<br> "arn:aws:route53:::hostedzone/*"<br>]</pre> | no |
207+
| <a name="input_external_secrets_kms_key_arns"></a> [external\_secrets\_kms\_key\_arns](#input\_external\_secrets\_kms\_key\_arns) | List of KMS Key ARNs that are used by Secrets Manager that contain secrets to mount using External Secrets | `list(string)` | <pre>[<br> "arn:aws:kms:*:*:key/*"<br>]</pre> | no |
207208
| <a name="input_external_secrets_secrets_manager_arns"></a> [external\_secrets\_secrets\_manager\_arns](#input\_external\_secrets\_secrets\_manager\_arns) | List of Secrets Manager ARNs that contain secrets to mount using External Secrets | `list(string)` | <pre>[<br> "arn:aws:secretsmanager:*:*:secret:*"<br>]</pre> | no |
208209
| <a name="input_external_secrets_ssm_parameter_arns"></a> [external\_secrets\_ssm\_parameter\_arns](#input\_external\_secrets\_ssm\_parameter\_arns) | List of Systems Manager Parameter ARNs that contain secrets to mount using External Secrets | `list(string)` | <pre>[<br> "arn:aws:ssm:*:*:parameter/*"<br>]</pre> | no |
209210
| <a name="input_force_detach_policies"></a> [force\_detach\_policies](#input\_force\_detach\_policies) | Whether policies should be detached from this role when destroying | `bool` | `true` | no |

modules/iam-role-for-service-accounts-eks/policies.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,13 @@ data "aws_iam_policy_document" "external_secrets" {
458458
]
459459
resources = var.external_secrets_secrets_manager_arns
460460
}
461+
462+
statement {
463+
actions = [
464+
"kms:Decrypt"
465+
]
466+
resources = var.external_secrets_kms_key_arns
467+
}
461468
}
462469

463470
resource "aws_iam_policy" "external_secrets" {

modules/iam-role-for-service-accounts-eks/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,12 @@ variable "external_secrets_secrets_manager_arns" {
164164
default = ["arn:aws:secretsmanager:*:*:secret:*"]
165165
}
166166

167+
variable "external_secrets_kms_key_arns" {
168+
description = "List of KMS Key ARNs that are used by Secrets Manager that contain secrets to mount using External Secrets"
169+
type = list(string)
170+
default = ["arn:aws:kms:*:*:key/*"]
171+
}
172+
167173
# FSx Lustre CSI
168174
variable "attach_fsx_lustre_csi_policy" {
169175
description = "Determines whether to attach the FSx for Lustre CSI Driver IAM policy to the role"

0 commit comments

Comments
 (0)