terraform.gcp.security.gcp-compute-disk-encryption.gcp-compute-disk-encryption
semgrep
Author
unknown
Download Count*
License
Ensure VM disks for critical VMs are encrypted with Customer Supplied Encryption Keys (CSEK)
Run Locally
Run in CI
Defintion
rules:
- id: gcp-compute-disk-encryption
patterns:
- pattern: |
resource "google_compute_disk" $ANYTHING {
...
}
- pattern-not-inside: |
resource "google_compute_disk" $ANYTHING {
...
disk_encryption_key {
raw_key = ...
}
...
}
- pattern-not-inside: |
resource "google_compute_disk" $ANYTHING {
...
disk_encryption_key {
kms_key_self_link = ...
}
...
}
message: Ensure VM disks for critical VMs are encrypted with Customer Supplied
Encryption Keys (CSEK)
languages:
- hcl
severity: WARNING
metadata:
owasp:
- A03:2017 - Sensitive Data Exposure
- A04:2021 - Insecure Design
cwe:
- "CWE-311: Missing Encryption of Sensitive Data"
technology:
- terraform
- gcp
category: security
references:
- https://docs.bridgecrew.io/docs/google-cloud-policy-index
subcategory:
- audit
likelihood: LOW
impact: LOW
confidence: LOW
license: Commons Clause License Condition v1.0[LGPL-2.1-only]
vulnerability_class:
- Cryptographic Issues
Examples
gcp-compute-disk-encryption.tf
# fail
# ruleid: gcp-compute-disk-encryption
resource "google_compute_disk" "fail" {
name = "test-disk"
type = "pd-ssd"
zone = "us-central1-a"
image = "debian-8-jessie-v20170523"
physical_block_size_bytes = 4096
}
# ok: gcp-compute-disk-encryption
resource "google_compute_disk" "success" {
name = "test-disk"
type = "pd-ssd"
zone = "us-central1-a"
image = "debian-8-jessie-v20170523"
physical_block_size_bytes = 4096
disk_encryption_key {
raw_key = "acXTX3rxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY-c="
}
}
# ok: gcp-compute-disk-encryption
resource "google_compute_disk" "success" {
name = "test-disk"
type = "pd-ssd"
zone = "us-central1-a"
image = "debian-8-jessie-v20170523"
physical_block_size_bytes = 4096
disk_encryption_key {
kms_key_self_link = google_kms_crypto_key.example-key.id
}
}
Short Link: https://sg.run/Rwdg