Skip to content

Commit 1f96ac5

Browse files
committed
Add support for additional secure drift policy fields
1 parent c277875 commit 1f96ac5

8 files changed

+53
-26
lines changed

sysdig/data_source_sysdig_secure_drift_policy.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,18 @@ func createDriftPolicyDataSourceSchema() map[string]*schema.Schema {
4747
Computed: true,
4848
Elem: &schema.Resource{
4949
Schema: map[string]*schema.Schema{
50-
"id": ReadOnlyIntSchema(),
51-
"name": ReadOnlyStringSchema(),
52-
"description": DescriptionComputedSchema(),
53-
"tags": TagsSchema(),
54-
"version": VersionSchema(),
55-
"enabled": BoolComputedSchema(),
56-
"exceptions": ExceptionsComputedSchema(),
57-
"prohibited_binaries": ExceptionsComputedSchema(),
58-
"mounted_volume_drift_enabled": BoolComputedSchema(),
50+
"id": ReadOnlyIntSchema(),
51+
"name": ReadOnlyStringSchema(),
52+
"description": DescriptionComputedSchema(),
53+
"tags": TagsSchema(),
54+
"version": VersionSchema(),
55+
"enabled": BoolComputedSchema(),
56+
"exceptions": ExceptionsComputedSchema(),
57+
"prohibited_binaries": ExceptionsComputedSchema(),
58+
"process_based_exceptions": ExceptionsComputedSchema(),
59+
"process_based_prohibited_binaries": ExceptionsComputedSchema(),
60+
"mounted_volume_drift_enabled": BoolComputedSchema(),
61+
"use_regex": BoolComputedSchema(),
5962
},
6063
},
6164
},

sysdig/data_source_sysdig_secure_drift_policy_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,21 @@ resource "sysdig_secure_drift_policy" "policy_1" {
4747
rule {
4848
description = "Test Drift Rule Description"
4949
enabled = true
50+
mounted_volume_drift_enabled = true
51+
use_regex = true
5052
5153
exceptions {
5254
items = ["/usr/bin/sh"]
5355
}
5456
prohibited_binaries {
5557
items = ["/usr/bin/curl"]
5658
}
59+
process_based_exceptions {
60+
items = ["/usr/bin/curl"]
61+
}
62+
process_based_prohibited_binaries {
63+
items = ["/usr/bin/sh"]
64+
}
5765
}
5866
5967
actions {

sysdig/internal/client/v2/model.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ type DriftRuleDetails struct {
419419
ProhibitedBinaries *RuntimePolicyRuleList `json:"prohibitedBinaries"`
420420
Mode string `json:"mode"`
421421
MountedVolumeDriftEnabled bool `json:"mountedVolumeDriftEnabled"`
422+
UseRegex bool `json:"useRegex"`
422423
Details `json:"-"`
423424
}
424425

sysdig/resource_sysdig_secure_drift_policy.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ func resourceSysdigSecureDriftPolicy() *schema.Resource {
6767
"process_based_exceptions": ExceptionsSchema(),
6868
"process_based_prohibited_binaries": ExceptionsSchema(),
6969
"mounted_volume_drift_enabled": BoolSchema(),
70+
"use_regex": BoolSchema(),
7071
},
7172
},
7273
},

