iam-policy-validator 1.0.2__tar.gz → 1.5.0__tar.gz

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 (694) hide show
  1. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/.github/workflows/ci.yml +20 -51
  2. iam_policy_validator-1.5.0/.github/workflows/release.yml +168 -0
  3. iam_policy_validator-1.5.0/.python-version +1 -0
  4. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/CONTRIBUTING.md +41 -31
  5. iam_policy_validator-1.5.0/DOCS.md +1423 -0
  6. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/Makefile +24 -3
  7. iam_policy_validator-1.5.0/PKG-INFO +1021 -0
  8. iam_policy_validator-1.5.0/README.md +979 -0
  9. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/action.yaml +145 -10
  10. iam_policy_validator-1.5.0/aws_services/_manifest.json +7 -0
  11. iam_policy_validator-1.5.0/aws_services/_services.json +1722 -0
  12. iam_policy_validator-1.5.0/aws_services/a2c.json +66 -0
  13. iam_policy_validator-1.5.0/aws_services/a4b.json +1945 -0
  14. iam_policy_validator-1.5.0/aws_services/access-analyzer.json +717 -0
  15. iam_policy_validator-1.5.0/aws_services/account.json +409 -0
  16. iam_policy_validator-1.5.0/aws_services/acm-pca.json +511 -0
  17. iam_policy_validator-1.5.0/aws_services/acm.json +401 -0
  18. iam_policy_validator-1.5.0/aws_services/action-recommendations.json +21 -0
  19. iam_policy_validator-1.5.0/aws_services/activate.json +126 -0
  20. iam_policy_validator-1.5.0/aws_services/aiops.json +694 -0
  21. iam_policy_validator-1.5.0/aws_services/airflow.json +301 -0
  22. iam_policy_validator-1.5.0/aws_services/amplify.json +917 -0
  23. iam_policy_validator-1.5.0/aws_services/amplifybackend.json +797 -0
  24. iam_policy_validator-1.5.0/aws_services/amplifyuibuilder.json +698 -0
  25. iam_policy_validator-1.5.0/aws_services/aoss.json +787 -0
  26. iam_policy_validator-1.5.0/aws_services/apigateway.json +1812 -0
  27. iam_policy_validator-1.5.0/aws_services/app-integrations.json +860 -0
  28. iam_policy_validator-1.5.0/aws_services/appconfig.json +1212 -0
  29. iam_policy_validator-1.5.0/aws_services/appfabric.json +691 -0
  30. iam_policy_validator-1.5.0/aws_services/appflow.json +671 -0
  31. iam_policy_validator-1.5.0/aws_services/application-autoscaling.json +337 -0
  32. iam_policy_validator-1.5.0/aws_services/application-signals.json +453 -0
  33. iam_policy_validator-1.5.0/aws_services/application-transformation.json +216 -0
  34. iam_policy_validator-1.5.0/aws_services/applicationinsights.json +543 -0
  35. iam_policy_validator-1.5.0/aws_services/appmesh-preview.json +855 -0
  36. iam_policy_validator-1.5.0/aws_services/appmesh.json +1045 -0
  37. iam_policy_validator-1.5.0/aws_services/apprunner.json +1057 -0
  38. iam_policy_validator-1.5.0/aws_services/appstream.json +1800 -0
  39. iam_policy_validator-1.5.0/aws_services/appstudio.json +101 -0
  40. iam_policy_validator-1.5.0/aws_services/appsync.json +1621 -0
  41. iam_policy_validator-1.5.0/aws_services/apptest.json +540 -0
  42. iam_policy_validator-1.5.0/aws_services/aps.json +1504 -0
  43. iam_policy_validator-1.5.0/aws_services/arc-region-switch.json +493 -0
  44. iam_policy_validator-1.5.0/aws_services/arc-zonal-shift.json +405 -0
  45. iam_policy_validator-1.5.0/aws_services/arsenal.json +21 -0
  46. iam_policy_validator-1.5.0/aws_services/artifact.json +299 -0
  47. iam_policy_validator-1.5.0/aws_services/athena.json +1600 -0
  48. iam_policy_validator-1.5.0/aws_services/auditmanager.json +1228 -0
  49. iam_policy_validator-1.5.0/aws_services/autoscaling-plans.json +96 -0
  50. iam_policy_validator-1.5.0/aws_services/autoscaling.json +1600 -0
  51. iam_policy_validator-1.5.0/aws_services/aws-marketplace-management.json +201 -0
  52. iam_policy_validator-1.5.0/aws_services/aws-marketplace.json +1031 -0
  53. iam_policy_validator-1.5.0/aws_services/aws-portal.json +141 -0
  54. iam_policy_validator-1.5.0/aws_services/awsconnector.json +51 -0
  55. iam_policy_validator-1.5.0/aws_services/b2bi.json +693 -0
  56. iam_policy_validator-1.5.0/aws_services/backup-gateway.json +606 -0
  57. iam_policy_validator-1.5.0/aws_services/backup-search.json +296 -0
  58. iam_policy_validator-1.5.0/aws_services/backup-storage.json +231 -0
  59. iam_policy_validator-1.5.0/aws_services/backup.json +2196 -0
  60. iam_policy_validator-1.5.0/aws_services/batch.json +1071 -0
  61. iam_policy_validator-1.5.0/aws_services/bcm-dashboards.json +162 -0
  62. iam_policy_validator-1.5.0/aws_services/bcm-data-exports.json +307 -0
  63. iam_policy_validator-1.5.0/aws_services/bcm-pricing-calculator.json +723 -0
  64. iam_policy_validator-1.5.0/aws_services/bcm-recommended-actions.json +21 -0
  65. iam_policy_validator-1.5.0/aws_services/bedrock-agentcore.json +2283 -0
  66. iam_policy_validator-1.5.0/aws_services/bedrock.json +5215 -0
  67. iam_policy_validator-1.5.0/aws_services/billing.json +570 -0
  68. iam_policy_validator-1.5.0/aws_services/billingconductor.json +729 -0
  69. iam_policy_validator-1.5.0/aws_services/braket.json +347 -0
  70. iam_policy_validator-1.5.0/aws_services/budgets.json +326 -0
  71. iam_policy_validator-1.5.0/aws_services/bugbust.json +421 -0
  72. iam_policy_validator-1.5.0/aws_services/cases.json +1053 -0
  73. iam_policy_validator-1.5.0/aws_services/cassandra.json +536 -0
  74. iam_policy_validator-1.5.0/aws_services/ce.json +1143 -0
  75. iam_policy_validator-1.5.0/aws_services/chatbot.json +772 -0
  76. iam_policy_validator-1.5.0/aws_services/chime.json +6165 -0
  77. iam_policy_validator-1.5.0/aws_services/cleanrooms-ml.json +1501 -0
  78. iam_policy_validator-1.5.0/aws_services/cleanrooms.json +2193 -0
  79. iam_policy_validator-1.5.0/aws_services/cloud9.json +667 -0
  80. iam_policy_validator-1.5.0/aws_services/clouddirectory.json +1385 -0
  81. iam_policy_validator-1.5.0/aws_services/cloudformation.json +2024 -0
  82. iam_policy_validator-1.5.0/aws_services/cloudfront-keyvaluestore.json +134 -0
  83. iam_policy_validator-1.5.0/aws_services/cloudfront.json +3023 -0
  84. iam_policy_validator-1.5.0/aws_services/cloudhsm.json +415 -0
  85. iam_policy_validator-1.5.0/aws_services/cloudsearch.json +654 -0
  86. iam_policy_validator-1.5.0/aws_services/cloudshell.json +249 -0
  87. iam_policy_validator-1.5.0/aws_services/cloudtrail-data.json +57 -0
  88. iam_policy_validator-1.5.0/aws_services/cloudtrail.json +1361 -0
  89. iam_policy_validator-1.5.0/aws_services/cloudwatch.json +1139 -0
  90. iam_policy_validator-1.5.0/aws_services/codeartifact.json +1096 -0
  91. iam_policy_validator-1.5.0/aws_services/codebuild.json +2400 -0
  92. iam_policy_validator-1.5.0/aws_services/codecatalyst.json +708 -0
  93. iam_policy_validator-1.5.0/aws_services/codecommit.json +1853 -0
  94. iam_policy_validator-1.5.0/aws_services/codeconnections.json +893 -0
  95. iam_policy_validator-1.5.0/aws_services/codedeploy-commands-secure.json +66 -0
  96. iam_policy_validator-1.5.0/aws_services/codedeploy.json +972 -0
  97. iam_policy_validator-1.5.0/aws_services/codeguru-profiler.json +493 -0
  98. iam_policy_validator-1.5.0/aws_services/codeguru-reviewer.json +391 -0
  99. iam_policy_validator-1.5.0/aws_services/codeguru-security.json +319 -0
  100. iam_policy_validator-1.5.0/aws_services/codeguru.json +21 -0
  101. iam_policy_validator-1.5.0/aws_services/codepipeline.json +928 -0
  102. iam_policy_validator-1.5.0/aws_services/codestar-connections.json +893 -0
  103. iam_policy_validator-1.5.0/aws_services/codestar-notifications.json +340 -0
  104. iam_policy_validator-1.5.0/aws_services/codestar.json +478 -0
  105. iam_policy_validator-1.5.0/aws_services/codewhisperer.json +455 -0
  106. iam_policy_validator-1.5.0/aws_services/cognito-identity.json +518 -0
  107. iam_policy_validator-1.5.0/aws_services/cognito-idp.json +2277 -0
  108. iam_policy_validator-1.5.0/aws_services/cognito-sync.json +401 -0
  109. iam_policy_validator-1.5.0/aws_services/comprehend.json +2071 -0
  110. iam_policy_validator-1.5.0/aws_services/comprehendmedical.json +389 -0
  111. iam_policy_validator-1.5.0/aws_services/compute-optimizer.json +446 -0
  112. iam_policy_validator-1.5.0/aws_services/config.json +1936 -0
  113. iam_policy_validator-1.5.0/aws_services/connect-campaigns.json +768 -0
  114. iam_policy_validator-1.5.0/aws_services/connect.json +7821 -0
  115. iam_policy_validator-1.5.0/aws_services/consoleapp.json +49 -0
  116. iam_policy_validator-1.5.0/aws_services/consolidatedbilling.json +36 -0
  117. iam_policy_validator-1.5.0/aws_services/controlcatalog.json +132 -0
  118. iam_policy_validator-1.5.0/aws_services/controltower.json +1158 -0
  119. iam_policy_validator-1.5.0/aws_services/cost-optimization-hub.json +111 -0
  120. iam_policy_validator-1.5.0/aws_services/cur.json +261 -0
  121. iam_policy_validator-1.5.0/aws_services/customer-verification.json +81 -0
  122. iam_policy_validator-1.5.0/aws_services/databrew.json +984 -0
  123. iam_policy_validator-1.5.0/aws_services/dataexchange.json +956 -0
  124. iam_policy_validator-1.5.0/aws_services/datapipeline.json +514 -0
  125. iam_policy_validator-1.5.0/aws_services/datasync.json +1441 -0
  126. iam_policy_validator-1.5.0/aws_services/datazone.json +3021 -0
  127. iam_policy_validator-1.5.0/aws_services/dax.json +579 -0
  128. iam_policy_validator-1.5.0/aws_services/dbqms.json +201 -0
  129. iam_policy_validator-1.5.0/aws_services/deadline.json +2639 -0
  130. iam_policy_validator-1.5.0/aws_services/deepcomposer.json +442 -0
  131. iam_policy_validator-1.5.0/aws_services/deepracer.json +1302 -0
  132. iam_policy_validator-1.5.0/aws_services/detective.json +733 -0
  133. iam_policy_validator-1.5.0/aws_services/devicefarm.json +1751 -0
  134. iam_policy_validator-1.5.0/aws_services/devops-guru.json +503 -0
  135. iam_policy_validator-1.5.0/aws_services/directconnect.json +1424 -0
  136. iam_policy_validator-1.5.0/aws_services/discovery.json +452 -0
  137. iam_policy_validator-1.5.0/aws_services/dlm.json +198 -0
  138. iam_policy_validator-1.5.0/aws_services/dms.json +2544 -0
  139. iam_policy_validator-1.5.0/aws_services/docdb-elastic.json +481 -0
  140. iam_policy_validator-1.5.0/aws_services/drs.json +1937 -0
  141. iam_policy_validator-1.5.0/aws_services/ds-data.json +478 -0
  142. iam_policy_validator-1.5.0/aws_services/ds.json +1810 -0
  143. iam_policy_validator-1.5.0/aws_services/dsql.json +567 -0
  144. iam_policy_validator-1.5.0/aws_services/dynamodb.json +1640 -0
  145. iam_policy_validator-1.5.0/aws_services/ebs.json +203 -0
  146. iam_policy_validator-1.5.0/aws_services/ec2-instance-connect.json +139 -0
  147. iam_policy_validator-1.5.0/aws_services/ec2.json +25565 -0
  148. iam_policy_validator-1.5.0/aws_services/ec2messages.json +118 -0
  149. iam_policy_validator-1.5.0/aws_services/ecr-public.json +516 -0
  150. iam_policy_validator-1.5.0/aws_services/ecr.json +1016 -0
  151. iam_policy_validator-1.5.0/aws_services/ecs.json +1832 -0
  152. iam_policy_validator-1.5.0/aws_services/eks-auth.json +45 -0
  153. iam_policy_validator-1.5.0/aws_services/eks.json +1597 -0
  154. iam_policy_validator-1.5.0/aws_services/elasticache.json +2402 -0
  155. iam_policy_validator-1.5.0/aws_services/elasticbeanstalk.json +1331 -0
  156. iam_policy_validator-1.5.0/aws_services/elasticfilesystem.json +866 -0
  157. iam_policy_validator-1.5.0/aws_services/elasticloadbalancing.json +1911 -0
  158. iam_policy_validator-1.5.0/aws_services/elasticmapreduce.json +1690 -0
  159. iam_policy_validator-1.5.0/aws_services/elastictranscoder.json +339 -0
  160. iam_policy_validator-1.5.0/aws_services/elemental-activations.json +201 -0
  161. iam_policy_validator-1.5.0/aws_services/elemental-appliances-software.json +239 -0
  162. iam_policy_validator-1.5.0/aws_services/elemental-support-cases.json +363 -0
  163. iam_policy_validator-1.5.0/aws_services/elemental-support-content.json +21 -0
  164. iam_policy_validator-1.5.0/aws_services/emr-containers.json +616 -0
  165. iam_policy_validator-1.5.0/aws_services/emr-serverless.json +440 -0
  166. iam_policy_validator-1.5.0/aws_services/entityresolution.json +840 -0
  167. iam_policy_validator-1.5.0/aws_services/es.json +2084 -0
  168. iam_policy_validator-1.5.0/aws_services/events.json +1451 -0
  169. iam_policy_validator-1.5.0/aws_services/evidently.json +819 -0
  170. iam_policy_validator-1.5.0/aws_services/evs.json +300 -0
  171. iam_policy_validator-1.5.0/aws_services/execute-api.json +94 -0
  172. iam_policy_validator-1.5.0/aws_services/finspace-api.json +34 -0
  173. iam_policy_validator-1.5.0/aws_services/finspace.json +1400 -0
  174. iam_policy_validator-1.5.0/aws_services/firehose.json +283 -0
  175. iam_policy_validator-1.5.0/aws_services/fis.json +713 -0
  176. iam_policy_validator-1.5.0/aws_services/fms.json +851 -0
  177. iam_policy_validator-1.5.0/aws_services/forecast.json +1757 -0
  178. iam_policy_validator-1.5.0/aws_services/frauddetector.json +1878 -0
  179. iam_policy_validator-1.5.0/aws_services/freertos.json +379 -0
  180. iam_policy_validator-1.5.0/aws_services/freetier.json +111 -0
  181. iam_policy_validator-1.5.0/aws_services/fsx.json +1400 -0
  182. iam_policy_validator-1.5.0/aws_services/gamelift.json +2421 -0
  183. iam_policy_validator-1.5.0/aws_services/gameliftstreams.json +531 -0
  184. iam_policy_validator-1.5.0/aws_services/geo-maps.json +54 -0
  185. iam_policy_validator-1.5.0/aws_services/geo-places.json +154 -0
  186. iam_policy_validator-1.5.0/aws_services/geo-routes.json +114 -0
  187. iam_policy_validator-1.5.0/aws_services/geo.json +1402 -0
  188. iam_policy_validator-1.5.0/aws_services/glacier.json +669 -0
  189. iam_policy_validator-1.5.0/aws_services/globalaccelerator.json +1142 -0
  190. iam_policy_validator-1.5.0/aws_services/glue.json +6633 -0
  191. iam_policy_validator-1.5.0/aws_services/grafana.json +538 -0
  192. iam_policy_validator-1.5.0/aws_services/greengrass.json +2532 -0
  193. iam_policy_validator-1.5.0/aws_services/groundstation.json +810 -0
  194. iam_policy_validator-1.5.0/aws_services/groundtruthlabeling.json +246 -0
  195. iam_policy_validator-1.5.0/aws_services/guardduty.json +1615 -0
  196. iam_policy_validator-1.5.0/aws_services/health.json +256 -0
  197. iam_policy_validator-1.5.0/aws_services/healthlake.json +779 -0
  198. iam_policy_validator-1.5.0/aws_services/honeycode.json +542 -0
  199. iam_policy_validator-1.5.0/aws_services/iam.json +3720 -0
  200. iam_policy_validator-1.5.0/aws_services/identity-sync.json +284 -0
  201. iam_policy_validator-1.5.0/aws_services/identitystore-auth.json +51 -0
  202. iam_policy_validator-1.5.0/aws_services/identitystore.json +567 -0
  203. iam_policy_validator-1.5.0/aws_services/imagebuilder.json +1791 -0
  204. iam_policy_validator-1.5.0/aws_services/importexport.json +96 -0
  205. iam_policy_validator-1.5.0/aws_services/inspector-scan.json +21 -0
  206. iam_policy_validator-1.5.0/aws_services/inspector.json +561 -0
  207. iam_policy_validator-1.5.0/aws_services/inspector2.json +1325 -0
  208. iam_policy_validator-1.5.0/aws_services/internetmonitor.json +388 -0
  209. iam_policy_validator-1.5.0/aws_services/invoicing.json +329 -0
  210. iam_policy_validator-1.5.0/aws_services/iot-device-tester.json +81 -0
  211. iam_policy_validator-1.5.0/aws_services/iot.json +6181 -0
  212. iam_policy_validator-1.5.0/aws_services/iotanalytics.json +768 -0
  213. iam_policy_validator-1.5.0/aws_services/iotdeviceadvisor.json +330 -0
  214. iam_policy_validator-1.5.0/aws_services/iotevents.json +833 -0
  215. iam_policy_validator-1.5.0/aws_services/iotfleethub.json +198 -0
  216. iam_policy_validator-1.5.0/aws_services/iotfleetwise.json +1313 -0
  217. iam_policy_validator-1.5.0/aws_services/iotjobsdata.json +108 -0
  218. iam_policy_validator-1.5.0/aws_services/iotmanagedintegrations.json +1568 -0
  219. iam_policy_validator-1.5.0/aws_services/iotsitewise.json +2388 -0
  220. iam_policy_validator-1.5.0/aws_services/iottwinmaker.json +990 -0
  221. iam_policy_validator-1.5.0/aws_services/iotwireless.json +2459 -0
  222. iam_policy_validator-1.5.0/aws_services/iq-permission.json +194 -0
  223. iam_policy_validator-1.5.0/aws_services/iq.json +1295 -0
  224. iam_policy_validator-1.5.0/aws_services/ivs.json +1696 -0
  225. iam_policy_validator-1.5.0/aws_services/ivschat.json +415 -0
  226. iam_policy_validator-1.5.0/aws_services/kafka-cluster.json +423 -0
  227. iam_policy_validator-1.5.0/aws_services/kafka.json +1116 -0
  228. iam_policy_validator-1.5.0/aws_services/kafkaconnect.json +452 -0
  229. iam_policy_validator-1.5.0/aws_services/kendra-ranking.json +218 -0
  230. iam_policy_validator-1.5.0/aws_services/kendra.json +1576 -0
  231. iam_policy_validator-1.5.0/aws_services/kinesis.json +925 -0
  232. iam_policy_validator-1.5.0/aws_services/kinesisanalytics.json +713 -0
  233. iam_policy_validator-1.5.0/aws_services/kinesisvideo.json +942 -0
  234. iam_policy_validator-1.5.0/aws_services/kms.json +2213 -0
  235. iam_policy_validator-1.5.0/aws_services/lakeformation.json +902 -0
  236. iam_policy_validator-1.5.0/aws_services/lambda.json +1616 -0
  237. iam_policy_validator-1.5.0/aws_services/launchwizard.json +643 -0
  238. iam_policy_validator-1.5.0/aws_services/lex.json +3086 -0
  239. iam_policy_validator-1.5.0/aws_services/license-manager-linux-subscriptions.json +238 -0
  240. iam_policy_validator-1.5.0/aws_services/license-manager-user-subscriptions.json +440 -0
  241. iam_policy_validator-1.5.0/aws_services/license-manager.json +1007 -0
  242. iam_policy_validator-1.5.0/aws_services/lightsail.json +3142 -0
  243. iam_policy_validator-1.5.0/aws_services/logs.json +2007 -0
  244. iam_policy_validator-1.5.0/aws_services/lookoutequipment.json +1138 -0
  245. iam_policy_validator-1.5.0/aws_services/lookoutmetrics.json +689 -0
  246. iam_policy_validator-1.5.0/aws_services/lookoutvision.json +494 -0
  247. iam_policy_validator-1.5.0/aws_services/m2.json +775 -0
  248. iam_policy_validator-1.5.0/aws_services/machinelearning.json +614 -0
  249. iam_policy_validator-1.5.0/aws_services/macie2.json +1464 -0
  250. iam_policy_validator-1.5.0/aws_services/managedblockchain-query.json +141 -0
  251. iam_policy_validator-1.5.0/aws_services/managedblockchain.json +780 -0
  252. iam_policy_validator-1.5.0/aws_services/mapcredits.json +74 -0
  253. iam_policy_validator-1.5.0/aws_services/marketplacecommerceanalytics.json +36 -0
  254. iam_policy_validator-1.5.0/aws_services/mechanicalturk.json +591 -0
  255. iam_policy_validator-1.5.0/aws_services/mediaconnect.json +960 -0
  256. iam_policy_validator-1.5.0/aws_services/mediaconvert.json +733 -0
  257. iam_policy_validator-1.5.0/aws_services/mediaimport.json +21 -0
  258. iam_policy_validator-1.5.0/aws_services/medialive.json +2777 -0
  259. iam_policy_validator-1.5.0/aws_services/mediapackage-vod.json +402 -0
  260. iam_policy_validator-1.5.0/aws_services/mediapackage.json +442 -0
  261. iam_policy_validator-1.5.0/aws_services/mediapackagev2.json +921 -0
  262. iam_policy_validator-1.5.0/aws_services/mediastore.json +570 -0
  263. iam_policy_validator-1.5.0/aws_services/mediatailor.json +974 -0
  264. iam_policy_validator-1.5.0/aws_services/medical-imaging.json +638 -0
  265. iam_policy_validator-1.5.0/aws_services/memorydb.json +1259 -0
  266. iam_policy_validator-1.5.0/aws_services/mgh.json +932 -0
  267. iam_policy_validator-1.5.0/aws_services/mgn.json +2644 -0
  268. iam_policy_validator-1.5.0/aws_services/migrationhub-orchestrator.json +711 -0
  269. iam_policy_validator-1.5.0/aws_services/migrationhub-strategy.json +471 -0
  270. iam_policy_validator-1.5.0/aws_services/mobileanalytics.json +51 -0
  271. iam_policy_validator-1.5.0/aws_services/mobiletargeting.json +2802 -0
  272. iam_policy_validator-1.5.0/aws_services/monitron.json +398 -0
  273. iam_policy_validator-1.5.0/aws_services/mpa.json +534 -0
  274. iam_policy_validator-1.5.0/aws_services/mq.json +560 -0
  275. iam_policy_validator-1.5.0/aws_services/neptune-db.json +697 -0
  276. iam_policy_validator-1.5.0/aws_services/neptune-graph.json +956 -0
  277. iam_policy_validator-1.5.0/aws_services/network-firewall.json +1370 -0
  278. iam_policy_validator-1.5.0/aws_services/network-security-director.json +141 -0
  279. iam_policy_validator-1.5.0/aws_services/networkflowmonitor.json +570 -0
  280. iam_policy_validator-1.5.0/aws_services/networkmanager-chat.json +111 -0
  281. iam_policy_validator-1.5.0/aws_services/networkmanager.json +2143 -0
  282. iam_policy_validator-1.5.0/aws_services/networkmonitor.json +288 -0
  283. iam_policy_validator-1.5.0/aws_services/nimble.json +1265 -0
  284. iam_policy_validator-1.5.0/aws_services/notifications-contacts.json +213 -0
  285. iam_policy_validator-1.5.0/aws_services/notifications.json +813 -0
  286. iam_policy_validator-1.5.0/aws_services/oam.json +387 -0
  287. iam_policy_validator-1.5.0/aws_services/observabilityadmin.json +628 -0
  288. iam_policy_validator-1.5.0/aws_services/odb.json +1076 -0
  289. iam_policy_validator-1.5.0/aws_services/omics.json +2088 -0
  290. iam_policy_validator-1.5.0/aws_services/one.json +675 -0
  291. iam_policy_validator-1.5.0/aws_services/opensearch.json +120 -0
  292. iam_policy_validator-1.5.0/aws_services/opsworks-cm.json +305 -0
  293. iam_policy_validator-1.5.0/aws_services/opsworks.json +1454 -0
  294. iam_policy_validator-1.5.0/aws_services/organizations.json +1311 -0
  295. iam_policy_validator-1.5.0/aws_services/osis.json +497 -0
  296. iam_policy_validator-1.5.0/aws_services/outposts.json +729 -0
  297. iam_policy_validator-1.5.0/aws_services/panorama.json +727 -0
  298. iam_policy_validator-1.5.0/aws_services/partnercentral-account-management.json +51 -0
  299. iam_policy_validator-1.5.0/aws_services/partnercentral.json +940 -0
  300. iam_policy_validator-1.5.0/aws_services/payment-cryptography.json +777 -0
  301. iam_policy_validator-1.5.0/aws_services/payments.json +428 -0
  302. iam_policy_validator-1.5.0/aws_services/pca-connector-ad.json +564 -0
  303. iam_policy_validator-1.5.0/aws_services/pca-connector-scep.json +282 -0
  304. iam_policy_validator-1.5.0/aws_services/pcs.json +510 -0
  305. iam_policy_validator-1.5.0/aws_services/personalize.json +1661 -0
  306. iam_policy_validator-1.5.0/aws_services/pi.json +335 -0
  307. iam_policy_validator-1.5.0/aws_services/pipes.json +264 -0
  308. iam_policy_validator-1.5.0/aws_services/polly.json +174 -0
  309. iam_policy_validator-1.5.0/aws_services/pricing.json +81 -0
  310. iam_policy_validator-1.5.0/aws_services/private-networks.json +646 -0
  311. iam_policy_validator-1.5.0/aws_services/profile.json +1988 -0
  312. iam_policy_validator-1.5.0/aws_services/proton.json +2482 -0
  313. iam_policy_validator-1.5.0/aws_services/purchase-orders.json +341 -0
  314. iam_policy_validator-1.5.0/aws_services/q.json +699 -0
  315. iam_policy_validator-1.5.0/aws_services/qapps.json +1017 -0
  316. iam_policy_validator-1.5.0/aws_services/qbusiness.json +2236 -0
  317. iam_policy_validator-1.5.0/aws_services/qdeveloper.json +183 -0
  318. iam_policy_validator-1.5.0/aws_services/qldb.json +816 -0
  319. iam_policy_validator-1.5.0/aws_services/quicksight.json +5593 -0
  320. iam_policy_validator-1.5.0/aws_services/ram.json +877 -0
  321. iam_policy_validator-1.5.0/aws_services/rbin.json +287 -0
  322. iam_policy_validator-1.5.0/aws_services/rds-data.json +176 -0
  323. iam_policy_validator-1.5.0/aws_services/rds-db.json +34 -0
  324. iam_policy_validator-1.5.0/aws_services/rds.json +4376 -0
  325. iam_policy_validator-1.5.0/aws_services/redshift-data.json +296 -0
  326. iam_policy_validator-1.5.0/aws_services/redshift-serverless.json +1335 -0
  327. iam_policy_validator-1.5.0/aws_services/redshift.json +3367 -0
  328. iam_policy_validator-1.5.0/aws_services/refactor-spaces.json +655 -0
  329. iam_policy_validator-1.5.0/aws_services/rekognition.json +1503 -0
  330. iam_policy_validator-1.5.0/aws_services/repostspace.json +422 -0
  331. iam_policy_validator-1.5.0/aws_services/resiliencehub.json +1325 -0
  332. iam_policy_validator-1.5.0/aws_services/resource-explorer-2.json +705 -0
  333. iam_policy_validator-1.5.0/aws_services/resource-explorer.json +51 -0
  334. iam_policy_validator-1.5.0/aws_services/resource-groups.json +607 -0
  335. iam_policy_validator-1.5.0/aws_services/rhelkb.json +21 -0
  336. iam_policy_validator-1.5.0/aws_services/robomaker.json +1335 -0
  337. iam_policy_validator-1.5.0/aws_services/rolesanywhere.json +661 -0
  338. iam_policy_validator-1.5.0/aws_services/route53-recovery-cluster.json +103 -0
  339. iam_policy_validator-1.5.0/aws_services/route53-recovery-control-config.json +627 -0
  340. iam_policy_validator-1.5.0/aws_services/route53-recovery-readiness.json +713 -0
  341. iam_policy_validator-1.5.0/aws_services/route53.json +1418 -0
  342. iam_policy_validator-1.5.0/aws_services/route53domains.json +516 -0
  343. iam_policy_validator-1.5.0/aws_services/route53profiles.json +357 -0
  344. iam_policy_validator-1.5.0/aws_services/route53resolver.json +1540 -0
  345. iam_policy_validator-1.5.0/aws_services/rtbfabric.json +632 -0
  346. iam_policy_validator-1.5.0/aws_services/rum.json +438 -0
  347. iam_policy_validator-1.5.0/aws_services/s3-object-lambda.json +697 -0
  348. iam_policy_validator-1.5.0/aws_services/s3-outposts.json +1445 -0
  349. iam_policy_validator-1.5.0/aws_services/s3.json +5374 -0
  350. iam_policy_validator-1.5.0/aws_services/s3express.json +845 -0
  351. iam_policy_validator-1.5.0/aws_services/s3tables.json +788 -0
  352. iam_policy_validator-1.5.0/aws_services/s3vectors.json +353 -0
  353. iam_policy_validator-1.5.0/aws_services/sagemaker-data-science-assistant.json +21 -0
  354. iam_policy_validator-1.5.0/aws_services/sagemaker-geospatial.json +479 -0
  355. iam_policy_validator-1.5.0/aws_services/sagemaker-mlflow.json +1247 -0
  356. iam_policy_validator-1.5.0/aws_services/sagemaker.json +9855 -0
  357. iam_policy_validator-1.5.0/aws_services/savingsplans.json +245 -0
  358. iam_policy_validator-1.5.0/aws_services/scheduler.json +307 -0
  359. iam_policy_validator-1.5.0/aws_services/schemas.json +705 -0
  360. iam_policy_validator-1.5.0/aws_services/scn.json +813 -0
  361. iam_policy_validator-1.5.0/aws_services/sdb.json +209 -0
  362. iam_policy_validator-1.5.0/aws_services/secretsmanager.json +756 -0
  363. iam_policy_validator-1.5.0/aws_services/security-ir.json +506 -0
  364. iam_policy_validator-1.5.0/aws_services/securityhub.json +2313 -0
  365. iam_policy_validator-1.5.0/aws_services/securitylake.json +638 -0
  366. iam_policy_validator-1.5.0/aws_services/serverlessrepo.json +325 -0
  367. iam_policy_validator-1.5.0/aws_services/servicecatalog.json +2287 -0
  368. iam_policy_validator-1.5.0/aws_services/servicediscovery.json +768 -0
  369. iam_policy_validator-1.5.0/aws_services/serviceextract.json +21 -0
  370. iam_policy_validator-1.5.0/aws_services/servicequotas.json +423 -0
  371. iam_policy_validator-1.5.0/aws_services/ses.json +5172 -0
  372. iam_policy_validator-1.5.0/aws_services/shield.json +755 -0
  373. iam_policy_validator-1.5.0/aws_services/signer.json +437 -0
  374. iam_policy_validator-1.5.0/aws_services/signin.json +36 -0
  375. iam_policy_validator-1.5.0/aws_services/simspaceweaver.json +353 -0
  376. iam_policy_validator-1.5.0/aws_services/sms-voice.json +2083 -0
  377. iam_policy_validator-1.5.0/aws_services/sms.json +561 -0
  378. iam_policy_validator-1.5.0/aws_services/snow-device-management.json +298 -0
  379. iam_policy_validator-1.5.0/aws_services/snowball.json +411 -0
  380. iam_policy_validator-1.5.0/aws_services/sns.json +754 -0
  381. iam_policy_validator-1.5.0/aws_services/social-messaging.json +479 -0
  382. iam_policy_validator-1.5.0/aws_services/sqlworkbench.json +1553 -0
  383. iam_policy_validator-1.5.0/aws_services/sqs.json +443 -0
  384. iam_policy_validator-1.5.0/aws_services/ssm-contacts.json +868 -0
  385. iam_policy_validator-1.5.0/aws_services/ssm-guiconnect.json +111 -0
  386. iam_policy_validator-1.5.0/aws_services/ssm-incidents.json +717 -0
  387. iam_policy_validator-1.5.0/aws_services/ssm-quicksetup.json +309 -0
  388. iam_policy_validator-1.5.0/aws_services/ssm-sap.json +573 -0
  389. iam_policy_validator-1.5.0/aws_services/ssm.json +3613 -0
  390. iam_policy_validator-1.5.0/aws_services/ssmmessages.json +84 -0
  391. iam_policy_validator-1.5.0/aws_services/sso-directory.json +861 -0
  392. iam_policy_validator-1.5.0/aws_services/sso-oauth.json +74 -0
  393. iam_policy_validator-1.5.0/aws_services/sso.json +2493 -0
  394. iam_policy_validator-1.5.0/aws_services/states.json +914 -0
  395. iam_policy_validator-1.5.0/aws_services/storagegateway.json +2120 -0
  396. iam_policy_validator-1.5.0/aws_services/sts.json +728 -0
  397. iam_policy_validator-1.5.0/aws_services/support-console.json +171 -0
  398. iam_policy_validator-1.5.0/aws_services/support.json +471 -0
  399. iam_policy_validator-1.5.0/aws_services/supportapp.json +201 -0
  400. iam_policy_validator-1.5.0/aws_services/supportplans.json +81 -0
  401. iam_policy_validator-1.5.0/aws_services/sustainability.json +21 -0
  402. iam_policy_validator-1.5.0/aws_services/swf.json +1250 -0
  403. iam_policy_validator-1.5.0/aws_services/synthetics.json +545 -0
  404. iam_policy_validator-1.5.0/aws_services/tag.json +126 -0
  405. iam_policy_validator-1.5.0/aws_services/tax.json +351 -0
  406. iam_policy_validator-1.5.0/aws_services/textract.json +490 -0
  407. iam_policy_validator-1.5.0/aws_services/thinclient.json +463 -0
  408. iam_policy_validator-1.5.0/aws_services/timestream-influxdb.json +423 -0
  409. iam_policy_validator-1.5.0/aws_services/timestream.json +767 -0
  410. iam_policy_validator-1.5.0/aws_services/tiros.json +81 -0
  411. iam_policy_validator-1.5.0/aws_services/tnb.json +831 -0
  412. iam_policy_validator-1.5.0/aws_services/transcribe.json +1073 -0
  413. iam_policy_validator-1.5.0/aws_services/transfer.json +1607 -0
  414. iam_policy_validator-1.5.0/aws_services/transform.json +271 -0
  415. iam_policy_validator-1.5.0/aws_services/translate.json +426 -0
  416. iam_policy_validator-1.5.0/aws_services/trustedadvisor.json +829 -0
  417. iam_policy_validator-1.5.0/aws_services/ts.json +223 -0
  418. iam_policy_validator-1.5.0/aws_services/user-subscriptions.json +107 -0
  419. iam_policy_validator-1.5.0/aws_services/uxc.json +51 -0
  420. iam_policy_validator-1.5.0/aws_services/vendor-insights.json +570 -0
  421. iam_policy_validator-1.5.0/aws_services/verified-access.json +21 -0
  422. iam_policy_validator-1.5.0/aws_services/verifiedpermissions.json +579 -0
  423. iam_policy_validator-1.5.0/aws_services/voiceid.json +648 -0
  424. iam_policy_validator-1.5.0/aws_services/vpc-lattice-svcs.json +134 -0
  425. iam_policy_validator-1.5.0/aws_services/vpc-lattice.json +1876 -0
  426. iam_policy_validator-1.5.0/aws_services/vpce.json +21 -0
  427. iam_policy_validator-1.5.0/aws_services/waf-regional.json +1706 -0
  428. iam_policy_validator-1.5.0/aws_services/waf.json +1617 -0
  429. iam_policy_validator-1.5.0/aws_services/wafv2.json +1355 -0
  430. iam_policy_validator-1.5.0/aws_services/wam.json +21 -0
  431. iam_policy_validator-1.5.0/aws_services/wellarchitected.json +1665 -0
  432. iam_policy_validator-1.5.0/aws_services/wickr.json +185 -0
  433. iam_policy_validator-1.5.0/aws_services/wisdom.json +2122 -0
  434. iam_policy_validator-1.5.0/aws_services/workdocs.json +934 -0
  435. iam_policy_validator-1.5.0/aws_services/worklink.json +726 -0
  436. iam_policy_validator-1.5.0/aws_services/workmail.json +2548 -0
  437. iam_policy_validator-1.5.0/aws_services/workmailmessageflow.json +54 -0
  438. iam_policy_validator-1.5.0/aws_services/workspaces-instances.json +292 -0
  439. iam_policy_validator-1.5.0/aws_services/workspaces-web.json +1652 -0
  440. iam_policy_validator-1.5.0/aws_services/workspaces.json +2038 -0
  441. iam_policy_validator-1.5.0/aws_services/xray.json +813 -0
  442. iam_policy_validator-1.5.0/docs/README.md +43 -0
  443. iam_policy_validator-1.5.0/docs/ROADMAP.md +307 -0
  444. iam_policy_validator-1.5.0/docs/aws-api-configuration.md +157 -0
  445. iam_policy_validator-1.5.0/docs/aws-services-backup.md +159 -0
  446. iam_policy_validator-1.5.0/docs/condition-requirements.md +182 -0
  447. iam_policy_validator-1.5.0/docs/configuration.md +574 -0
  448. iam_policy_validator-1.5.0/docs/custom-checks.md +558 -0
  449. iam_policy_validator-1.5.0/docs/development/PUBLISHING.md +281 -0
  450. iam_policy_validator-1.0.2/examples/github-actions/README.md → iam_policy_validator-1.5.0/docs/github-actions-workflows.md +35 -12
  451. iam_policy_validator-1.5.0/docs/modular-configuration.md +327 -0
  452. iam_policy_validator-1.0.2/examples/policies/test-cases/README-privilege-escalation.md → iam_policy_validator-1.5.0/docs/privilege-escalation.md +2 -2
  453. iam_policy_validator-1.5.0/docs/python-library-usage.md +987 -0
  454. iam_policy_validator-1.5.0/docs/smart-filtering.md +381 -0
  455. iam_policy_validator-1.5.0/examples/README.md +214 -0
  456. iam_policy_validator-1.5.0/examples/configs/basic-config.yaml +31 -0
  457. iam_policy_validator-1.5.0/examples/configs/full-reference-config.yaml +661 -0
  458. iam_policy_validator-1.5.0/examples/configs/offline-validation.yaml +28 -0
  459. iam_policy_validator-1.5.0/examples/configs/principal-condition-enforcement.yaml +240 -0
  460. iam_policy_validator-1.5.0/examples/configs/principal-validation-public-with-conditions.yaml +33 -0
  461. iam_policy_validator-1.5.0/examples/configs/principal-validation-relaxed.yaml +32 -0
  462. iam_policy_validator-1.5.0/examples/configs/principal-validation-strict.yaml +36 -0
  463. iam_policy_validator-1.5.0/examples/configs/strict-security.yaml +128 -0
  464. iam_policy_validator-1.5.0/examples/custom_checks/README.md +623 -0
  465. iam_policy_validator-1.5.0/examples/github-actions/README.md +119 -0
  466. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/github-actions/access-analyzer-only.yaml +5 -6
  467. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/github-actions/basic-validation.yaml +12 -9
  468. iam_policy_validator-1.0.2/examples/github-actions/custom-policy-checks.yml → iam_policy_validator-1.5.0/examples/github-actions/custom-policy-checks.yaml +2 -2
  469. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/github-actions/multi-region-validation.yaml +5 -6
  470. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/github-actions/resource-policy-validation.yaml +7 -8
  471. iam_policy_validator-1.5.0/examples/github-actions/sarif-code-scanning.yaml +62 -0
  472. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/github-actions/sequential-validation.yaml +10 -7
  473. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/github-actions/two-step-validation.yaml +7 -9
  474. iam_policy_validator-1.5.0/examples/github-actions/validate-changed-files.yaml +54 -0
  475. iam_policy_validator-1.5.0/examples/iam-test-policies/README.md +159 -0
  476. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/allowed-wildcard-resource.json +21 -0
  477. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/insecure_policy.json +18 -1
  478. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/insecure_policy.yaml +37 -0
  479. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/invalid-resource-constraint.json +41 -0
  480. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/invalid-sid-special-chars.json +17 -0
  481. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/invalid-sid-with-spaces.json +23 -0
  482. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/lambda_developer.yaml +53 -0
  483. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/s3_bucket_access.yaml +58 -0
  484. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/sample_policy.yaml +17 -0
  485. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/sensitive-action-wildcards.json +46 -0
  486. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/valid-sid-formats.json +29 -0
  487. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/wildcard_examples.yaml +47 -0
  488. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/wrong-condition-key.json +27 -0
  489. iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies/wrong-s3-condition.json +28 -0
  490. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-control-policies/rcp-invalid-allow-effect.json +12 -0
  491. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-control-policies/rcp-invalid-not-action.json +12 -0
  492. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-control-policies/rcp-invalid-specific-principal.json +14 -0
  493. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-control-policies/rcp-invalid-unsupported-service.json +17 -0
  494. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-control-policies/rcp-invalid-wildcard-action.json +12 -0
  495. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-control-policies/rcp-valid-enforce-encryption.json +32 -0
  496. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/README.md +218 -0
  497. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/backup-vault-policy-org-access.json +34 -0
  498. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/ecr-repository-policy-org-restricted.json +25 -0
  499. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/ecr-repository-policy-public.json +16 -0
  500. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/efs-filesystem-policy-vpc-only.json +23 -0
  501. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/glacier-vault-policy-cross-account.json +23 -0
  502. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/kms-key-policy-cross-account.json +29 -0
  503. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/kms-key-policy-insecure.json +26 -0
  504. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/kms-key-policy-org-restricted.json +38 -0
  505. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/kms-key-policy-service-specific.json +53 -0
  506. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/lambda-permission-api-gateway.json +19 -0
  507. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/lambda-permission-cross-account-invoke.json +17 -0
  508. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/lambda-permission-eventbridge-multiple.json +23 -0
  509. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/lambda-permission-public-url.json +17 -0
  510. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/lambda-permission-s3-trigger.json +22 -0
  511. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/opensearch-domain-policy-ip-restricted.json +22 -0
  512. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-cloudfront.json +19 -0
  513. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-cross-account-org.json +25 -0
  514. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-insecure-transport.json +17 -0
  515. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-ip-restriction.json +36 -0
  516. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-public-with-conditions.json +20 -0
  517. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-public.json +12 -0
  518. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-specific-account.json +17 -0
  519. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-vpc-endpoint.json +20 -0
  520. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/s3-bucket-policy-wildcard-actions.json +21 -0
  521. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/secrets-manager-policy-cross-account.json +25 -0
  522. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account-mfa.json +25 -0
  523. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account.json +20 -0
  524. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sns-topic-policy-eventbridge.json +18 -0
  525. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sns-topic-policy-org-wide.json +23 -0
  526. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sns-topic-policy-public-no-conditions.json +15 -0
  527. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sqs-queue-policy-cross-account-role.json +26 -0
  528. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sqs-queue-policy-iam-users-mfa.json +27 -0
  529. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sqs-queue-policy-public.json +12 -0
  530. iam_policy_validator-1.5.0/examples/iam-test-policies/resource-policies/sqs-queue-policy-sns-subscription.json +18 -0
  531. iam_policy_validator-1.5.0/examples/iam-test-policies/service-control-policies/deny-root-account-usage.json +16 -0
  532. iam_policy_validator-1.5.0/examples/iam-test-policies/service-control-policies/require-mfa.json +24 -0
  533. iam_policy_validator-1.5.0/examples/iam-test-policies/service-control-policies/restrict-regions.json +20 -0
  534. iam_policy_validator-1.5.0/examples/library-usage/README.md +225 -0
  535. iam_policy_validator-1.5.0/examples/library-usage/example1_basic_usage.py +77 -0
  536. iam_policy_validator-1.5.0/examples/library-usage/example2_config_file.py +111 -0
  537. iam_policy_validator-1.5.0/examples/library-usage/example3_programmatic_config.py +158 -0
  538. iam_policy_validator-1.5.0/examples/library-usage/example4_custom_condition_requirements.py +347 -0
  539. iam_policy_validator-1.5.0/examples/library-usage/quick_reference.py +230 -0
  540. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/__version__.py +1 -1
  541. iam_policy_validator-1.5.0/iam_validator/checks/__init__.py +37 -0
  542. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/checks/action_condition_enforcement.py +113 -34
  543. iam_policy_validator-1.5.0/iam_validator/checks/action_resource_constraint.py +151 -0
  544. iam_policy_validator-1.5.0/iam_validator/checks/action_validation.py +72 -0
  545. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/checks/condition_key_validation.py +21 -1
  546. iam_policy_validator-1.5.0/iam_validator/checks/full_wildcard.py +67 -0
  547. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/checks/policy_size.py +1 -0
  548. iam_policy_validator-1.5.0/iam_validator/checks/policy_type_validation.py +299 -0
  549. iam_policy_validator-1.5.0/iam_validator/checks/principal_validation.py +776 -0
  550. iam_policy_validator-1.5.0/iam_validator/checks/sensitive_action.py +178 -0
  551. iam_policy_validator-1.5.0/iam_validator/checks/service_wildcard.py +105 -0
  552. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/checks/sid_uniqueness.py +48 -8
  553. iam_policy_validator-1.5.0/iam_validator/checks/utils/__init__.py +1 -0
  554. iam_policy_validator-1.5.0/iam_validator/checks/utils/policy_level_checks.py +143 -0
  555. iam_policy_validator-1.5.0/iam_validator/checks/utils/sensitive_action_matcher.py +260 -0
  556. iam_policy_validator-1.5.0/iam_validator/checks/utils/wildcard_expansion.py +87 -0
  557. iam_policy_validator-1.5.0/iam_validator/checks/wildcard_action.py +62 -0
  558. iam_policy_validator-1.5.0/iam_validator/checks/wildcard_resource.py +131 -0
  559. iam_policy_validator-1.5.0/iam_validator/commands/__init__.py +25 -0
  560. iam_policy_validator-1.5.0/iam_validator/commands/cache.py +392 -0
  561. iam_policy_validator-1.5.0/iam_validator/commands/download_services.py +255 -0
  562. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/commands/post_to_pr.py +7 -0
  563. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/commands/validate.py +211 -21
  564. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/access_analyzer_report.py +2 -1
  565. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/aws_fetcher.py +246 -37
  566. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/check_registry.py +26 -19
  567. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/cli.py +27 -10
  568. iam_policy_validator-1.5.0/iam_validator/core/config/__init__.py +83 -0
  569. iam_policy_validator-1.5.0/iam_validator/core/config/aws_api.py +35 -0
  570. iam_policy_validator-1.5.0/iam_validator/core/config/condition_requirements.py +535 -0
  571. iam_policy_validator-1.5.0/iam_validator/core/config/defaults.py +390 -0
  572. iam_policy_validator-1.5.0/iam_validator/core/config/principal_requirements.py +421 -0
  573. iam_policy_validator-1.5.0/iam_validator/core/config/sensitive_actions.py +133 -0
  574. iam_policy_validator-1.5.0/iam_validator/core/config/service_principals.py +95 -0
  575. iam_policy_validator-1.5.0/iam_validator/core/config/wildcards.py +124 -0
  576. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/config_loader.py +68 -11
  577. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/__init__.py +2 -0
  578. iam_policy_validator-1.5.0/iam_validator/core/formatters/console.py +59 -0
  579. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/csv.py +7 -2
  580. iam_policy_validator-1.5.0/iam_validator/core/formatters/enhanced.py +440 -0
  581. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/html.py +127 -37
  582. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/markdown.py +10 -2
  583. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/sarif.py +78 -14
  584. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/models.py +43 -9
  585. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/policy_checks.py +68 -8
  586. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/pr_commenter.py +30 -9
  587. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/report.py +119 -29
  588. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/pyproject.toml +10 -2
  589. iam_policy_validator-1.5.0/scripts/download_aws_services.py +215 -0
  590. iam_policy_validator-1.5.0/scripts/sync_defaults_from_yaml.py +204 -0
  591. iam_policy_validator-1.5.0/tests/test_action_resource_constraint.py +273 -0
  592. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_action_validation_check.py +6 -7
  593. iam_policy_validator-1.5.0/tests/test_aws_api_config.py +10 -0
  594. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_condition_key_validation_check.py +98 -13
  595. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_config_loader.py +19 -10
  596. iam_policy_validator-1.5.0/tests/test_full_wildcard_check.py +254 -0
  597. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_models.py +8 -2
  598. iam_policy_validator-1.5.0/tests/test_policy_type_validation.py +334 -0
  599. iam_policy_validator-1.5.0/tests/test_principal_validation_check.py +1084 -0
  600. iam_policy_validator-1.5.0/tests/test_sensitive_action_wildcard_expansion.py +302 -0
  601. iam_policy_validator-1.5.0/tests/test_service_wildcard_check.py +332 -0
  602. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_sid_uniqueness_check.py +4 -4
  603. iam_policy_validator-1.5.0/tests/test_wildcard_action_check.py +297 -0
  604. iam_policy_validator-1.5.0/tests/test_wildcard_resource_check.py +349 -0
  605. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/uv.lock +51 -35
  606. iam_policy_validator-1.0.2/.github/workflows/release.yml +0 -119
  607. iam_policy_validator-1.0.2/.python-version +0 -1
  608. iam_policy_validator-1.0.2/DOCS.md +0 -941
  609. iam_policy_validator-1.0.2/PKG-INFO +0 -984
  610. iam_policy_validator-1.0.2/README.md +0 -942
  611. iam_policy_validator-1.0.2/docs/README.md +0 -23
  612. iam_policy_validator-1.0.2/docs/development/PUBLISHING.md +0 -240
  613. iam_policy_validator-1.0.2/examples/README.md +0 -206
  614. iam_policy_validator-1.0.2/examples/configs/action-condition-enforcement-advanced.yaml +0 -243
  615. iam_policy_validator-1.0.2/examples/configs/config-privilege-escalation.yaml +0 -36
  616. iam_policy_validator-1.0.2/examples/configs/custom-business-rules.yaml +0 -83
  617. iam_policy_validator-1.0.2/examples/configs/custom-wildcard-config.yaml +0 -44
  618. iam_policy_validator-1.0.2/examples/configs/none_of_example.yaml +0 -54
  619. iam_policy_validator-1.0.2/examples/configs/unified-condition-enforcement.yaml +0 -287
  620. iam_policy_validator-1.0.2/examples/custom_checks/README.md +0 -550
  621. iam_policy_validator-1.0.2/iam-validator.yaml +0 -584
  622. iam_policy_validator-1.0.2/iam_validator/checks/__init__.py +0 -23
  623. iam_policy_validator-1.0.2/iam_validator/checks/action_validation.py +0 -192
  624. iam_policy_validator-1.0.2/iam_validator/checks/security_best_practices.py +0 -674
  625. iam_policy_validator-1.0.2/iam_validator/commands/__init__.py +0 -14
  626. iam_policy_validator-1.0.2/iam_validator/core/formatters/console.py +0 -22
  627. iam_policy_validator-1.0.2/tests/test_security_best_practices.py +0 -1183
  628. iam_policy_validator-1.0.2/tests/test_wildcard_allowlist.py +0 -288
  629. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/.github/dependabot.yml +0 -0
  630. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/.gitignore +0 -0
  631. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/LICENSE +0 -0
  632. /iam_policy_validator-1.0.2/examples/github-actions/action-examples.md → /iam_policy_validator-1.5.0/docs/github-actions-examples.md +0 -0
  633. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/access-analyzer/example1.json +0 -0
  634. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/access-analyzer/example2.json +0 -0
  635. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/advanced_multi_condition_validator.py +0 -0
  636. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/cross_account_external_id_check.py +0 -0
  637. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/domain_restriction_check.py +0 -0
  638. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/encryption_required_check.py +0 -0
  639. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/mfa_required_check.py +0 -0
  640. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/region_restriction_check.py +0 -0
  641. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/tag_enforcement_check.py +0 -0
  642. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/examples/custom_checks/time_based_access_check.py +0 -0
  643. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/api_gateway_management.json +0 -0
  644. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/athena_query_access.json +0 -0
  645. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/backup_vault_access.json +0 -0
  646. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/cloudformation_deployer.json +0 -0
  647. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/cloudwatch_monitoring.json +0 -0
  648. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/cognito_user_pool.json +0 -0
  649. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/dynamodb_table_access.json +0 -0
  650. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/ecs_task_execution.json +0 -0
  651. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/eventbridge_rules.json +0 -0
  652. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/glue_etl_jobs.json +0 -0
  653. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/invalid_policy.json +0 -0
  654. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/kms_encryption_keys.json +0 -0
  655. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/lambda_developer.json +0 -0
  656. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/maximum_size_policy.json +0 -0
  657. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/policy_missing_required_tags.json +0 -0
  658. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/policy_tag_enforcement_example.json +0 -0
  659. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/policy_with_wildcard_resources.json +0 -0
  660. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/privilege_escalation_scattered.json +0 -0
  661. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/rds_database_admin.json +0 -0
  662. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/sample_policy.json +0 -0
  663. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/secrets_manager_access.json +0 -0
  664. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/sns_sqs_messaging.json +0 -0
  665. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/step_functions_workflow.json +0 -0
  666. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/test_none_of_valid.json +0 -0
  667. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/test_none_of_violations.json +0 -0
  668. {iam_policy_validator-1.0.2/examples/policies/test-cases → iam_policy_validator-1.5.0/examples/iam-test-policies/identity-policies}/wildcard_examples.json +0 -0
  669. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/__init__.py +0 -0
  670. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/__main__.py +0 -0
  671. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/checks/resource_validation.py +0 -0
  672. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/commands/analyze.py +0 -0
  673. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/commands/base.py +0 -0
  674. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/__init__.py +0 -0
  675. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/access_analyzer.py +0 -0
  676. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/aws_global_conditions.py +0 -0
  677. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/base.py +0 -0
  678. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/formatters/json.py +0 -0
  679. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/core/policy_loader.py +0 -0
  680. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/integrations/__init__.py +0 -0
  681. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/integrations/github_integration.py +0 -0
  682. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/iam_validator/integrations/ms_teams.py +0 -0
  683. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/README.md +0 -0
  684. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/__init__.py +0 -0
  685. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_action_condition_enforcement.py +0 -0
  686. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_aws_fetcher_wildcards.py +0 -0
  687. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_aws_global_conditions.py +0 -0
  688. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_check_registry.py +0 -0
  689. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_comment_truncation.py +0 -0
  690. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_custom_policy_checks.py +0 -0
  691. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_multipart_comments.py +0 -0
  692. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_policy_loader.py +0 -0
  693. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_policy_size_check.py +0 -0
  694. {iam_policy_validator-1.0.2 → iam_policy_validator-1.5.0}/tests/test_resource_validation_check.py +0 -0
