Bueno ... esa es una pregunta bastante amplia, pero, déjame ver qué puedo descubrir para ti. Comencemos con sus preguntas:
- Algunos servicios pueden incluso tener eso especificado en el nivel de la API, por ejemplo, un servicio público con algunas llamadas internas a la API (¿es una mala idea?).
No estoy seguro de entender lo que se pregunta aquí. Cuando dices "llamada a la API interna", asumo que te refieres a un servicio privado al que la API pública está accediendo. Esto es de hecho "ok", suponiendo que el servicio interno está detrás de un firewall estricto.
- ¿Cómo debe la infraestructura que interconecta los servicios reflejar las políticas de seguridad? ¿Hay algún enfoque estándar para esto?
Comencemos con la creación de un nuevo servicio. Recomiendo encarecidamente ver este libro , especialmente para los controles de acceso. Esencialmente, un servicio o tema creado recientemente debe asumir lo siguiente:
- Se debe aplicar una política predeterminada segura a cualquier tema creado recientemente
- Los atributos del sistema no deben expresarse en términos que puedan falsificarse fácilmente, como una dirección IP.
- Una ID de usuario o una ID de servicio deben permanecer asignadas permanentemente a un servicio / asunto
Una vez creado, el servicio deberá comunicarse con sus servicios internos. En términos de seguridad y políticas, esto es bastante difícil de responder ya que depende de lo que elija para transferir los protocolos / messaging / etc ... Por ejemplo, usar una arquitectura interna como ESB . Aquí hay algunos artículos para describir el uso de ESB:
y algunos artículos centrados en la seguridad que describen SOA ESB:
Sin embargo, sí sé que Amazon no usa ESB a través de este artículo , aunque sí encontré algunos artículos que pueden ayudar también:
Nuevamente, las políticas de seguridad reflejarán el protocolo de transferencia / protocolo de mensajería, etc., de servicio a servicio. Por ejemplo, los servicios que se comunican a través de puertos propietarios (todos detrás de un firewall).
Espero que algo allí pueda ayudar!