sysdig/resource_sysdig_secure_drift_policy_test.go

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,6 @@ resource "sysdig_secure_drift_policy" "sample" {
6767
prohibited_binaries {
6868
items = ["/usr/bin/curl"]
6969
}
70-
process_based_exceptions {
71-
items = ["/usr/bin/curl"]
72-
}
7370
}
7471
7572
actions {
@@ -96,16 +93,20 @@ resource "sysdig_secure_drift_policy" "sample" {
9693
description = "Test Drift Rule Description"
9794
9895
enabled = true
96+
use_regex = true
9997
10098
exceptions {
10199
items = ["/usr/bin/sh"]
102100
}
103101
prohibited_binaries {
104102
items = ["/usr/bin/curl"]
105103
}
106-
process_based_exceptions {
104+
process_based_exceptions {
107105
items = ["/usr/bin/curl"]
108-
}
106+
}
107+
process_based_prohibited_binaries {
108+
items = ["/usr/bin/sh"]
109+
}
109110
}
110111
111112
actions {
@@ -138,16 +139,17 @@ resource "sysdig_secure_drift_policy" "sample" {
138139
description = "Test Drift Rule Description"
139140
140141
enabled = true
142+
use_regex = true
141143
142144
exceptions {
143145
items = ["/usr/bin/sh"]
144146
}
145147
prohibited_binaries {
146148
items = ["/usr/bin/curl"]
147149
}
148-
process_based_exceptions {
150+
process_based_exceptions {
149151
items = ["/usr/bin/curl"]
150-
}
152+
}
151153
}
152154
153155
actions {}
@@ -177,9 +179,12 @@ resource "sysdig_secure_drift_policy" "sample" {
177179
prohibited_binaries {
178180
items = ["/usr/bin/curl"]
179181
}
180-
process_based_exceptions {
182+
process_based_exceptions {
181183
items = ["/usr/bin/curl"]
182-
}
184+
}
185+
process_based_prohibited_binaries {
186+
items = ["/usr/bin/sh"]
187+
}
183188
}
184189
185190
actions {
@@ -227,19 +232,23 @@ resource "sysdig_secure_drift_policy" "sample" {
227232
228233
rule {
229234
description = "Test Drift Rule Description"
230-
mounted_volume_drift_enabled = true
235+
231236
enabled = true
237+
mounted_volume_drift_enabled = true
232238
233239
exceptions {
234240
items = ["/usr/bin/sh"]
235241
}
236242
prohibited_binaries {
237243
items = ["/usr/bin/curl"]
238244
}
239-
process_based_exceptions {
245+
process_based_exceptions {
240246
items = ["/usr/bin/curl"]
241247
}
242-
}
248+
process_based_prohibited_binaries {
249+
items = ["/usr/bin/sh"]
250+
}
251+
}
243252
}
244253
`, name)
245254
}

sysdig/tfresource.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ func setTFResourcePolicyRulesDrift(d *schema.ResourceData, policy v2.PolicyRules
216216
"tags": rule.Tags,
217217
"enabled": enabled,
218218
"mounted_volume_drift_enabled": driftDetails.MountedVolumeDriftEnabled,
219+
"use_regex": driftDetails.UseRegex,
219220
}
220221

221222
if exceptionsBlock != nil {
@@ -498,6 +499,7 @@ func setPolicyRulesDrift(policy *v2.PolicyRulesComposite, d *schema.ResourceData
498499
}
499500

500501
mountedVolumeDriftEnabled := d.Get("rule.0.mounted_volume_drift_enabled").(bool)
502+
useRegex := d.Get("rule.0.use_regex").(bool)
501503

502504
rule := &v2.RuntimePolicyRule{
503505
// TODO: Do not hardcode the indexes
@@ -512,6 +514,7 @@ func setPolicyRulesDrift(policy *v2.PolicyRulesComposite, d *schema.ResourceData
512514
ProcessBasedExceptions: &processBasedExceptions,
513515
ProcessBasedDenylist: &processBasedProhibitedBinaries,
514516
MountedVolumeDriftEnabled: mountedVolumeDriftEnabled,
517+
UseRegex: useRegex,
515518
},
516519
}
517520

website/docs/d/secure_drift_policy.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,9 @@ The rule block is required and supports:
7878
* `items` - (Required) Specify comma separated list of exceptions, e.g. `/usr/bin/rm, /usr/bin/curl`.
7979
* `prohibited_binaries` - (Optional) A prohibited binary can be a known harmful binary or one that facilitates discovery of your environment.
8080
* `items` - (Required) Specify comma separated list of prohibited binaries, e.g. `/usr/bin/rm, /usr/bin/curl`.
81-
82-
81+
* `process_based_exceptions` - (Optional) List of processes that will be able to execute a drifted file
82+
* `items` - (Required) Specify comma separated list of processes, e.g. `/usr/bin/rm, /usr/bin/curl`.
83+
* `process_based_prohibited_binaries` - (Optional) List of processes that will be prohibited to execute a drifted file
84+
* `items` - (Required) Specify comma separated list of processes, e.g. `/usr/bin/rm, /usr/bin/curl`.
85+
* `mounted_volume_drift_enabled` - (Optional) Treat all binaries from mounted volumes as drifted. Default value is false/disabled.
86+
* `use_regex` - (Optional) Pass exceptions and prohibited binaries as regex strings. Requires agent version 13.2.0 and above

website/docs/r/secure_drift_policy.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,4 @@ The rule block is required and supports:
123123
* `process_based_prohibited_binaries` - (Optional) List of processes that will be prohibited to execute a drifted file
124124
* `items` - (Required) Specify comma separated list of processes, e.g. `/usr/bin/rm, /usr/bin/curl`.
125125
* `mounted_volume_drift_enabled` - (Optional) Treat all binaries from mounted volumes as drifted. Default value is false/disabled.
126-
127-
128-
126+
* `use_regex` - (Optional) Pass exceptions and prohibited binaries as regex strings. Requires agent version 13.2.0 and above

0 commit comments

Comments
 (0)