@@ -13,17 +13,17 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
15
  - name: Checkout code
16
- uses: actions/checkout@v5
16
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
17
17
 
18
18
  - name: Set up Python
19
- uses: actions/setup-python@v6
19
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
20
20
  with:
21
21
  python-version: "3.12"
22
22
 
23
23
  - name: Install uv
24
- run: |
25
- curl -LsSf https://astral.sh/uv/install.sh | sh
26
- echo "$HOME/.local/bin" >> $GITHUB_PATH
24
+ uses: astral-sh/setup-uv@5dbc9fba7434435c4cd0268139340fa3696d98f3 # v7
25
+ with:
26
+ enable-cache: true
27
27
 
28
28
  - name: Install dependencies
29
29
  run: uv sync --all-extras
@@ -34,30 +34,6 @@ jobs:
34
34
  - name: Run Ruff formatter check
35
35
  run: uv run ruff format --check .
36
36
 
37
- # Temporarily disabled - will re-enable when type annotations are complete
38
- # type-check:
39
- # name: Type Check with mypy
40
- # runs-on: ubuntu-latest
41
- # steps:
42
- # - name: Checkout code
43
- # uses: actions/checkout@v5
44
-
45
- # - name: Set up Python
46
- # uses: actions/setup-python@v6
47
- # with:
48
- # python-version: "3.12"
49
-
50
- # - name: Install uv
51
- # run: |
52
- # curl -LsSf https://astral.sh/uv/install.sh | sh
53
- # echo "$HOME/.local/bin" >> $GITHUB_PATH
54
-
55
- # - name: Install dependencies
56
- # run: uv sync --all-extras
57
-
58
- # - name: Run mypy
59
- # run: uv run mypy iam_validator/
60
-
61
37
  test:
