runbooks 0.1.6__py3-none-any.whl → 0.1.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. runbooks/__init__.py +1 -1
  2. runbooks/aws/__init__.py +58 -0
  3. runbooks/aws/dynamodb_operations.py +231 -0
  4. runbooks/aws/ec2_copy_image_cross-region.py +195 -0
  5. runbooks/aws/ec2_describe_instances.py +202 -0
  6. runbooks/aws/ec2_ebs_snapshots_delete.py +186 -0
  7. runbooks/aws/ec2_run_instances.py +207 -0
  8. runbooks/aws/ec2_start_stop_instances.py +199 -0
  9. runbooks/aws/ec2_terminate_instances.py +143 -0
  10. runbooks/aws/ec2_unused_eips.py +196 -0
  11. runbooks/aws/ec2_unused_volumes.py +184 -0
  12. runbooks/aws/s3_create_bucket.py +140 -0
  13. runbooks/aws/s3_list_buckets.py +152 -0
  14. runbooks/aws/s3_list_objects.py +151 -0
  15. runbooks/aws/s3_object_operations.py +183 -0
  16. runbooks/aws/tagging_lambda_handler.py +172 -0
  17. runbooks/python101/calculator.py +34 -0
  18. runbooks/python101/config.py +1 -0
  19. runbooks/python101/exceptions.py +16 -0
  20. runbooks/python101/file_manager.py +218 -0
  21. runbooks/python101/toolkit.py +153 -0
  22. runbooks/security_baseline/__init__.py +0 -0
  23. runbooks/security_baseline/checklist/__init__.py +17 -0
  24. runbooks/security_baseline/checklist/account_level_bucket_public_access.py +86 -0
  25. runbooks/security_baseline/checklist/alternate_contacts.py +65 -0
  26. runbooks/security_baseline/checklist/bucket_public_access.py +82 -0
  27. runbooks/security_baseline/checklist/cloudwatch_alarm_configuration.py +66 -0
  28. runbooks/security_baseline/checklist/direct_attached_policy.py +69 -0
  29. runbooks/security_baseline/checklist/guardduty_enabled.py +71 -0
  30. runbooks/security_baseline/checklist/iam_password_policy.py +43 -0
  31. runbooks/security_baseline/checklist/iam_user_mfa.py +39 -0
  32. runbooks/security_baseline/checklist/multi_region_instance_usage.py +55 -0
  33. runbooks/security_baseline/checklist/multi_region_trail.py +64 -0
  34. runbooks/security_baseline/checklist/root_access_key.py +72 -0
  35. runbooks/security_baseline/checklist/root_mfa.py +39 -0
  36. runbooks/security_baseline/checklist/root_usage.py +128 -0
  37. runbooks/security_baseline/checklist/trail_enabled.py +68 -0
  38. runbooks/security_baseline/checklist/trusted_advisor.py +24 -0
  39. runbooks/security_baseline/report_generator.py +149 -0
  40. runbooks/security_baseline/run_script.py +76 -0
  41. runbooks/security_baseline/security_baseline_tester.py +179 -0
  42. runbooks/security_baseline/utils/__init__.py +1 -0
  43. runbooks/security_baseline/utils/common.py +109 -0
  44. runbooks/security_baseline/utils/enums.py +44 -0
  45. runbooks/security_baseline/utils/language.py +762 -0
  46. runbooks/security_baseline/utils/level_const.py +5 -0
  47. runbooks/security_baseline/utils/permission_list.py +26 -0
  48. runbooks/utils/__init__.py +0 -0
  49. runbooks/utils/logger.py +36 -0
  50. {runbooks-0.1.6.dist-info → runbooks-0.1.8.dist-info}/METADATA +9 -1
  51. runbooks-0.1.8.dist-info/RECORD +54 -0
  52. runbooks-0.1.8.dist-info/entry_points.txt +3 -0
  53. runbooks-0.1.6.dist-info/RECORD +0 -6
  54. runbooks-0.1.6.dist-info/entry_points.txt +0 -2
  55. {runbooks-0.1.6.dist-info → runbooks-0.1.8.dist-info}/WHEEL +0 -0
  56. {runbooks-0.1.6.dist-info → runbooks-0.1.8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,5 @@
1
+ success = "Success"
2
+ warning = "Warning"
3
+ danger = "Danger"
4
+ error = "Error"
5
+ info = "Info"
@@ -0,0 +1,26 @@
1
+ permissions = [
2
+ "sts:GetCallerIdentity",
3
+ "ec2:DescribeRegions",
4
+ "ec2:DescribeInstances",
5
+ "account:GetAlternateContact",
6
+ "iam:GenerateCredentialReport",
7
+ "iam:GetCredentialReport",
8
+ "iam:GetAccountPasswordPolicy",
9
+ "iam:ListUsers",
10
+ "iam:ListAttachedUserPolicies",
11
+ "iam:ListUserPolicies",
12
+ "cloudtrail:DescribeTrails",
13
+ "cloudtrail:GetTrailStatus",
14
+ "cloudtrail:GetTrail",
15
+ "s3:GetAccountPublicAccessBlock",
16
+ "s3:GetBucketPublicAccessBlock",
17
+ "s3:ListBucket",
18
+ "s3:ListAllMyBuckets",
19
+ "cloudwatch:DescribeAlarms",
20
+ "ec2:DescribeNetworkInterfaces",
21
+ "ec2:DescribeVpcs",
22
+ "ec2:DescribeSubnets",
23
+ "support:DescribeTrustedAdvisorChecks",
24
+ "guardduty:ListDetectors",
25
+ "guardduty:GetDetector",
26
+ ]
File without changes
@@ -0,0 +1,36 @@
1
+ import logging
2
+
3
+
4
+ ## ==============================
5
+ ## CONFIGURE LOGGING
6
+ ## ==============================
7
+ def configure_logger(module_name: str) -> logging.Logger:
8
+ """
9
+ Configures and returns a logger for a given module.
10
+
11
+ Args:
12
+ module_name (str): The name of the module using the logger.
13
+
14
+ Returns:
15
+ logging.Logger: Configured logger instance.
16
+ """
17
+ logger = logging.getLogger(module_name)
18
+ logger.setLevel(logging.INFO)
19
+
20
+ ## Create formatter
21
+ formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
22
+
23
+ ## Console Handler
24
+ console_handler = logging.StreamHandler()
25
+ console_handler.setFormatter(formatter)
26
+
27
+ ## File Handler
28
+ file_handler = logging.FileHandler(f"{module_name}.log")
29
+ file_handler.setFormatter(formatter)
30
+
31
+ ## Add handlers if not already added
32
+ if not logger.handlers:
33
+ logger.addHandler(console_handler)
34
+ logger.addHandler(file_handler)
35
+
36
+ return logger
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: runbooks
3
- Version: 0.1.6
3
+ Version: 0.1.8
4
4
  Summary: CloudOps Automation Toolkit for DevOps and SRE teams.
5
5
  Author-email: runbooks maintainers <nnthanh101@gmail.com>
6
6
  License: Apache License
@@ -239,7 +239,14 @@ Requires-Dist: ipykernel>=6.29.5
239
239
  Requires-Dist: ipywidgets>=8.1.5
240
240
  Requires-Dist: jupyterlab>=4.3.4
241
241
  Requires-Dist: jupyterlab-git>=0.50.2
242
+ Requires-Dist: azure-cli
242
243
  Requires-Dist: boto3>=1.35.90
244
+ Requires-Dist: botocore>=1.35.95
245
+ Requires-Dist: jmespath>=1.0.1
246
+ Requires-Dist: python-dateutil>=2.9.0
247
+ Requires-Dist: s3transfer>=0.10.4
248
+ Requires-Dist: six>=1.17.0
249
+ Requires-Dist: urllib3>=2.3.0
243
250
  Requires-Dist: openai>=1.58.1
244
251
  Requires-Dist: pydantic>=2.10.4
245
252
  Requires-Dist: pydantic-ai>=0.0.16
@@ -248,6 +255,7 @@ Requires-Dist: pandas>=2.2.3
248
255
  Requires-Dist: plotly>=5.24.1
249
256
  Requires-Dist: vizro>=0.1.30
250
257
  Requires-Dist: vizro-ai>=0.3.2
258
+ Requires-Dist: runbooks>=0.1.8
251
259
 
252
260
  # 🔥 CloudOps Automation at Scale 🦅
253
261
 
@@ -0,0 +1,54 @@
1
+ runbooks/__init__.py,sha256=ImR9wfmlMyXaJhnCM8gXdQ32Fu0rB-iXOoVx_-AdMU4,133
2
+ runbooks/aws/__init__.py,sha256=iswGPspnFaHLE_Zzw2uRraYI2zvJ1Nma5PbdOiBUdEo,1646
3
+ runbooks/aws/dynamodb_operations.py,sha256=c91YACBHnOELL8Ufj7tRQws9azGqnB6flQsacTi57xQ,6490
4
+ runbooks/aws/ec2_copy_image_cross-region.py,sha256=2Afoo2ddzswgtdhdzsDq5aZiqXkQ0_kUyRdHbhkaLAA,6017
5
+ runbooks/aws/ec2_describe_instances.py,sha256=-Wbp0wQakCa7lJ2vfqR3P-lXN5s0jqjBHYhppiZEtSI,6543
6
+ runbooks/aws/ec2_ebs_snapshots_delete.py,sha256=LwaGGAg_7tdqic1thBLywlHKjMSMyye2B79d4yNtK78,5886
7
+ runbooks/aws/ec2_run_instances.py,sha256=wE7G8Xn10gG25Smu4SHpfc54rFly40Ba09Cv76XJYGg,6803
8
+ runbooks/aws/ec2_start_stop_instances.py,sha256=a0yUy9Zb2JmJc7wsGh3UXJZ5P0CI1omRaRCCpV5jOxE,5939
9
+ runbooks/aws/ec2_terminate_instances.py,sha256=p8ZHHDkT--rlOFah82hG6SJpty4rYZa4hn3yq4MqvQI,4692
10
+ runbooks/aws/ec2_unused_eips.py,sha256=04pjoeSwm-CfJKT6u9XuHa_D-iK5r9D65FaisQy00Zk,5535
11
+ runbooks/aws/ec2_unused_volumes.py,sha256=x2kcYV6DUqw77AaKILLtXYfrzAnEg3uoPJD6h5ad2Yg,5686
12
+ runbooks/aws/s3_create_bucket.py,sha256=-oSYKJ_tCW5fuspuQUYSw8Y_Y9_oqzn9dbmmO80UHc4,4182
13
+ runbooks/aws/s3_list_buckets.py,sha256=sHh05_KrvpLzOlGZJy8nxTAfTuMaVtMIhb3A9nLh_rQ,4752
14
+ runbooks/aws/s3_list_objects.py,sha256=VYk-ljQbgXsrt9d-xCJoXe6hPeCgkCa97pf-z7EOk08,4595
15
+ runbooks/aws/s3_object_operations.py,sha256=46l8v0Xt8pJhTuMjCyLDSLsU06WGxWKad99nQ91o2hg,5400
16
+ runbooks/aws/tagging_lambda_handler.py,sha256=o4hTUS8ta99tVS4kZ-w_j329NArGZDi46XB-AdvWi4M,5367
17
+ runbooks/python101/calculator.py,sha256=FEWSHyC6vV0Qoy13Fz-bE-mWP6Xs_yvu39iji260jDs,1365
18
+ runbooks/python101/config.py,sha256=ILwA7ZyjEDHNdDbOArFAZkDSB-saF-tzeE7xmJ2CtbE,104
19
+ runbooks/python101/exceptions.py,sha256=4KuSN-Kz-Xx17dU8i4rMbECANA4IXdT5dAposuv3tZc,319
20
+ runbooks/python101/file_manager.py,sha256=7QLxO2eiwlgcTpdnbd80TIP1CNFGz0ZGpGKnBZvpdAk,7163
21
+ runbooks/python101/toolkit.py,sha256=bWoP_r8GhsEPFsgTKSeJiilcjxO4A1fynjSDSOnlmzQ,3709
22
+ runbooks/security_baseline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ runbooks/security_baseline/report_generator.py,sha256=7APIDceRGI7jxyQw7wdE34xY4fF76x0p7F2aPRvSCCI,6331
24
+ runbooks/security_baseline/run_script.py,sha256=ZAb6nJK4EnOvwucHrz_QldCaJZlj8_4GqCor1-Higeg,2083
25
+ runbooks/security_baseline/security_baseline_tester.py,sha256=t5v79qDC2EhfUrJ0NMA-rWoIHbSFo48nJ8J9SjW3VbE,7124
26
+ runbooks/security_baseline/checklist/__init__.py,sha256=_l8n3aeeSB5jb86E-kNoYAApgTVK_OMhtLbiiYxZ0iM,412
27
+ runbooks/security_baseline/checklist/account_level_bucket_public_access.py,sha256=RNunFllmsDZqvE91pqSC52MLpxWEClI_of9Wb7LmwpE,3381
28
+ runbooks/security_baseline/checklist/alternate_contacts.py,sha256=_jW9-mZkrwwJY61J-AS6Az_kjViMupmeyFydeV31Kb8,3038
29
+ runbooks/security_baseline/checklist/bucket_public_access.py,sha256=6blboPnQQo9YAbUe3f7kLwbL23AgB5WTNOYaEUNaCng,3302
30
+ runbooks/security_baseline/checklist/cloudwatch_alarm_configuration.py,sha256=ZhxrxpUkNXCIuCJDtQSS7iDWF6XNj_6Wj7mPiDTARtU,2257
31
+ runbooks/security_baseline/checklist/direct_attached_policy.py,sha256=A_FITUylEnXjAyXh6yXu5XnHgOt9pV6JqX3iKxX4jS0,2563
32
+ runbooks/security_baseline/checklist/guardduty_enabled.py,sha256=wTNTGYjpbe9HrrFqcD0evvzPhBLnlNmSI61-Qxc-5vY,2443
33
+ runbooks/security_baseline/checklist/iam_password_policy.py,sha256=44h09PBteGRoheq8kJuJxqNydC7rUQbhLbXWCMOxAy0,1565
34
+ runbooks/security_baseline/checklist/iam_user_mfa.py,sha256=tBh1KfNR1sg_tA2gP53rH9EIRB04RxhJfHM4TQTC29s,1230
35
+ runbooks/security_baseline/checklist/multi_region_instance_usage.py,sha256=CatzMma6bMqYWbO-Qw83jU3RU21Nz6TdaT2LliV7-FA,1939
36
+ runbooks/security_baseline/checklist/multi_region_trail.py,sha256=5OxzvjiIIPwsH9enZz1-jCmD8nniNw7aXOhJYJsmRmQ,2288
37
+ runbooks/security_baseline/checklist/root_access_key.py,sha256=jzIm046Hkx32cJ2GnlxCXcz8-ZSyGXpXXJl8Ik_9c7Q,2500
38
+ runbooks/security_baseline/checklist/root_mfa.py,sha256=wTuNCF0rz-H5cia5w8LQXYgnEHGnw0YfGcT5sM2WChI,1289
39
+ runbooks/security_baseline/checklist/root_usage.py,sha256=lTBn6hqy9ysPlE6dk2NQP1iu_mnN4FEJyIZYhOCWFKY,4654
40
+ runbooks/security_baseline/checklist/trail_enabled.py,sha256=AioAw_12-NmYGBzLaneWLsd3mejYibDTtwl18vWca-A,2284
41
+ runbooks/security_baseline/checklist/trusted_advisor.py,sha256=xJTwicdp5VPooVc2-1VFDh41OH7PvBs0osUrN82ANkE,670
42
+ runbooks/security_baseline/utils/__init__.py,sha256=kK5hPyLqQSuR8Z231QHZ_IgJ5JlxPJCiXmGRSCfO7w0,57
43
+ runbooks/security_baseline/utils/common.py,sha256=hCgYtgIgzV5Z2LCeXSDXd7LNxYg9NE2s_c-d9w43a-Y,3399
44
+ runbooks/security_baseline/utils/enums.py,sha256=BGr8EgwZrWsU8kvWkwWsPqELUPGBc2tvJ5SzN9XhWQU,1258
45
+ runbooks/security_baseline/utils/language.py,sha256=MrSAojEyjHqRDDALdk002snj4xnFbwGgIjAc2buJ8g0,60448
46
+ runbooks/security_baseline/utils/level_const.py,sha256=l8uYBmgEMjIQTGVVuXPAfDd_Psl6jNfTQw2isI43zO8,88
47
+ runbooks/security_baseline/utils/permission_list.py,sha256=nq06vlILHp9rfnCpJauCmFCOEGdgFMF-XO3uBFrrd-o,767
48
+ runbooks/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ runbooks/utils/logger.py,sha256=ifxqLjDlZoDaG8rtAGVKLZ5dAwcMn16rB4YgMfeUC3E,972
50
+ runbooks-0.1.8.dist-info/METADATA,sha256=4zvsNO2zEbnz0f7iIP5pw89-EJpwWkMXZm4YsIavyuw,24982
51
+ runbooks-0.1.8.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
52
+ runbooks-0.1.8.dist-info/entry_points.txt,sha256=dxS4lhytftkG2sBS-tgSRKoWtK-AgQmiAJ4VxJY3f5A,115
53
+ runbooks-0.1.8.dist-info/top_level.txt,sha256=1EwNxU12QGOLtO0Naw75hXIdSIhgV_b-z_6vhlhVkhM,9
54
+ runbooks-0.1.8.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ runbooks-aws = runbooks.aws:run_script
3
+ runbooks-security = runbooks.security_baseline:run_script
@@ -1,6 +0,0 @@
1
- runbooks/__init__.py,sha256=_7SZc5Hr4Nynfpt_KtSYxUmsjSvYZkWdQ8o5dJO-V8Y,133
2
- runbooks-0.1.6.dist-info/METADATA,sha256=qBCWPmDeJGL5jQmTFDTfqs0JYym48nKqOKyTdPs8TMM,24733
3
- runbooks-0.1.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
4
- runbooks-0.1.6.dist-info/entry_points.txt,sha256=6lCgbrwZ3nlubzydqeMZQ_BZ_-Um1N1S0dH7x55UNqo,57
5
- runbooks-0.1.6.dist-info/top_level.txt,sha256=1EwNxU12QGOLtO0Naw75hXIdSIhgV_b-z_6vhlhVkhM,9
6
- runbooks-0.1.6.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- runbooks = runbooks.aws:execute_script