AWS远程访问:混合办公团队指南
Amazon Web Services(AWS)客户能够安全地远程访问其云资源,以速度和敏捷性支持业务运营。随着组织采用灵活的工作环境,员工可以使用不同设备从多个位置安全连接到AWS资源。AWS提供全面的安全解决方案,帮助组织保持对企业资源的强大保护,管理适当的访问控制,并满足合规要求,同时实现高效的远程工作环境。
由于在AWS云中运行着不同类型的工作负载(从Amazon Elastic Compute Cloud(Amazon EC2)实例到Web应用程序),因此存在多个远程访问用例来使用或操作这些工作负载。例如,访问EC2实例及其操作系统以执行故障排除、日志分析和数据检索等操作。其他用例需要访问部署在AWS上的Web应用程序,如Jenkins、Salesforce或Kubernetes UI。
为了支持这些用例,AWS提供了多种服务和功能,帮助您使用不同方法处理访问模式。实施远程访问解决方案时,您可能面临的关键挑战之一是理解不同方法和解决方案的权衡。本文旨在帮助您决定哪种远程访问方法最适合您的用例。
用例
在本文中,我们解决以下用例:
- 用户访问部署在虚拟私有云(VPC)中的内部Web应用程序
- 内部操作员访问部署在VPC中的EC2和Amazon关系数据库服务(Amazon RDS)实例
- 分析师访问Amazon Simple Storage Service(Amazon S3)上的敏感数据
- 用户访问SAML 2.0和OAuth 2.0应用程序
远程访问相关的挑战
成本:远程访问解决方案的成本是企业的一个关键因素。
增加的暴露面:保护具有多个EC2实例、S3存储桶和数据库的VPC与保护用于远程访问基础设施的身份、设备和通信通道是不同的任务。
增加的风险:容易受到社会工程威胁。访问工作负载的人员是任何安全程序中最薄弱的环节,给数据和基础设施带来了原本不存在的风险。
用户体验(UX):用户体验是远程访问的关键因素。缺乏良好设计的用户体验可能会带来风险,使日常操作变得困难或难以及时响应影响大规模用户的事件。
减轻与远程访问相关风险的一种解决方案是在某些级别不提供远程访问,您有时可能会选择这种方法。在这些情况下,只能从受信任的位置(如公司办公室)和托管设备(如公司发放的笔记本电脑)访问必须安全的工作负载。在本文的其余部分,我们将讨论在需要从不同位置和设备提供远程访问时可用的方法和解决方案。
不同方法
在深入了解服务和功能之前,让我们探讨为用户提供远程访问的不同方法(如图1所示)。它们之间的主要区别在于信任边界的位置。
网络型方法:用户通过VPC获得对网络的访问权限,并被授予对实际目标资源、Web应用程序或EC2实例的广泛访问权限。这种情况下的信任边界是VPC。
主机型方法:用户可以访问运行应用程序的主机。这通常用于操作员访问。信任边界是主机。
应用型方法:用户使用其企业凭据访问应用程序。这通常是软件即服务(SaaS)应用程序的情况。信任边界是应用程序。
终端用户计算方法:终端用户计算(EUC)是技术、策略和流程的组合,为用户提供对其完成工作所需的应用程序、桌面和数据的安全远程访问。桌面在云中集中操作,并通过流式像素与用户设备交互。这种方法将信任边界从用户设备转移到驻留在云中的桌面和数据。
这些方法并不相互排斥,偶尔会重叠或可以在零信任模型中组合。零信任的核心思想是,对资源的访问不应仅基于网络位置,而应使用多个因素(包括用户身份、设备和位置等)对每个请求进行身份验证和授权。
信任边界主要取决于目标资源的关键性、组织的风险承受能力和实施的复杂性。更宽的信任边界(如网络型方法)增加了暴露的表面积——因为整个网络都暴露给受信任的用户,并且对网络的访问授予了对其中所有资源的访问权限——但实施起来最简单。更严格的信任边界(如零信任模型)大大减少了暴露的表面积,但需要实施多个因素来提供授权上下文。
例如,组织可能为具有Web服务器和数据库的VPC的操作员提供来自受信任设备的基于网络的访问,但只允许承包商或使用非公司设备(也称为自带设备(BYOD))的第三方用户基于终端用户计算的访问。
选择远程访问解决方案时,您需要考虑所需的信任边界、身份验证、授权、用户体验、访问可见性和成本,我们将在以下部分探讨这些内容。
网络型方法
当用户需要以简单的方式访问驻留在特定网络中的多个资源,同时保持网络与公共互联网断开连接时,网络型方法很受欢迎。在提供网络级访问时,管理安全配置(如授权、身份验证和审计)发生在资源(应用程序或机器)和客户端设备上,这在规模上带来了挑战。
AWS Client VPN是一项完全托管的服务,您可以使用它通过基于OpenVPN的客户端从几乎任何位置安全地将用户连接到VPC。用户可以使用组织的身份提供商(IdP)结合基于证书的身份验证进行身份验证。该服务支持授权规则,这些规则充当防火墙规则,根据Active Directory组或基于SAML的IdP中定义的组的成员资格授予用户对特定CIDR块的访问权限。此外,您可以使用客户端连接处理程序基于设备、用户和连接属性运行自定义授权逻辑。
设置所需的基础设施后,用户可以连接到目标VPC,并在其授权范围内访问网络级的EC2实例或Web应用程序。用户体验就像使用安装在用户设备上的客户端软件进行连接并使用企业身份验证策略进行身份验证一样简单。客户端VPN通过连接日志(流式传输到Amazon CloudWatch日志组)提供对用户VPN连接的可见性。连接日志记录提供每个用户初始VPN连接的可见性;要获得连接期间发生的情况的可见性,需要从目标资源、网络或用户设备收集数据。
用户经过身份验证和授权后,其设备获得对相关VPC的网络访问权限——以及可能对等的其他VPC——或通过AWS Transit Gateway连接到该VPC。这可能会提供对用户范围之外的资源和网络的网络访问。
当网络是资源周围的预期信任边界(例如,在子网或安全组级别)且组级访问控制足够时,应实施基于客户端VPN的解决方案。请参阅开始使用AWS Client VPN。
主机型方法
提供对主机的访问并不总是必要的。减轻与未经授权的主机访问相关风险的一种方法是不允许它,而是依赖完全自动化的操作。实际上,操作员和开发人员仍然需要访问主机以进行可见性、调整操作系统设置、应用补丁或手动重启服务。
对于访问EC2实例,您可以使用AWS Systems Manager Session Manager或EC2 Instance Connect Endpoint等功能。这两个功能都提供对主机的访问,而无需将其暴露给互联网,并且因为它们使用AWS Identity and Access Management(IAM),它们对向AWS CloudTrail发出的每个会话请求进行身份验证、授权和记录,并提供诸如IAM条件(例如,aws:SourceIp)等功能以应用条件访问,通常最小化对基于网络的方法的需求。
这两个功能的主要区别在于它们的操作方式。Session Manager需要一个代理,该代理默认安装在多个Amazon Machine Images(AMI)上。代理建立出站连接——通过互联网或VPC端点——到服务端点,因此您不必修改主机的入站安全组规则。它允许通过代理连接隧道的SSH连接,并提供会话内日志记录,提供对用户会话中命令的可见性。
EC2 Instance Connect不需要安装代理;它允许使用短期SSH密钥进行安全的本机SSH连接。因此,它要求在主机的安全组上允许来自EC2 Instance Connect服务在端口22上的入站连接。
大多数客户使用Session Manager,除非他们不想在虚拟机上安装代理或需要本机SSH体验。
终端用户计算方法
像Amazon WorkSpaces系列或Amazon AppStream 2.0这样的终端用户计算服务将桌面和应用程序作为加密像素流式传输给远程用户,同时将数据安全地保存在您的Amazon Virtual Private Cloud(Amazon VPC)和连接的私有网络中。对客户端设备的未经授权访问仅暴露给加密像素,这实质上将信任边界从访问资源的设备转移到在云中运行的虚拟桌面。
您可以在统一访问AWS终端用户计算服务中深入了解这些不同服务之间的差异。
这些服务在希望最小化用户设备作为信任边界的客户中特别受欢迎。这可以提高操作效率,尤其是在处理不受信任的设备或高度敏感的数据时,因为您显著缩小了需要保护的范围。这还可以减少昂贵硬件的使用(和成本)。
想法是用户首先使用企业Active Directory或SAML联合到企业身份提供商提供的凭据进行身份验证。用户经过身份验证和授权后,加密流会话开始,客户端远程操作部署在Amazon VPC中的桌面或应用程序,其中弹性网络接口(ENI)部署到客户管理的VPC。
采用终端用户计算进行远程访问时,您可以选择最适合您用例的用户体验和成本结构(例如,持久访问桌面或按需访问特定应用程序)。您还可以根据所需的性能选择不同的计算和存储选项。
AWS终端用户计算提供不同的机器类型以适应不同的用户体验要求,并根据使用的消费模型提供不同的定价模型。
有关更多信息,请参阅开始使用Amazon WorkSpaces和开始使用AppStream 2.0。
应用型方法
IAM Identity Center主要以为组织内的AWS账户简化用户访问而闻名。它还提供对支持的Web应用程序的单点登录(SSO)访问,使用户在使用其目录凭据登录后可以无缝访问这些应用程序。Identity Center支持两种应用程序类型:
- AWS托管应用程序,如Amazon Q Developer和Amazon QuickSight
- 客户托管应用程序,如Salesforce、Microsoft365和其他常用应用程序
如果您使用支持SAML 2.0和OAuth 2.0的客户托管应用程序,您可以通过SAML 2.0将您的IdP联合到IAM Identity Center,并使用Identity Center管理用户对这些应用程序的访问。
对于大规模操作AWS环境且拥有多个账户的组织,使用IAM Identity Center是提供对Web应用程序访问的推荐服务,并且无需额外费用。
在零信任模型中组合多种方法
零信任模型结合了多个因素,包括用户身份、设备、位置等,以评估和授予访问请求。您可以使用AWS Verified Access实施此模型以提供对部署在VPC中的工作负载的远程访问。使用Verified Access,您可以在没有客户端VPN的情况下提供对企业应用程序的安全访问,并支持到VPC的基于TCP的连接,无论是到Web应用程序还是EC2或RDS实例。身份验证可以使用现有的IdP或AWS IAM Identity Center以及设备管理服务完成,该服务可以提供附加信息以基于设备上下文改进授权决策。这些授权决策表示为基于您的访问要求编写的Cedar策略。该服务为每个Web请求提供广泛的日志记录,因此您可以调查异常并查看有关已授予访问权限的信息。有关更多信息,请参阅开始使用Amazon Verified Access。
理解权衡
要为您的团队选择正确的解决方案,请从用例向后工作。首先识别和分类资产清单,并映射访问它的用户及其访问模式。
根据分类需要考虑的事项:
可见性:确定对远程访问活动的可见性级别以及您需要检测安全事件并从中恢复或满足法规和合规要求的信息类型。
身份验证和授权:确定您现有的IAM机制是否足够。您可能需要识别临时访问管理系统或包含来自用户设备的信息以解决员工泄露的风险。
网络访问:了解您的用户以及他们需要什么类型的网络访问(如果有)。在考虑网络访问时,包括过度许可访问的潜在风险。
成本:要确定成本,您需要知道有多少用户和资源将由远程访问支持。此外,您期望有多少连接以及多长时间。使用这些信息帮助确定解决方案的总拥有成本。
端点安全:对于每个资源,了解从用户设备提供访问权限的相关风险。了解您拥有(或可以实施)的机制来检测威胁和未经授权的访问,或为授予对资源访问权限的授权决策提供附加上下文。
用户体验:比较流式用户体验与本地安装的用户体验的成本,看看任何额外成本是否通过流式UX改进的安全性得到平衡。
以下提供了不同解决方案的概述以及可以帮助您做出明智决策的因素。
解决方案 | 用例 | 信任边界 | 提供访问权限 | 协议 | 用户体验 | 身份验证 | 授权 | 可见性 | 成本 |
---|---|---|---|---|---|---|---|---|---|
Client VPN | 用户访问内部应用程序 操作员访问VPC中的IP资源 |
网络 | VPC、子网、安全组 | IP | 基于客户端,本机 | 单点登录(基于SAML) Active Directory 相互(基于证书) |
每CIDR(授权规则) Lambda Authorizer用于自定义代码 |
连接日志记录(CloudWatch) 连接时间和端点关联 |
连接时间和端点 |
AWS Session Manager | 操作员访问EC2或本地实例 | 主机 | EC2实例:Linux、Windows或MacOS(仅EC2) | SSH或RDP | 本机 | IAM | IAM | CloudTrail,或使用CloudWatch和Amazon S3的会话内日志记录 | 访问EC2实例无额外成本 |
EC2 Instance Connect Endpoint | 操作员访问EC2实例 | 主机 | EC2实例:Linux或Windows | SSH或RDP | 本机 | IAM | IAM | CloudTrail | 无额外成本 |
IAM Identity Center | 用户访问SAML 2.0和OAuth 2.0应用程序 | 应用程序 | Web应用程序 | HTTP(S) | 本机 | IAM Identity Center | IAM Identity Center | CloudTrail | 无额外成本 |
Amazon Verified Access | 用户访问部署在VPC中的Web或基于TCP的应用程序 | Amazon Verified Access | Web应用程序 TCP资源 |
HTTP(S)或TCP | 本机 | IAM Identity Center或OIDC | 使用Cedar策略自定义 允许设备信号 |
每请求日志记录 | 每应用程序或带宽 |
Amazon WorkSpaces | 用户访问VPC中的虚拟持久桌面 | 云桌面 | 持久虚拟桌面 | WSP或PCoIP | 基于客户端或非本机 | 身份提供商 | 组成员资格 | CloudTrail | 每实例 |
Amazon AppStream 2.0 | 用户访问VPC中的虚拟桌面 | 云桌面 | 非持久虚拟桌面和应用程序 | NICE DCV | 基于客户端或非本机 | 身份提供商 | 组成员资格 | CloudTrail | 每实例 |
结论
在本文中,您了解了为组织的团队提供远程访问的不同方法和解决方案。这包括基于成本、用户体验和风险等因素如何找到最适合您需求的远程访问解决方案的战术建议。通过理解这些权衡,您现在可以根据您的基础设施和威胁模型映射不同的用例,并构建满足您需求的远程访问策略。在试验和采用不同工具时,设计和部署服务需要仔细规划。例如,将服务部署到哪个账户或如何配置对服务的访问。使用诸如AWS安全参考架构(AWS SRA)和各个服务文档页面等资源来指导您的旅程。
如果您对本文有反馈,请在下面的评论部分提交评论。