62
38
  name: Test (Python ${{ matrix.python-version }})
63
39
  runs-on: ubuntu-latest
@@ -67,17 +43,17 @@ jobs:
67
43
  python-version: ["3.10", "3.11", "3.12", "3.13"]
68
44
  steps:
69
45
  - name: Checkout code
70
- uses: actions/checkout@v5
46
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
71
47
 
72
48
  - name: Set up Python ${{ matrix.python-version }}
73
- uses: actions/setup-python@v6
49
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
74
50
  with:
75
51
  python-version: ${{ matrix.python-version }}
76
52
 
77
53
  - name: Install uv
78
- run: |
79
- curl -LsSf https://astral.sh/uv/install.sh | sh
80
- echo "$HOME/.local/bin" >> $GITHUB_PATH
54
+ uses: astral-sh/setup-uv@5dbc9fba7434435c4cd0268139340fa3696d98f3 # v7
55
+ with:
56
+ enable-cache: true
81
57
 
82
58
  - name: Install dependencies
83
59
  run: uv sync --all-extras
@@ -91,17 +67,17 @@ jobs:
91
67
  needs: [lint, test]
92
68
  steps:
93
69
  - name: Checkout code
94
- uses: actions/checkout@v5
70
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
95
71
 
96
72
  - name: Set up Python
