Quiero configurar mis canalizaciones de implementación para que se adhieran al principio de privilegio mínimo cuando implementen activos en AWS. Eso significa que no quiero dar acceso de administrador a la política de implementación o privilegios "*:*".
El problema es que cada vez que creo una tubería nueva, tengo que pasar por un proceso de prueba y error:
He buscado recursos para ayudar con esto, pero el enfoque general parece ser sobreaprovisionar la política de IAM, lo que creo que es un enfoque realmente malo.
¿Hay alguna herramienta que pueda usar para analizar una plantilla de CloudFormation y generar un documento JSON de la política de implementación requerida? (¿O para Serverless Framework o CDK?)
Gran pregunta, desafortunadamente, la respuesta es un poco complicada.
Se enfrenta a un pequeño problema del huevo y la gallina con todos los proveedores de Infraestructura como código (Serverless, CDK, CloudFormation, Terraform, etc.).
Tenga en cuenta que el usuario de IAM que implementa su aplicación no es el mismo que el rol de IAM bajo el que se ejecuta su aplicación (Lambda).
Esto significa que si desea limitar estrictamente los permisos de su usuario de implementación para que solo pueda implementar recursos específicos, está bien; sin embargo, como señaló, deberá expandir esos permisos cada vez que desee implementar nuevos recursos. En particular, si automatiza este proceso de modo que los permisos de función se amplíen cada vez que agrega una nueva infraestructura, le habrá otorgado efectivamente a su usuario de implementación acceso administrativo.
Esta es la razón por la que la mayoría de las personas utilizan un usuario de implementación con exceso de aprovisionamiento para implementar sus aplicaciones. No se considera un mal enfoque por dos razones:
Siempre que el rol de ejecución de Lambda tenga una política de IAM estricta, el uso de un usuario de implementación sobreaprovisionado está bien.