terraform.azure.security.keyvault.keyvault-ensure-key-expires.keyvault-ensure-key-expires
semgrep
Author
unknown
Download Count*
License
Ensure that the expiration date is set on all keys
Run Locally
Run in CI
Defintion
rules:
- id: keyvault-ensure-key-expires
message: Ensure that the expiration date is set on all keys
patterns:
- pattern: resource
- pattern-not-inside: |
resource "azurerm_key_vault_key" "..." {
...
expiration_date = "..."
...
}
- pattern-inside: |
resource "azurerm_key_vault_key" "..." {
...
}
metadata:
cwe:
- "CWE-262: Not Using Password Aging"
category: security
technology:
- terraform
- azure
references:
- https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/key_vault_key#expiration_date
- https://docs.microsoft.com/en-us/powershell/module/az.keyvault/update-azkeyvaultkey?view=azps-5.8.0#example-1--modify-a-key-to-enable-it--and-set-the-expiration-date-and-tags
subcategory:
- vuln
likelihood: LOW
impact: MEDIUM
confidence: MEDIUM
license: Commons Clause License Condition v1.0[LGPL-2.1-only]
vulnerability_class:
- Improper Authentication
languages:
- hcl
severity: INFO
Examples
keyvault-ensure-key-expires.tf
resource "azurerm_key_vault_key" "good_example" {
name = "generated-certificate"
key_vault_id = azurerm_key_vault.example.id
key_type = "RSA"
key_size = 2048
expiration_date = "1982-12-31T00:00:00Z"
key_opts = [
"decrypt",
"encrypt",
"sign",
"unwrapKey",
"verify",
"wrapKey",
]
}
# ruleid: keyvault-ensure-key-expires
resource "azurerm_key_vault_key" "bad_example" {
name = "generated-certificate"
key_vault_id = azurerm_key_vault.example.id
key_type = "RSA"
key_size = 2048
key_opts = [
"decrypt",
"encrypt",
"sign",
"unwrapKey",
"verify",
"wrapKey",
]
}
Short Link: https://sg.run/vq9A