要限制 AWS Lambda 只能访问特定的域名,可以通过以下步骤完成:
创建一个 AWS Lambda 函数并选择适当的运行时环境。
在函数代码中使用以下代码示例来实现域名白名单的限制:
import urllib.request
def lambda_handler(event, context):
allowed_domains = ['example.com', 'example.org'] # 允许访问的域名列表
url = event['url'] # 获取传入的 URL
# 提取域名
domain = urllib.parse.urlparse(url).hostname
if domain in allowed_domains:
# 允许访问
response = urllib.request.urlopen(url)
data = response.read()
return {
'statusCode': 200,
'body': data.decode('utf-8')
}
else:
# 不允许访问
return {
'statusCode': 403,
'body': 'Access denied'
}
上述代码示例中,allowed_domains 列表定义了允许访问的域名。url 参数会作为事件输入传入 Lambda 函数。代码会提取传入 URL 的域名,并将其与允许的域名列表进行比较。如果域名在白名单中,Lambda 函数将访问该 URL 并返回响应数据。否则,将返回一个拒绝访问的错误响应。
在 AWS Lambda 控制台中创建一个触发器(例如,API Gateway、S3 等),以便调用 Lambda 函数。
部署和测试 Lambda 函数,确保它只能访问指定的域名。
请注意,上述代码示例仅提供了一个基本的实现方法。实际情况中,你可能需要根据自己的需求进行修改和调整。