两年前,亚马逊云科技在 re:Invent 大会上首次推出 Amazon Verified Access 预览版。作为一种安全、无需 VPN 的企业应用访问方式,Amazon Verified Access 使组织能够基于身份和设备安全状态而非IP地址来管理网络访问,从而增强对应用程序访问的控制和安全性。
现在,Amazon Verified Access 进一步扩展能力,支持 SSH 和 RDP 等非HTTP(S)协议的企业资源访问。**这种改进满足了企业对数据库、远程桌面及[Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)等内部资源的安全访问需求**,同时消除了传统 VPN 广泛授权和策略不一致的问题。通过自动化的 DNS 配置和实时权限评估,**Amazon Verified Access 提供了更精细的控制,简化了操作流程,为构建一致、安全的零信任架构奠定了坚实基础**。
### **使用 Amazon Verified Access 进行非 HTTPS 访问**
为非 HTTPS 访问配置验证访问与当前的配置方法并无太大区别。您可以阅读推出预览版时的[博客文章](https://aws.amazon.com/cn/blogs/aws/aws-verified-access-preview-vpn-less-secure-network-access-to-corporate-applications/?trk=cndc-detail),或参考 [Amazon Verified Access 入门教程](https://docs.aws.amazon.com/verified-access/latest/ug/getting-started.html?trk=cndc-detail),了解如何开始配置。
Amazon Verified Access 提出了两种新型端点目标:一种是针对单一资源的目标,另一种是针对多资源的目标。
通过网络接口、负载平衡器或 RDS 端点目标,可以为诸如 Amazon Relational Database Service([Amazon RDS](https://aws.amazon.com/rds/?trk=cndc-detail))实例、由网络负载平衡器或弹性网络接口提供的任意 TCP 应用程序等单个资源,提供访问权限。
这类目标端点由目标类型(如负载平衡器或网络接口)和一系列 TCP 端口范围的组合定义。Amazon Verified Access 将在创建每个端点时为其提供一个 DNS 名称,还会为每个目标分配一个 DNS 名称,这是终端用户用于安全访问资源的名称。
使用网络 CIDR 端点目标时,资源是通过 IP CIDR 和端口范围来定义的。**通过这种类型的端点目标,您可以轻松地通过 SSH 和 RDP 等协议为 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例临时资源提供安全访问**。这样一来,每次添加或删除资源时,就无需执行创建或删除端点目标等任何操作。只要这些资源被分配了来自定义 CIDR 中的一个 IP 地址,Amazon Verified Access 就会为定义的 CIDR 中检测到的每个活动 IP 提供唯一的公共 DNS 记录。
下图是该演示的设置示意图。
![image.png](https://dev-media.amazoncloud.cn/197cc05e55d9499b89ef8b2adceb7607_image.png "image.png")
#### 1、作为 Amazon Verified Access 管理员如何使用
作为 Amazon Verified Access 管理员,创建 Amazon Verified Access 实例、信任提供者、访问组、端点和访问策略,允许最终用户访问 SSH 服务器。
本演示配置了一个 Amazon Verified Access 网络 CIDR 端点目标。选择 TCP 作为协议,网络 CIDR 作为端点类型。确保 CIDR 范围位于目标资源所在的 VPC 范围内。选择 VPC 中的 TCP 端口范围和子网。
![image.png](https://dev-media.amazoncloud.cn/577cf00459044e64b87564452617fc57_image.png "image.png")
创建端点需要几分钟时间。
一旦状态为已激活,即可在 Amazon Virtual Private Cloud([Amazon VPC](https://aws.amazon.com/vpc/?trk=cndc-detail))中启动 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例。启用 SSH 并配置实例的安全组,使其仅允许来自 VPC 的访问请求。几分钟后可以看到实例的 IP 已被检测到,并分配了一个 DNS 名称,以便从 Amazon Verified Access 客户端应用程序进行连接。
在配置过程中还可以选择委托自己的 DNS 子域,如 `secure.mycompany.com`,Amazon Verified Access 将为该子域内的资源分配 DNS 名称。
![image.png](https://dev-media.amazoncloud.cn/fc47afe122f24f82a32dcd04c68f62db_image.png "image.png")
**创建访问策略**
在此阶段,Amazon Verified Access 端点还没有定义任何策略。默认情况下它将拒绝所有请求。
在 Amazon Verified Access 组页面上,选择“策略”选项卡。然后选择“修改 Amazon Verified Access 端点策略”按钮来创建访问策略。
![image.png](https://dev-media.amazoncloud.cn/070e030d05ab4b32857f3db7ffc3efde_image.png "image.png")
输入一条策略:允许任何经过身份验证且电子邮件地址以` @amazon.com` 结尾的人访问,这是为 Amazon IAM Identity Center 中定义的用户所使用的电子邮件地址。请注意,context 后面的名称是在创建 Amazon Verified Access 信任提供者时输入的策略引用名称。[文档](https://docs.aws.amazon.com/verified-access/latest/ug/what-is-verified-access.html?trk=cndc-detail)页面详细介绍了可以使用的策略语法、属性和运算符。
```js
permit(principal, action, resource)
when {
context.awsnewsblog.user.email.address like "*@amazon.com"
};
```
![image.png](https://dev-media.amazoncloud.cn/ecc46ce2b7ce4f648c0fe44e3f366c59_image.png "image.png")
几分钟后,Amazon Verified Access 更新了策略并再次变为已激活状态。
**向客户端分发配置**
作为 Amazon Verified Access 管理员的最后一项任务,是提取客户端应用程序的 .json 配置文件。
使用 Amazon Command Line Interface([Amazon CLI](https://aws.amazon.com/cli/?trk=cndc-detail))检索客户端应用程序配置文件。作为系统管理员,会将此配置分发到每台客户端计算机。
```js
aws ec2 export-verified-access-instance-client-configuration \\
--verified-access-instance-id "vai-0dbf2c4c011083069"
{
"Version": "1.0",
"VerifiedAccessInstanceId": "vai-0dbf2c4c011083069",
"Region": "us-east-1",
"DeviceTrustProviders": [],
"UserTrustProvider": {
"Type": "iam-identity-center",
"Scopes": "verified_access:application:connect",
"Issuer": "https://identitycenter.amazonaws.com/ssoins-xxxx",
"PkceEnabled": true
},
"OpenVpnConfigurations": [
{
"Config": "Y2...bWU=",
"Routes": [
{
"Cidr": "2600:1f10:4a02:8700::/57"
}
]
}
]
}
```
现在已经有了可连接的资源和 Amazon Verified Access 基础架构,下文将展示终端用户访问网络终端的体验。
#### 2、终端用户如何使用
终端用户会收到下载和安装 Amazon Verified Access Connectivity Client 应用程序的链接。
安装管理员发送的配置文件,将文件命名为 `ClientConfig1.json`,并将文件复制到 Windows 系统的 `C:\\ProgramData\\Connectivity Client` 文件夹或 macOS 系统的 `/Library/Application\\ Support/Connectivity\\ Client`文件夹中。
这是所有用户通用的配置文件,系统管理员可能会使用端点管理工具将该文件推送到所有客户端计算机上。
启动 Amazon Verified Access Connectivity Client 客户端应用程序,选择“登录”以开始身份验证流程。
![image.png](https://dev-media.amazoncloud.cn/1e0fda26a19249c4bfc80343b5eddb30_image.png "image.png")
身份验证会在网络浏览器上打开身份提供者的身份验证页面,不同提供者的屏幕显示和登录流程各不相同。身份验证通过后,Amazon Verified Access Connectivity Client 会创建一个安全隧道来访问资源,即本演示中的 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例。
![image.png](https://dev-media.amazoncloud.cn/25c30ccd9c284d20a3fb819fbb1aef77_image.png "image.png")
一旦状态为“已连接”,就可以使用 Amazon Verified Access 提供的 DNS 名称安全连接到资源。在终端应用程序中键入ssh命令开始连接。
本演示为 Amazon Verified Access 配置了一个委托 DNS 域 `secure.mycompany.com`。收到的 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)实例的 DNS 地址是 `10-0-1-199.awsnews.secure.mycompany.com`。
```js
\$ ssh -i mykey.pem ec2-user@10-0-1-199.awsnews.secure.mycompany.com
, #_
~\\_ ####_ Amazon Linux 2023
~~ \\_#####\\
~~ \\###|
~~ \\#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Sat Nov 17 20:17:46 2024 from 1.2.3.4
\$
```
借助无需 VPN 即可安全访问 HTTP(S)和非 HTTP(S)应用程序的 Amazon Verified Access,**您可以统一对私有应用程序和系统的访问控制,将零信任策略统一应用于所有应用程序、SSH、RDP 和 HTTP(S)资源**。这能降低网络基础设施的复杂性,帮助您实现对应用程序和资源的零信任访问。
![image.png](https://dev-media.amazoncloud.cn/0a1b54dea0a245a5875c31ceca63a7fc_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/e4e7dba767d146be99443a8af875f3f3_image.png "image.png")
> *前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。