97
- uses: actions/setup-python@v6
73
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
98
74
  with:
99
75
  python-version: "3.12"
100
76
 
101
77
  - name: Install uv
102
- run: |
103
- curl -LsSf https://astral.sh/uv/install.sh | sh
104
- echo "$HOME/.local/bin" >> $GITHUB_PATH
78
+ uses: astral-sh/setup-uv@5dbc9fba7434435c4cd0268139340fa3696d98f3 # v7
79
+ with:
80
+ enable-cache: true
105
81
 
106
82
  - name: Install dependencies
107
83
  run: uv sync
@@ -109,30 +85,23 @@ jobs:
109
85
  - name: Build package
110
86
  run: uv build
111
87
 
112
- - name: Upload build artifacts
113
- uses: actions/upload-artifact@v5
114
- with:
115
- name: dist-packages
116
- path: dist/
117
- retention-days: 7
118
-
119
88
  integration-test:
120
89
  name: Integration Test (Self-Test)
121
90
  runs-on: ubuntu-latest
122
91
  needs: [lint, test]
123
92
  steps:
124
93
  - name: Checkout code
125
- uses: actions/checkout@v5
94
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
126
95
 
127
96
  - name: Set up Python
128
- uses: actions/setup-python@v6
97
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
129
98
  with:
