20
20
def create_source (organization_id ):
21
21
"""Create a new findings source. """
22
22
# [START securitycenter_create_source]
23
- # [START create_source]
24
23
from google .cloud import securitycenter
25
24
26
25
client = securitycenter .SecurityCenterClient ()
@@ -38,14 +37,12 @@ def create_source(organization_id):
38
37
}
39
38
)
40
39
print ("Created Source: {}" .format (created .name ))
41
- # [END create_source]
42
40
# [END securitycenter_create_source]
43
41
44
42
45
43
def get_source (source_name ):
46
44
"""Gets an existing source."""
47
45
# [START securitycenter_get_source]
48
- # [START get_source]
49
46
from google .cloud import securitycenter
50
47
51
48
client = securitycenter .SecurityCenterClient ()
@@ -59,15 +56,13 @@ def get_source(source_name):
59
56
source = client .get_source (request = {"name" : source_name })
60
57
61
58
print ("Source: {}" .format (source ))
62
- # [END get_source]
63
59
# [END securitycenter_get_source]
64
60
return source
65
61
66
62
67
63
def update_source (source_name ):
68
64
"""Updates a source's display name."""
69
65
# [START securitycenter_update_source]
70
- # [START update_source]
71
66
from google .cloud import securitycenter
72
67
from google .protobuf import field_mask_pb2
73
68
@@ -89,7 +84,6 @@ def update_source(source_name):
89
84
}
90
85
)
91
86
print ("Updated Source: {}" .format (updated ))
92
- # [END update_source]
93
87
# [END securitycenter_update_source]
94
88
return updated
95
89
@@ -98,7 +92,6 @@ def add_user_to_source(source_name):
98
92
"""Gives a user findingsEditor permission to the source."""
99
93
user_email = "csccclienttest@gmail.com"
100
94
# [START securitycenter_set_source_iam]
101
- # [START update_source_iam]
102
95
from google .cloud import securitycenter
103
96
from google .iam .v1 import policy_pb2
104
97
@@ -131,7 +124,6 @@ def add_user_to_source(source_name):
131
124
132
125
print ("Updated Policy: {}" .format (updated ))
133
126
134
- # [END update_source_iam]
135
127
# [END securitycenter_set_source_iam]
136
128
return binding , updated
137
129
@@ -140,7 +132,6 @@ def list_source(organization_id):
140
132
"""Lists finding sources."""
141
133
i = - 1
142
134
# [START securitycenter_list_sources]
143
- # [START list_sources]
144
135
from google .cloud import securitycenter
145
136
146
137
# Create a new client.
@@ -152,15 +143,13 @@ def list_source(organization_id):
152
143
# Call the API and print out each existing source.
153
144
for i , source in enumerate (client .list_sources (request = {"parent" : org_name })):
154
145
print (i , source )
155
- # [END list_sources]
156
146
# [END securitycenter_list_sources]
157
147
return i
158
148
159
149
160
150
def create_finding (source_name ):
161
151
"""Creates a new finding."""
162
152
# [START securitycenter_create_finding]
163
- # [START create_finding]
164
153
from google .cloud import securitycenter
165
154
from google .cloud .securitycenter_v1 import CreateFindingRequest , Finding
166
155
import datetime
@@ -203,15 +192,13 @@ def create_finding(source_name):
203
192
request = request
204
193
)
205
194
print (created_finding )
206
- # [END create_finding]
207
195
# [END securitycenter_create_finding]
208
196
return created_finding
209
197
210
198
211
199
def create_finding_with_source_properties (source_name ):
212
200
"""Demonstrate creating a new finding with source properties. """
213
201
# [START securitycenter_create_finding_with_source_properties]
214
- # [START create_finding_with_properties]
215
202
import datetime
216
203
217
204
from google .cloud import securitycenter
@@ -261,13 +248,11 @@ def create_finding_with_source_properties(source_name):
261
248
}
262
249
)
263
250
print (created_finding )
264
- # [END create_finding_with_properties]
265
251
# [END securitycenter_create_finding_with_source_properties]
266
252
267
253
268
254
def update_finding (source_name ):
269
255
# [START securitycenter_update_finding_source_properties]
270
- # [START update_finding]
271
256
import datetime
272
257
273
258
from google .cloud import securitycenter
@@ -309,14 +294,12 @@ def update_finding(source_name):
309
294
updated_finding .source_properties , updated_finding .event_time
310
295
)
311
296
)
312
- # [END update_finding]
313
297
# [END securitycenter_update_finding_source_properties]
314
298
315
299
316
300
def update_finding_state (source_name ):
317
301
"""Demonstrate updating only a finding state."""
318
302
# [START securitycenter_update_finding_state]
319
- # [START update_finding_state]
320
303
import datetime
321
304
322
305
from google .cloud import securitycenter
@@ -340,15 +323,13 @@ def update_finding_state(source_name):
340
323
}
341
324
)
342
325
print (f"New state: { new_finding .state } " )
343
- # [END update_finding_state]
344
326
# [END securitycenter_update_finding_state]
345
327
346
328
347
329
def trouble_shoot (source_name ):
348
330
"""Demonstrate calling test_iam_permissions to determine if the
349
331
service account has the correct permisions."""
350
332
# [START securitycenter_test_iam]
351
- # [START test_iam_permissions]
352
333
from google .cloud import securitycenter
353
334
354
335
# Create a client.
@@ -373,11 +354,9 @@ def trouble_shoot(source_name):
373
354
len (permission_response .permissions ) > 0
374
355
)
375
356
)
376
- # [END test_iam_permissions]
377
357
# [END securitycenter_test_iam]
378
358
assert len (permission_response .permissions ) > 0
379
359
# [START securitycenter_test_iam]
380
- # [START test_iam_permissions]
381
360
# Check for permissions necessary to call set_finding_state.
382
361
permission_response = client .test_iam_permissions (
383
362
request = {
@@ -388,15 +367,13 @@ def trouble_shoot(source_name):
388
367
print (
389
368
"Permision to update state? {}" .format (len (permission_response .permissions ) > 0 )
390
369
)
391
- # [END test_iam_permissions]
392
370
# [END securitycenter_test_iam]
393
371
return permission_response
394
372
assert len (permission_response .permissions ) > 0
395
373
396
374
397
375
def list_all_findings (organization_id ):
398
376
# [START securitycenter_list_all_findings]
399
- # [START list_all_findings]
400
377
from google .cloud import securitycenter
401
378
402
379
# Create a client.
@@ -415,14 +392,12 @@ def list_all_findings(organization_id):
415
392
i , finding_result .finding .name , finding_result .finding .resource_name
416
393
)
417
394
)
418
- # [END list_all_findings]
419
395
# [END securitycenter_list_all_findings]
420
396
return i
421
397
422
398
423
399
def list_filtered_findings (source_name ):
424
400
# [START securitycenter_list_filtered_findings]
425
- # [START list_filtered_findings]
426
401
from google .cloud import securitycenter
427
402
428
403
# Create a new client.
@@ -447,14 +422,12 @@ def list_filtered_findings(source_name):
447
422
i , finding_result .finding .name , finding_result .finding .resource_name
448
423
)
449
424
)
450
- # [END list_filtered_findings]
451
425
# [END securitycenter_list_filtered_findings]
452
426
return i
453
427
454
428
455
429
def list_findings_at_time (source_name ):
456
430
# [START securitycenter_list_findings_at_time]
457
- # [START list_findings_at_a_time]
458
431
from google .cloud import securitycenter
459
432
from datetime import timedelta , datetime
460
433
@@ -470,11 +443,9 @@ def list_findings_at_time(source_name):
470
443
# You an also use a wild-card "-" for all sources:
471
444
# source_name = "organizations/111122222444/sources/-"
472
445
five_days_ago = str (datetime .now () - timedelta (days = 5 ))
473
- # [END list_findings_at_a_time]
474
446
# [END securitycenter_list_findings_at_time]
475
447
i = - 1
476
448
# [START securitycenter_list_findings_at_time]
477
- # [START list_findings_at_a_time]
478
449
479
450
finding_result_iterator = client .list_findings (
480
451
request = {"parent" : source_name , "filter" : five_days_ago }
@@ -485,15 +456,13 @@ def list_findings_at_time(source_name):
485
456
i , finding_result .finding .name , finding_result .finding .resource_name
486
457
)
487
458
)
488
- # [END list_findings_at_a_time]
489
459
# [END securitycenter_list_findings_at_time]
490
460
return i
491
461
492
462
493
463
def get_iam_policy (source_name ):
494
464
"""Gives a user findingsEditor permission to the source."""
495
465
# [START securitycenter_get_source_iam]
496
- # [START get_source_iam]
497
466
from google .cloud import securitycenter
498
467
499
468
client = securitycenter .SecurityCenterClient ()
@@ -507,15 +476,13 @@ def get_iam_policy(source_name):
507
476
# Get the old policy so we can do an incremental update.
508
477
policy = client .get_iam_policy (request = {"resource" : source_name })
509
478
print ("Policy: {}" .format (policy ))
510
- # [END get_source_iam]
511
479
# [END securitycenter_get_source_iam]
512
480
513
481
514
482
def group_all_findings (organization_id ):
515
483
"""Demonstrates grouping all findings across an organization."""
516
484
i = 0
517
485
# [START securitycenter_group_all_findings]
518
- # [START group_all_findings]
519
486
from google .cloud import securitycenter
520
487
521
488
# Create a client.
@@ -532,7 +499,6 @@ def group_all_findings(organization_id):
532
499
)
533
500
for i , group_result in enumerate (group_result_iterator ):
534
501
print ((i + 1 ), group_result )
535
- # [END group_all_findings]
536
502
# [END securitycenter_group_all_findings]
537
503
return i
538
504
0 commit comments