容器化,CI / CD,业务流程,微服务和敏捷过程现在已成为安全工程师眼中的标签云。微服务模型和相关技术在实现现代解决方案的安全体系结构方面导致了多种方法,并且尚未见到构建其的单一方法。但是微服务开发领域中有技术领导者,在实施不同体系结构方法时存在已知的配置缺陷和漏洞,并且存在大量用于构建可靠体系结构的“最佳实践”。本资料是根据与Denis Makrushin(马克鲁申),我们将分析来自华为高级软件技术实验室的高级安全研究团队的典型架构方法,以在微服务系统中实现身份验证和授权,以及它们的优缺点。并且我们将这样做,以便安全架构师有机会专注于所需模型的实现,而不是花费大量时间搜索必要的信息。
研究目标
微服务架构越来越多地用于在云和本地基础架构,大规模应用程序和服务中设计和实现应用程序系统。研究Habr以了解与分布式和容错系统开发有关的各种实践就足够了,以确保微服务模型的广泛实施。
在开发和实施软件产品期间,需要解决许多安全问题。安全架构师正在绞尽脑汁的基本要求(应用程序安全架构师是一家大型产品公司中的角色,该公司尚未消除安全工程师的技术任务,但已经添加了与架构和流程相关的高级问题),需要解决在设计阶段是身份验证和授权(简称AA)。因此,应用程序安全架构师必须了解并正确使用现有的架构模式,以在基于微服务的系统中实现AA。我们研究的目的是识别此类模式并就其可能使用向安全架构师提供建议。
:
- ?
- ?
- ?
, , (, 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.