130
99
  python-version: "3.12"
131
100
 
132
101
  - name: Install uv
133
- run: |
134
- curl -LsSf https://astral.sh/uv/install.sh | sh
135
- echo "$HOME/.local/bin" >> $GITHUB_PATH
102
+ uses: astral-sh/setup-uv@5dbc9fba7434435c4cd0268139340fa3696d98f3 # v7
103
+ with:
104
+ enable-cache: true
136
105
 
137
106
  - name: Install dependencies
138
107
  run: uv sync
@@ -0,0 +1,168 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
12
+ jobs:
13
+ build-and-release:
14
+ name: Build and Create Release
15
+ runs-on: ubuntu-latest
16
+ environment: production
17
+
18
+ steps:
19
+ - name: Checkout code
20
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
21
+ with:
22
+ fetch-depth: 0 # Full history for changelog generation
23
+
24
+ - name: Set up Python
25
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
26
+ with:
27
+ python-version: "3.12"
28
+
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@5dbc9fba7434435c4cd0268139340fa3696d98f3 # v7
31
+ with:
32
+ enable-cache: true
33
+
34
+ - name: Install dependencies
35
+ run: uv sync
36
+
37
+ - name: Build package
38
+ run: uv build
39
+
40
+ - name: Get version from tag
41
+ id: get_version
42
+ run: |
43
+ VERSION=${GITHUB_REF#refs/tags/v}
44
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
45
+ echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
46
+
47
+ - name: Generate changelog
48
+ id: changelog
49
+ run: |
50
+ # Get the previous tag
51
+ PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
52
+
53
+ if [ -z "$PREV_TAG" ]; then
54
+ # First release - get all commits
55
+ CHANGELOG=$(git log --pretty=format:"- %s (%h)" --no-merges)
56
+ else
57
+ # Get commits since previous tag
58
+ CHANGELOG=$(git log ${PREV_TAG}..HEAD --pretty=format:"- %s (%h)" --no-merges)
59
+ fi
60
+
61
+ # Save to file for multiline output
62
+ echo "$CHANGELOG" > CHANGELOG.txt
63
+
64
+ # Also create a summary
65
+ COMMIT_COUNT=$(echo "$CHANGELOG" | wc -l)
66
+ echo "Generated changelog with $COMMIT_COUNT commits"
67
+
68
+ - name: Create GitHub Release
69
+ uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2
70
+ with:
71
+ name: ${{ steps.get_version.outputs.tag }}
72
+ body_path: CHANGELOG.txt
73
+ files: |
74
+ dist/*.whl
75
+ dist/*.tar.gz
76
+ draft: false
77
+ prerelease: ${{ contains(steps.get_version.outputs.version, 'rc') || contains(steps.get_version.outputs.version, 'beta') || contains(steps.get_version.outputs.version, 'alpha') }}
78
+ generate_release_notes: true
79
+ env:
80
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
81
+
82
+ - name: Publish to PyPI
83
+ if: |
84
+ !contains(steps.get_version.outputs.version, 'rc') &&
85
+ !contains(steps.get_version.outputs.version, 'beta') &&
86
+ !contains(steps.get_version.outputs.version, 'alpha')
87
+ run: uv publish --trusted-publishing always
88
+
89
+ - name: Create Release Summary
90
+ if: always()
91
+ run: |
92
+ VERSION="${{ steps.get_version.outputs.version }}"
93
+ TAG="${{ steps.get_version.outputs.tag }}"
94
+ IS_PRERELEASE="${{ contains(steps.get_version.outputs.version, 'rc') || contains(steps.get_version.outputs.version, 'beta') || contains(steps.get_version.outputs.version, 'alpha') }}"
95
+
96
+ # Extract major and minor versions
97
+ MAJOR=$(echo "$VERSION" | cut -d. -f1)
98
+ MINOR=$(echo "$VERSION" | cut -d. -f1-2)
99
+
100
+ cat >> $GITHUB_STEP_SUMMARY << EOF
101
+ # 🚀 Release Summary
102
+
103
+ ## 📦 Package Information
104
+ - **Package**: \`iam-policy-validator\`
105
+ - **Version**: \`$VERSION\`
106
+ - **Tag**: \`$TAG\`
107
+
108
+ ## 📋 What Was Published
109
+
110
+ ### GitHub Release
111
+ - ✅ Created release: [$TAG](https://github.com/${{ github.repository }}/releases/tag/$TAG)
112
+ - 📄 Changelog generated from commits
113
+ - 📦 Artifacts attached: wheel + source distribution
114
+
115
+ ### PyPI
116
+ $(if [ "$IS_PRERELEASE" = "false" ]; then echo "- ✅ Published to [PyPI](https://pypi.org/project/iam-policy-validator/)"; else echo "- ⏭️ Skipped (pre-release version)"; fi)
117
+
118
+ ### Version Tags
119
+ - 🏷️ Major tag: \`v$MAJOR\`
120
+ - 🏷️ Minor tag: \`v$MINOR\`
121
+ - 🏷️ Full tag: \`v$VERSION\`
122
+
123
+ ## 🔗 Quick Links
124
+ - [📦 PyPI Package](https://pypi.org/project/iam-policy-validator/)
125
+ - [📚 GitHub Release](https://github.com/${{ github.repository }}/releases/tag/$TAG)
126
+ - [📖 Repository](https://github.com/${{ github.repository }})
127
+
128
+ ## 📥 Installation
129
+ \`\`\`bash
130
+ pip install iam-policy-validator==$VERSION
131
+ \`\`\`
132
+
133
+ or use the latest:
134
+ \`\`\`bash
135
+ pip install iam-policy-validator
136
+ \`\`\`
137
+ EOF
138
+
139
+ # update-action-versions:
140
+ # name: Update Major/Minor Tag References
141
+ # runs-on: ubuntu-latest
142
+ # needs: build-and-release
143
+
144
+ # steps:
145
+ # - name: Checkout code
146
+ # uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
147
+
148
+ # - name: Configure Git
149
+ # run: |
150
+ # git config user.name "github-actions[bot]"
151
+ # git config user.email "github-actions[bot]@users.noreply.github.com"
152
+
153
+ # - name: Update major and minor version tags
154
+ # run: |
155
+ # VERSION=${GITHUB_REF#refs/tags/v}
156
+ # MAJOR=$(echo $VERSION | cut -d. -f1)
157
+ # MINOR=$(echo $VERSION | cut -d. -f1-2)
158
+
159
+ # # Update vX tag (e.g., v1) - annotated (unsigned by bot)
160
+ # git tag -fa "v$MAJOR" -m "Update v$MAJOR to $VERSION"
161
+ # git push origin "v$MAJOR" --force
162
+
163
+ # # Update vX.Y tag (e.g., v1.2) - annotated (unsigned by bot)
164
+ # git tag -fa "v$MINOR" -m "Updated v$MINOR to $VERSION"
165
+ # git push origin "v$MINOR" --force
166
+
167
+ # echo "✅ Updated tags: v$MAJOR and v$MINOR to point to $VERSION"
168
+ # echo "ℹ️ Note: Automated tags are annotated but not signed by the bot."
@@ -0,0 +1 @@
1
+ 3.12
@@ -132,7 +132,7 @@ iam-policy-auditor/
132
132
  ├── .github/workflows/ # CI/CD workflows
133
133
  ├── pyproject.toml # Project metadata and dependencies
134
134
  ├── Makefile # Development commands
135
- └── iam-validator.yaml # Default configuration
135
+ └── default-config.yaml # Example configuration file
136
136
  ```
137
137
 
138
138
  ## Development Workflow
@@ -400,49 +400,59 @@ For detailed publishing instructions, see [docs/development/PUBLISHING.md](docs/
400
400
 
401
401
  ### Creating a New Check
402
402
 
403
- 1. **Create Check Class**
403
+ See the comprehensive [Custom Checks Guide](docs/custom-checks.md) for detailed instructions on creating custom validation checks.
404
+
405
+ **Quick Example:**
406
+
407
+ 1. **Create Check File**
404
408
  ```python
405
- # iam_validator/checks/my_check.py
409
+ # my_checks/mfa_check.py
406
410
  from typing import List
407
- from iam_validator.core.models import PolicyCheck, Statement, ValidationIssue
408
-
409
- class MyCustomCheck(PolicyCheck):
410
- @property
411
- def check_id(self) -> str:
412
- return "my_custom_check"
413
-
414
- @property
415
- def description(self) -> str:
416
- return "Description of what this check does"
417
-
418
- async def execute(
419
- self,
420
- statement: Statement,
421
- statement_idx: int,
422
- fetcher,
423
- config
424
- ) -> List[ValidationIssue]:
425
- # Implement your check logic
426
- issues = []
427
- # ... check logic ...
428
- return issues
411
+ from iam_validator.core.models import PolicyValidationIssue, PolicyStatement
412
+
413
+ def execute(statement: PolicyStatement, policy_document: dict) -> List[PolicyValidationIssue]:
414
+ """Ensure sensitive actions require MFA."""
415
+ issues = []
416
+
417
+ sensitive_actions = ["iam:CreateUser", "iam:DeleteUser"]
418
+ actions = statement.action if isinstance(statement.action, list) else [statement.action]
419
+
420
+ for action in actions:
421
+ if action in sensitive_actions:
422
+ # Check for MFA condition
423
+ has_mfa = statement.condition and "aws:MultiFactorAuthPresent" in str(statement.condition)
424
+
425
+ if not has_mfa:
426
+ issues.append(
427
+ PolicyValidationIssue(
428
+ check_name="mfa_required",
429
+ severity="high",
430
+ message=f"Action '{action}' requires MFA",
431
+ statement_index=statement.index,
432
+ action=action,
433
+ suggestion='Add: {"Bool": {"aws:MultiFactorAuthPresent": "true"}}'
434
+ )
435
+ )
436
+
437
+ return issues
429
438
  ```
430
439
 
431
- 2. **Register the Check**
432
- - Check is auto-discovered if in `checks/` directory
433
- - Or register manually in configuration
440
+ 2. **Use the Check**
441
+ ```bash
442
+ iam-validator validate --path ./policies/ --custom-checks-dir ./my_checks
443
+ ```
434
444
 
435
445
  3. **Add Tests**
436
446
  ```python
437
447
  # tests/test_my_check.py
438
- def test_my_custom_check():
448
+ def test_mfa_check():
439
449
  # Test your check
440
450
  pass
441
451
  ```
442
452
 
443
453
  4. **Document the Check**
444
- - Add to `docs/reference/CHECKS.md`
445
- - Add example to `examples/`
454
+ - Add to `docs/custom-checks.md`
455
+ - Add example to `examples/custom_checks/`
446
456
 
447
457
  ### Adding a New Formatter
448
458