19
19
20
20
def create_source (organization_id ):
21
21
"""Create a new findings source. """
22
+ # [START securitycenter_create_source]
22
23
# [START create_source]
23
24
from google .cloud import securitycenter
24
25
@@ -38,10 +39,12 @@ def create_source(organization_id):
38
39
)
39
40
print ("Created Source: {}" .format (created .name ))
40
41
# [END create_source]
42
+ # [END securitycenter_create_source]
41
43
42
44
43
45
def get_source (source_name ):
44
46
"""Gets an existing source."""
47
+ # [START securitycenter_get_source]
45
48
# [START get_source]
46
49
from google .cloud import securitycenter
47
50
@@ -57,11 +60,13 @@ def get_source(source_name):
57
60
58
61
print ("Source: {}" .format (source ))
59
62
# [END get_source]
63
+ # [END securitycenter_get_source]
60
64
return source
61
65
62
66
63
67
def update_source (source_name ):
64
68
"""Updates a source's display name."""
69
+ # [START securitycenter_update_source]
65
70
# [START update_source]
66
71
from google .cloud import securitycenter
67
72
from google .protobuf import field_mask_pb2
@@ -85,12 +90,14 @@ def update_source(source_name):
85
90
)
86
91
print ("Updated Source: {}" .format (updated ))
87
92
# [END update_source]
93
+ # [END securitycenter_update_source]
88
94
return updated
89
95
90
96
91
97
def add_user_to_source (source_name ):
92
98
"""Gives a user findingsEditor permission to the source."""
93
99
100
+ # [START securitycenter_update_source_iam]
94
101
# [START update_source_iam]
95
102
from google .cloud import securitycenter
96
103
from google .iam .v1 import policy_pb2
@@ -125,12 +132,14 @@ def add_user_to_source(source_name):
125
132
print ("Updated Policy: {}" .format (updated ))
126
133
127
134
# [END update_source_iam]
135
+ # [END securitycenter_update_source_iam]
128
136
return binding , updated
129
137
130
138
131
139
def list_source (organization_id ):
132
140
"""Lists finding sources."""
133
141
i = - 1
142
+ # [START securitycenter_list_sources]
134
143
# [START list_sources]
135
144
from google .cloud import securitycenter
136
145
@@ -144,11 +153,13 @@ def list_source(organization_id):
144
153
for i , source in enumerate (client .list_sources (request = {"parent" : org_name })):
145
154
print (i , source )
146
155
# [END list_sources]
156
+ # [END securitycenter_list_sources]
147
157
return i
148
158
149
159
150
160
def create_finding (source_name ):
151
161
"""Creates a new finding."""
162
+ # [START securitycenter_create_finding]
152
163
# [START create_finding]
153
164
from google .cloud import securitycenter
154
165
from google .cloud .securitycenter_v1 import CreateFindingRequest , Finding
@@ -193,11 +204,13 @@ def create_finding(source_name):
193
204
)
194
205
print (created_finding )
195
206
# [END create_finding]
207
+ # [END securitycenter_create_finding]
196
208
return created_finding
197
209
198
210
199
211
def create_finding_with_source_properties (source_name ):
200
212
"""Demonstrate creating a new finding with source properties. """
213
+ # [START securitycenter_create_finding_with_properties]
201
214
# [START create_finding_with_properties]
202
215
import datetime
203
216
@@ -249,9 +262,11 @@ def create_finding_with_source_properties(source_name):
249
262
)
250
263
print (created_finding )
251
264
# [END create_finding_with_properties]
265
+ # [END securitycenter_create_finding_with_properties]
252
266
253
267
254
268
def update_finding (source_name ):
269
+ # [START securitycenter_update_finding]
255
270
# [START update_finding]
256
271
import datetime
257
272
@@ -295,10 +310,12 @@ def update_finding(source_name):
295
310
)
296
311
)
297
312
# [END update_finding]
313
+ # [END securitycenter_update_finding]
298
314
299
315
300
316
def update_finding_state (source_name ):
301
317
"""Demonstrate updating only a finding state."""
318
+ # [START securitycenter_update_finding_state]
302
319
# [START update_finding_state]
303
320
import datetime
304
321
@@ -324,11 +341,13 @@ def update_finding_state(source_name):
324
341
)
325
342
print (f"New state: { new_finding .state } " )
326
343
# [END update_finding_state]
344
+ # [END securitycenter_update_finding_state]
327
345
328
346
329
347
def trouble_shoot (source_name ):
330
348
"""Demonstrate calling test_iam_permissions to determine if the
331
349
service account has the correct permisions."""
350
+ # [START securitycenter_test_iam_permissions]
332
351
# [START test_iam_permissions]
333
352
from google .cloud import securitycenter
334
353
@@ -355,7 +374,9 @@ def trouble_shoot(source_name):
355
374
)
356
375
)
357
376
# [END test_iam_permissions]
377
+ # [END securitycenter_test_iam_permissions]
358
378
assert len (permission_response .permissions ) > 0
379
+ # [START securitycenter_test_iam_permissions]
359
380
# [START test_iam_permissions]
360
381
# Check for permissions necessary to call set_finding_state.
361
382
permission_response = client .test_iam_permissions (
@@ -368,11 +389,13 @@ def trouble_shoot(source_name):
368
389
"Permision to update state? {}" .format (len (permission_response .permissions ) > 0 )
369
390
)
370
391
# [END test_iam_permissions]
392
+ # [END securitycenter_test_iam_permissions]
371
393
return permission_response
372
394
assert len (permission_response .permissions ) > 0
373
395
374
396
375
397
def list_all_findings (organization_id ):
398
+ # [START securitycenter_list_all_findings]
376
399
# [START list_all_findings]
377
400
from google .cloud import securitycenter
378
401
@@ -393,10 +416,12 @@ def list_all_findings(organization_id):
393
416
)
394
417
)
395
418
# [END list_all_findings]
419
+ # [END securitycenter_list_all_findings]
396
420
return i
397
421
398
422
399
423
def list_filtered_findings (source_name ):
424
+ # [START securitycenter_list_filtered_findings]
400
425
# [START list_filtered_findings]
401
426
from google .cloud import securitycenter
402
427
@@ -423,10 +448,12 @@ def list_filtered_findings(source_name):
423
448
)
424
449
)
425
450
# [END list_filtered_findings]
451
+ # [END securitycenter_list_filtered_findings]
426
452
return i
427
453
428
454
429
455
def list_findings_at_time (source_name ):
456
+ # [START securitycenter_list_findings_at_a_time]
430
457
# [START list_findings_at_a_time]
431
458
from google .cloud import securitycenter
432
459
from datetime import timedelta , datetime
@@ -444,7 +471,9 @@ def list_findings_at_time(source_name):
444
471
# source_name = "organizations/111122222444/sources/-"
445
472
five_days_ago = str (datetime .now () - timedelta (days = 5 ))
446
473
# [END list_findings_at_a_time]
474
+ # [END securitycenter_list_findings_at_a_time]
447
475
i = - 1
476
+ # [START securitycenter_list_findings_at_a_time]
448
477
# [START list_findings_at_a_time]
449
478
450
479
finding_result_iterator = client .list_findings (
@@ -457,11 +486,13 @@ def list_findings_at_time(source_name):
457
486
)
458
487
)
459
488
# [END list_findings_at_a_time]
489
+ # [END securitycenter_list_findings_at_a_time]
460
490
return i
461
491
462
492
463
493
def get_iam_policy (source_name ):
464
494
"""Gives a user findingsEditor permission to the source."""
495
+ # [START securitycenter_get_source_iam]
465
496
# [START get_source_iam]
466
497
from google .cloud import securitycenter
467
498
@@ -477,11 +508,13 @@ def get_iam_policy(source_name):
477
508
policy = client .get_iam_policy (request = {"resource" : source_name })
478
509
print ("Policy: {}" .format (policy ))
479
510
# [END get_source_iam]
511
+ # [END securitycenter_get_source_iam]
480
512
481
513
482
514
def group_all_findings (organization_id ):
483
515
"""Demonstrates grouping all findings across an organization."""
484
516
i = 0
517
+ # [START securitycenter_group_all_findings]
485
518
# [START group_all_findings]
486
519
from google .cloud import securitycenter
487
520
@@ -500,13 +533,14 @@ def group_all_findings(organization_id):
500
533
for i , group_result in enumerate (group_result_iterator ):
501
534
print ((i + 1 ), group_result )
502
535
# [END group_all_findings]
536
+ # [END securitycenter_group_all_findings]
503
537
return i
504
538
505
539
506
540
def group_filtered_findings (source_name ):
507
541
"""Demonstrates grouping all findings across an organization."""
508
542
i = 0
509
- # [START group_filtered_findings ]
543
+ # [START securitycenter_group_filtered_findings ]
510
544
from google .cloud import securitycenter
511
545
512
546
# Create a client.
@@ -528,15 +562,15 @@ def group_filtered_findings(source_name):
528
562
)
529
563
for i , group_result in enumerate (group_result_iterator ):
530
564
print ((i + 1 ), group_result )
531
- # [END group_filtered_findings ]
565
+ # [END securitycenter_group_filtered_findings ]
532
566
return i
533
567
534
568
535
569
def group_findings_at_time (source_name ):
536
570
"""Demonstrates grouping all findings across an organization as of
537
571
a specific time."""
538
572
i = - 1
539
- # [START group_findings_at_time ]
573
+ # [START securitycenter_group_findings_at_time ]
540
574
from datetime import datetime , timedelta
541
575
from google .cloud import securitycenter
542
576
@@ -562,15 +596,15 @@ def group_findings_at_time(source_name):
562
596
)
563
597
for i , group_result in enumerate (group_result_iterator ):
564
598
print ((i + 1 ), group_result )
565
- # [END group_findings_at_time ]
599
+ # [END securitycenter_group_findings_at_time ]
566
600
return i
567
601
568
602
569
603
def group_findings_and_changes (source_name ):
570
604
"""Demonstrates grouping all findings across an organization and
571
605
associated changes."""
572
606
i = 0
573
- # [START group_findings_with_changes ]
607
+ # [START securitycenter_group_findings_with_changes ]
574
608
from datetime import timedelta
575
609
576
610
from google .cloud import securitycenter
@@ -597,5 +631,5 @@ def group_findings_and_changes(source_name):
597
631
)
598
632
for i , group_result in enumerate (group_result_iterator ):
599
633
print ((i + 1 ), group_result )
600
- # [END group_findings_with_changes ]
634
+ # [END securitycenter_group_findings_with_changes] ]
601
635
return i
0 commit comments