La conteneurisation, la CI / CD, l'orchestration, les microservices et les processus agiles sont désormais un nuage de balises dans le vocabulaire des ingénieurs en sécurité. Le modèle de microservice et les technologies associées ont conduit à une variété d'approches dans la mise en œuvre de l'architecture de sécurité des solutions modernes, et une approche unique de sa construction n'a pas encore été vue. Mais il existe des leaders technologiques dans le développement de microservices, il existe des failles de configuration et des vulnérabilités connues dans la mise en œuvre de différentes approches architecturales, et il existe un grand nombre de «meilleures pratiques» pour construire une architecture fiable. Dans ce matériel, préparé sur la base d'un article de recherche publié conjointement avec Denis Makrushin (makrushin) de l'équipe de recherche avancée sur la sécurité du Huawei Advanced Software Technology Lab, nous analyserons les approches architecturales typiques de la mise en œuvre de l'authentification et de l'autorisation dans les systèmes de microservices, leurs avantages et leurs inconvénients. Et nous le ferons pour que les architectes de sécurité aient la possibilité de se concentrer sur la mise en œuvre du modèle requis, et non sur des heures de recherche des informations nécessaires.
Objectifs de recherche
L'architecture des microservices est de plus en plus utilisée pour la conception et la mise en œuvre de systèmes d'application dans les infrastructures cloud et sur site, les applications et services à grande échelle. Il suffit d'étudier Habr pour diverses pratiques liées au développement de systèmes distribués et tolérants aux pannes pour s'assurer de l'implémentation généralisée du modèle de microservice.
. , 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). , .
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 .
2.
. , , :
- ;
- ;
- .
PDP PEP (. 3). , , , ( 1). ( 2) (, ), ( 3) , , (enforce) ( 4).
3.
. , , .
, :
- ( « , »);
- /, , ;
- - ( « , »);
- .
, , .
, ( 4). PAP ( 1) PDP , ( 2). ( 3), PDP , PDP , ( 4). PDP ( 5).
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).
5 PDP
PDP «sidecar-». Sidecar , , , , .
PDP sidecar . PDP , . " " , , . .
“How Netflix Is Solving Authorization Across Their Cloud” " PDP" ( 6):
- — , ;
- , , ;
- ( Policy) , ( Aggregator), PDP;
- PDP () PEP.
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.