平台团队的工作流程和检查表,用于在其平台中构建安全性、流水线、预配、连接性、编排和可观察性。
译自 The 6 Pillars of Platform Engineering: Part 1 — Security 。
平台工程是设计和构建工具链和工作流程的学科,这些工具链和工作流程为软件工程团队提供自助服务功能。这些工具和工作流程组成了一个内部的开发者平台,通常简称为“平台”。平台团队的目标是提高开发者生产力,促进更频繁的发布,改进应用程序稳定性,降低安全和合规风险,并降低成本。
本指南概述了平台工程中六个主要的开发者体验技术领域的工作流程和检查表步骤。分六部分发布,本部分,第一部分,介绍了该系列,并侧重于安全性。(注意:您可以下载平台工程六大支柱的完整PDF版本,以获取完整的指导、大纲和检查表。)
在 HashiCorp 工作的解决方案工程师和架构师支持过许多组织,这些组织通过平台团队扩展其云操作模型,而这些团队实现其目标的关键是提供令人满意的开发者体验。我们观察到提供出色开发者体验的公司有两个共同主题:
任何平台都不应该在真空中设计。只有当开发者想要使用它时,平台才有效。构建和维护平台涉及与开发者(平台团队的客户)和业务利益相关者的持续对话和认可。本指南通过帮助平台团队围绕软件交付过程的六个技术要素或“支柱”以及每个要素的一般要求和工作流程来组织其产品,作为这些对话的起点。
平台战略的具体构建块是什么?在与各行各业的客户合作中,HashiCorp 的解决方案工程师和架构师确定了组成大多数平台的六个基础支柱,每个支柱将在单独的文章中解决:
当开发者开始使用任何系统时,他们首先要问的问题是:“我该如何创建账户?在哪里设置凭据?我怎样获取 API 密钥?” 即使版本控制、持续集成和基础设施预配对启动和运行平台至关重要,安全也应该是首要关注的问题。早期关注安全可以从一开始就推动默认安全的平台体验。
历史上,许多组织投资于基于网络边界的安全性,通常被描述为“城堡和护城河”的安全方法。然而,随着基础设施变得越来越动态,如果不妨碍开发者速度,边界会变得模糊且难以控制。
作为回应,领先公司正在选择采用基于身份的安全性、身份代理解决方案和现代安全工作流程,包括凭据的集中管理和加密方法。这促进了在一个碎片化的解决方案组合中降低操作开销的同时,提高了可见性和一致的审计实践。
领先公司还采用了“左移”安全性;在整个软件开发生命周期中实施安全控制,从而提早检测和补救潜在的攻击向量,并提高对控制实现的警惕。这种方法要求默认自动化,而不是特殊强制执行。
启用这种 DevSecOps 心态需要支持现代基于身份的安全性的工具决策。还需要“即代码”实现范例,以避免根据工单驱动流程分配和授权身份。这为传统的特权访问管理(PAM)实践铺平了道路,以采用现代方法论,如即时(JIT)访问和零信任安全性。
在云操作模型方法中,人、应用程序和服务都呈现可以针对中心、规范源进行身份验证和验证的身份。一个多租户机密管理和加密平台以及一个身份提供者(IdP)可以充当您组织的身份代理。
工作流程:身份代理
在实践中,典型的身份代理工作流程可能如下所示:
成功的身份代理有若干先决条件:
一旦建立了身份,客户端希望具有一致且安全的机制来执行以下操作:
这些机制应该是可自动化的——设置后需要尽可能少的人为干预——并促进合规的做法。它们还应该是可扩展的,以确保未来的工具与这些系统兼容。
典型的机密管理工作流程应遵循五个步骤:
机密管理流程
在传统的城堡和护城河模型中,人与机器之间的访问一直很低效。该工作流程需要多个身份、计划干预 AuthN 和 AuthZ 控制、机密生命周期规划以及复杂的网络细分规划,这带来了很多开销。
虽然 PAM 解决方案在过去十年中发展,提供了动态 SSH 密钥生成等委派解决方案,但它并不能满足更广泛的生态系统要求,包括多运行时审计或跨平台身份管理。 引入云架构模式(如短暂资源、异构云网络拓扑和 JIT 身份管理)进一步复杂化了传统解决方案的任务。
现代远程访问解决方案解决了短暂资源及其带来的动态资源注册、身份、访问和机密等复杂性的挑战。这些现代安全远程访问工具不再依赖网络访问(如 VPN)作为初始入口点、CMDB、堡垒主机、手动 SSH 和/或带有签入/签出工作流的机密管理器。
企业级安全远程访问工具使用零信任模型,其中人员用户和资源都有身份。用户直接连接到这些资源。 通过动态资源注册表、控制器和机密注入资源的作用域角色,可以消除许多手动流程和安全风险,例如广泛的直接网络访问和长期有效的机密。
对于人类用户,现代远程基础设施访问工作流程通常遵循以下八个步骤:
安全远程访问流程
机密管理系统中的所有机密都应该:
机密管理解决方案应该:
此外,实施安全远程访问做法的系统还应: