AWS Client VPN 概述

更新時間

什么是 AWS Client VPN?

AWS Client VPN 是一种完全托管的弹性 VPN 服务,旨在帮助用户从任何地方安全地访问 AWS 和本地网络。自2018年推出以来,AWS Client VPN 允许用户使用基于 OpenVPN 的客户端进行连接。最近的更新中,用户可以通过配置客户端连接处理程序(本文中称为“处理程序”)来强制执行额外的安全策略。该处理程序在建立连接时运行自定义逻辑,用户可以在 Client VPN 服务验证设备和用户后,使用此功能来授权新的连接。

主要特点

  • 弹性扩展:根据需求,AWS Client VPN 可自动扩展连接数量。
  • 集中管理:用户可以通过一个控制台轻松监控和管理连接。
  • 增强安全性:通过处理程序,企业 IT 管理员可以根据 IP 地址、地理位置和时间等因素强制执行访问控制。

处理程序的优势

处理程序利用身份提供商和移动设备管理(MDM)软件定义的政策,保护现有客户投资。它允许企业 IT 管理员根据 IP 地址、地理位置和时间来控制访问权限。例如,可以在维护时间段内拒绝访问,或在特定时间内允许访问。企业客户如果没有 MDM 部署,处理程序还提供了定义和实施额外安全授权政策的灵活性。

使用场景

在本博客中,我们将介绍使用客户端连接处理程序的三种场景:

  1. 使用第三方身份提供商进行 SAML 2.0 身份验证
  2. 包括多因素身份验证(MFA)的 Active Directory 身份验证
  3. 基于证书的双向身份验证

前提条件

  • AWS 账户
  • Amazon VPCEC2 实例
  • 配置 VPC
  • 启动 EC2 实例
  • 在实例的安全组中允许来自 VPC CIDR 范围的 ICMP 流量
  • 在 AWS 证书管理器 (ACM) 中导入的私有证书
  • 托管用户和组信息的 Active Directory 或 SAML 身份提供商

设置客户端连接处理程序 Lambda 函数

用户需要编写一个 AWS Lambda 函数,该函数在用户和设备身份验证后同步调用。当终端用户尝试建立新的 VPN 连接时,Lambda 函数将被调用。以下是一个示例 Python Lambda 函数,仅允许在工作日连接:

```python import datetime

def is_weekday(): week_index = datetime.datetime.today().weekday() return week_index < 5

def lambda_handler(event, context): allow = is_weekday() error_msg = "您在周末无法连接。" return { "allow": allow, "error-msg-on-failed-posture-compliance": error_msg, "posture-compliance-statuses": [], "schema-version": "v1" } ```

启用客户端连接处理程序

  1. 使用 AWS CLI 启用客户端连接处理程序并指定 Lambda 函数:

bash aws ec2 modify-client-vpn-endpoint \ --client-vpn-endpoint-id $EID --region $REGION \ --client-connect-options Enabled=true,LambdaFunctionArn=arn:aws:lambda:us-east-1:243517296738:function:AWSClientVPN-Weekday

  1. 使用 AWS CLI 描述端点以验证处理程序是否已启用:

bash aws ec2 describe-client-vpn-endpoints

  1. 使用桌面(Windows 或 macOS)AWS Client VPN 软件建立与端点的连接。

场景详解

场景 1:使用第三方身份提供商的 SAML 身份验证

AWS Client VPN 支持证书和 SAML 身份验证。通过结合使用双向身份验证(基于证书)和 SAML,客户可以在打开 VPN 连接之前强制执行设备特定的授权策略。

步骤:

  1. 参考相关博客文章,了解如何配置 SAML 进行身份验证。
  2. 终端用户通过身份提供商进行身份验证。
  3. 身份提供商返回 SAML 令牌。
  4. 端点调用 Lambda 函数。
  5. 处理程序执行授权策略并返回“True”或“False”。
  6. VPN 会话根据返回值被允许或拒绝。

场景 2:包括 MFA 的 Active Directory 身份验证

AWS Client VPN 也支持基于证书和 Active Directory 的身份验证。客户可以定义访问控制策略,以确保只有通过身份验证的用户可以连接。

结论

AWS Client VPN 是一款强大的工具,能够为企业提供灵活的安全连接解决方案。通过使用客户端连接处理程序,企业可以进一步增强安全性,确保只有符合条件的用户和设备才能访问敏感资源。

更新時間