Die Referenz des Sicherheitsarchitekten: Ein Überblick über Ansätze zur Implementierung der Authentifizierung und Autorisierung in Microservice-Systemen

Containerisierung, CI / CD, Orchestrierung, Microservices und agile Prozesse sind eine Tag-Cloud, die jetzt im Vokabular von Sicherheitsingenieuren enthalten ist. Das Microservice-Modell und verwandte Technologien haben zu einer Vielzahl von Ansätzen bei der Implementierung der Sicherheitsarchitektur moderner Lösungen geführt, und ein einziger Ansatz für deren Konstruktion wurde noch nicht gesehen. Es gibt jedoch Technologieführer in der Entwicklung von Mikroservices, bekannte Konfigurationsfehler und Schwachstellen bei der Implementierung verschiedener Architekturansätze und eine Vielzahl von "Best Practices" für die Erstellung einer zuverlässigen Architektur. In diesem Material, erstellt auf der Grundlage eines Forschungsartikels, der gemeinsam mit Denis Makrushin veröffentlicht wurde (Makrushin) vom Advanced Security Research-Team des Huawei Advanced Software Technology Lab analysieren wir typische architektonische Ansätze zur Implementierung von Authentifizierung und Autorisierung in Microservice-Systemen sowie deren Vor- und Nachteile. Und wir werden dies tun, damit Sicherheitsarchitekten die Möglichkeit haben, sich auf die Implementierung des erforderlichen Modells zu konzentrieren und nicht auf stundenlanges Suchen nach den erforderlichen Informationen.



Forschungsschwerpunkte



Die Microservices-Architektur wird zunehmend für den Entwurf und die Implementierung von Anwendungssystemen sowohl in der Cloud als auch in lokalen Infrastrukturen, Großanwendungen und Diensten verwendet. Es reicht aus, Habr auf verschiedene Praktiken im Zusammenhang mit der Entwicklung verteilter und fehlertoleranter Systeme zu untersuchen, um sicherzustellen, dass das Microservice-Modell weit verbreitet ist.



. , 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). , .

Bild

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 .

    Bild

    2.


. , , :



  • ;
  • ;
  • .




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

Bild

3.



. , , .



, :



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


, , .





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



Bild

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).

Bild

5 PDP



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



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



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



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

    Bild

    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