La referencia del arquitecto de seguridad: una descripción general de los enfoques para implementar la autenticación y la autorización en sistemas de microservicios

La contenerización, CI / CD, orquestación, microservicios y procesos ágiles son la nube de etiquetas ahora en el vocabulario de los ingenieros de seguridad. El modelo de microservicio y las tecnologías relacionadas han llevado a una variedad de enfoques en la implementación de la arquitectura de seguridad de las soluciones modernas, y aún no se ha visto un enfoque único para su construcción. Pero hay líderes tecnológicos en el desarrollo de microservicios, existen defectos de configuración conocidos y vulnerabilidades en la implementación de diferentes enfoques arquitectónicos, y existe una gran cantidad de "mejores prácticas" para construir una arquitectura confiable. En este material, elaborado sobre la base de un artículo de investigación publicado conjuntamente con Denis Makrushin (makrushin) del equipo de Investigación de Seguridad Avanzada del Laboratorio de Tecnología de Software Avanzado de Huawei, analizaremos los enfoques arquitectónicos típicos para implementar la autenticación y autorización en sistemas de microservicios, sus ventajas y desventajas. Y lo haremos para que los arquitectos de seguridad tengan la oportunidad de centrarse en la implementación del modelo requerido, y no en las horas de búsqueda de la información necesaria.



Investigar objetivos



La arquitectura de microservicios se utiliza cada vez más para diseñar e implementar sistemas de aplicaciones tanto en la nube como en infraestructuras locales, aplicaciones y servicios a gran escala. Es suficiente estudiar Habr para diversas prácticas relacionadas con el desarrollo de sistemas distribuidos y tolerantes a fallas para asegurarse de que el modelo de microservicio se implemente ampliamente.



. , a (Application Security Architect – , Security Engineer'a, , ) , ( , ). , . , .



:



  • ?
  • ?
  • ?


, , (, OWASP Moscow Meetup).



:



  • , ;
  • ( ).




( , – , ) ( 1): (edge-level authorization), (service-level authorization), (external entity identity propagation), (service-to-service authentication). , .

imagen

1.



.



(edge-level authorization)



( API). API , . NIST , , API.



:



  • API- ( « »);
  • API , " " (defense-in-depth);
  • , API (operations), , , (, , - ).


: API . , (reference- (self-contained) , HTTP (, "Cookie" "Authorization"), mTLS.





( 2), NIST. :



  • Policy Administration Point (PAP) , , ;
  • Policy Decision Point (PDP) , ;
  • Policy Enforcement Point (PEP) , ;
  • Policy Information Point (PIP) , , , PDP .

    imagen

    2.


. , , :



  • ;
  • ;
  • .




PDP PEP (. 3). , , , ( 1). ( 2) (, ), ( 3) , , (enforce) ( 4).

imagen

3.



. , , .



, :



  • ( « , »);
  • /, , ;
  • - ( « , »);
  • .


, , .





, ( 4). PAP ( 1) PDP , ( 2). ( 3), PDP , PDP , ( 4). PDP ( 5).



imagen

4. PDP



:



  • , , ;
  • , , , , ;
  • , , , API, .


DevOps- . Extensible Access Control Markup Language (XACML) Next Generation Access Control (NGAC), . , XACML , , , DevOps-.



- PDP; .



, PDP - . (, API), " ".





, ( 5). PAP ( 1) PDP , ( 2). ( 3), PDP, PDP , ( 4). PDP ( 5).

imagen

5 PDP



PDP «sidecar-». Sidecar , , , , .



PDP sidecar . PDP , . " " , , . .



“How Netflix Is Solving Authorization Across Their Cloud” " PDP" ( 6):



  • — , ;
  • , , ;
  • ( Policy) , ( Aggregator), PDP;
  • PDP () PEP.

    imagen

    6. PDP ()


, " PDP". , - PDP .



, :



  • , , — ;
  • (, ), " ";
  • , — " ";
  • , PAP (, PAP -);
  • , , — " " .




:



  • (mTLS);
  • , , JSON Web Tokens.


mTLS , , . / , mTLS. mTLS . mTLS , .



. (microservice id) (scopes). , , , , , HTTP . TLS, .



(, Overcoming Security Challenges in Microservice Architectures) (, A Pragmatic Approach for Internal Security Partnerships), mTLS .



, .





, : « ?». , , , .



, , « ?» : «, . -». , «best practice» — pull requests OWASP.



, , (, ), .




All Articles