当函数计算遇上白名单

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 函数计算访问第三方服务时如何带上指定的外网地址。

实际上这个世界上没有好人和坏人,只有做了好事的人,和做了坏事的人。
——柴静《看见》

阿里云函数计算(Function Compute)是一个事件驱动的全托管 Serverless 计算服务。使用函数计算只需编写代码并上传,而无需管理服务器等基础设施,函数计算会准备好计算资源,并以弹性、可靠的方式运行代码。

不久前在一个项目上使用了函数计算,需要在函数计算中调用第三方服务,第三方服务有可能会对函数计算的地址进行白名单验证,但函数是通过弹性扩容的方式动态为函数分配计算资源的,因此无法提前预知访问第三方接口服务的IP地址,而且目前函数计算也没有像阿里云WEB应用防火墙一样提供回源地址清单,第三方接口需要的白名单IP要使用一些特殊手段来取得。

在阿里云函数计算的文档中的“场景案例”中有一个章节就是针对这种情况的,使用的是Nginx正向代理来代理函数计算的访问请求,这种通过Nginx的代理后,第三方服务看到的将是Nginx服务器的公网IP地址,这样就可以解决白名单的问题。

其中Nginx的配置如下:

server{

resolver x.x.x.x;
listen 8080;
location / {
    proxy_pass http://$http_host$request_uri;
}

}

其中resolver x.x.x.x;是DNS服务器的地址。
这样虽然能解决白名单的问题,但这个代理你能使用,别人也能用,这肯定不是你要看到的情况。解决的方案是对请求的目标主机名进行验证,只对目标第三方服务的请求进行代理,其余的请求一律拒绝。

Nginx服务器的配置如下:

server {
resolver x.x.x.x;
listen 8080;
location /{

if ( $http_host = ‘y.y.y.y’ ) {
  proxy_pass http://$http_host$request_uri;
  break;
}
return 403;

}
}

用一个或者多个条件判断对请求的http主机名进行验证,假如请求的是第三方服务则代理发送,否则请求将被拒绝。

解决了Nginx的盗用的问题,还有一个问题要解决,就是Nginx服务的可用性问题,这个问题可以通过负载均衡SLB和来解决,架构如下:

1.jpg

第三方服务的防火墙需要加两条地址,分别是两台Nginx服务器的公网IP。
2.jpg

上图中xx.xx.125.101和xx.xx.119.208是两台ECS的外网地址,可以将这两个地址提供给第三方加白名单,xx.xx.227.184是函数计算的地址,这个地址无法保证固定,不能用做白名单。

这里需要至少加两个IP,那么假如只能加一条地址怎么办?
这就需要对架构进行一些调整了,架构如下:

3.jpg

需要给函数计算增加VPC内网访问接口,访问在内网的SLB负载均衡和Nginx代理,Nginx代理服务器不配置公网IP而是通过NAT网关访问第三方接口。

为函数计算增加VPC访问接口需要进行访问授权,配置的方式是在函数计算的控制台打开服务配置。
4.jpg

点击修改,后可以看到网络配置,选择函数计算要对接的VPC和虚拟交换机。

5.jpg

在权限配置部分选择新建角色,并指定系统模版授权,选择
AliyunECSNetworkInterfaceManagementAccess ,并点击授权。

使用函数计算访问代理服务后,从阿里云弹性网卡控制台可以看到新增的ENI弹性网卡。

6.jpg

该弹性网卡地址虽然也是动态分配的,但地址范围仅限于指定的虚拟交换机内。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
4月前
|
运维 JavaScript Serverless
Serverless 应用引擎使用问题之将地址添加到了ES的白名单中,但仍然无法访问,该如何处理
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4月前
|
开发框架 运维 NoSQL
函数计算产品使用问题之如何通过内网连接Redis,并开放白名单
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
运维 关系型数据库 MySQL
Serverless 应用引擎产品使用合集之如何配置MySQL的白名单IP
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
运维 监控 关系型数据库
Serverless 应用引擎产品使用之在阿里云函数计算(FC)中,要访问另一个账号的rds配置rds的白名单如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
运维 安全 Serverless
Serverless 应用引擎产品使用之在Serverless 应用引擎中,在访问公网时,SAE会自动添加白名单如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
155 13
|
3月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
21天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
58 1
|
25天前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
30 1

热门文章

最新文章