检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph函数和CTS识别非法IP的登录登出操作 案例概述 准备 构建程序 添加事件源 处理结果 父主题: 功能应用类实践
函数如何获取APIG触发器中的请求路径或请求参数? 请求路径或请求参数默认携带在event的入参中,FunctionGraph函数对APIG调用的传入值为函数自带的事件模板。您可以通过打印函数执行结果,获取请求路径或请求参数。 示例: queryStringParameters:
您自定义的API名称,例如:API_apic。 分组 API分组相当于一个API集合,API提供方以API分组为单位,管理分组内的所有API。 例如:“DEFAULT”。 发布环境 API可以同时提供给不同的场景调用,如生产、测试或开发。API网关服务提供环境管理,在不同的环境定义不同的API调用路径。
⑤执行Select查询语句。 如下是在函数首次调用包含冷启动的的完整函数执行过程。 图8 示例 Spans动作说明如下: load:是下载解压用户函数代码包和依赖包的时间。 preload:运行时加载用户函数代码和初始化函数执行环境的时间。 init:初始化函数的执行时间,初始化函数只有在冷启动时才会被执行。
runtime加载用户函数文件失败打印的日志 系统错误 内部错误。 调用超时 函数调用时间超过配置的“执行超时时间”打印的日志。 内存超限 函数内存大小超过配置的“内存”大小打印的日志。 磁盘超限 磁盘超出限制大小打印的日志。 代码异常 代码出现异常情况打印的日志。 支持的时间条件:最近1小时、最近1天、最近3天及自定义。
约束与限制 HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议,函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),HTTP函
获取项目ID请参考:查询指定条件下的项目列表。 获取用户组名称和ID 登录IAM控制台,在左侧导航栏选择“用户组”。 单击需要查询的用户组前的“”,即可查询用户组名称、用户组ID。 获取区域ID 登录IAM控制台,在左侧导航栏选择“项目”。 “项目”列的内容即为所属区域对应的ID。 获取委托名称和ID 登录IAM控制台,选择“委托”页签。
添加事件源 选择准备中开通的CTS云审计服务,创建CTS触发器,CTS触发器配置如图1所示。 图1 创建CTS触发器 CTS云审计服务监听IAM服务中user资源类型,监听login、logout操作。 父主题: 使用FunctionGraph函数和CTS识别非法IP的登录登出操作
数据保护技术 为了确保用户的数据(例如函数元数据等)不被未经过认证、授权的实体或者个人获取,FunctionGraph对数据的传输进行全程加密保护,以防止数据泄露,保证您的数据安全。 数据保护技术 所有的API请求调用和内部通信均通过TLS 1.2及以上协议进行传输中加密。 父主题:
Administrator”和“SMN Administrator”。 SMN Administrator:拥有该权限的用户可以对SMN服务下的资源执行任意操作。 选择“CTS Administrator”,由于该策略有依赖,在勾选时,还会自动勾选依赖的策略:Tenant Guest。
通过CTS云审计服务,完成对公有云账户对各个云服务资源操作动作和结果的实时记录。 通过在函数工作流服务中创建CTS触发器获取订阅的资源操作信息,经由自定义函数对资源操作的信息进行分析和处理,产生告警日志。 SMN消息通知服务通过短信和邮件推送告警信息,通知业务人员进行处理。处理流程如图1所示。
通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Content-Type 是 String 消息体的类型(格式)。 X-Cff-Log-Type 否 String 是否返回函数执行日志。取值:tail(返回函数执行后的4K日志),或者为空(不返回日志)。 X-CFF-Request-Version
认证并对请求进行加密,确保请求的机密性、完整性和请求双方身份的正确性。请妥善保存config.yaml配置文件,确保访问密钥不被非法使用。 当发现访问密钥被非法使用(包括丢失、泄露等情况),可以自行删除或者通知管理员重置访问密钥,重新配置。 删除的访问密钥将无法恢复。 获取CLI工具
处理结果 若用户触发账号的登录/登出操作,订阅服务类型日志被触发,日志会直接调用用户函数,通过函数代码对当前登录/出的账号进行IP过滤,若不在白名单内,可收到SMN发送的通知消息邮件,如图1所示。 图1 告警消息邮件通知 邮件信息中包含非法请求ip地址和用户执行的动作(login/logout)。
Funcurn使用冒号分隔为8个域,region_id为系统配置的值(测试时可以填成与后台相同的值),最后一个中括号的内容表示可以为函数的版本号,也可以为该版本指向的别名,如果为别名时需要在名称前加上感叹号!以示区分。 当作为API参数时,可以提供简化格式的Funcurn,具体如下。 提供1个域:解析
本案例提供了实现告警日志功能的程序包,使用空白模板创建函数,用户可以下载(index.zip)学习使用。 创建功能函数 创建实现日志提取功能的函数,将示例代码包上传。创建过程请参考创建函数,运行时语言选择“Python2.7”,委托名称选择创建委托中的“serverless_trust”。
project_name String 租户的project name。 package String 函数所属的分组Package,用于用户针对函数的自定义分组。 runtime String FunctionGraph函数的执行环境 Python2.7: Python语言2.7版本。 Python3
SMN触发器数据说明如表3所示。 表3 SMN触发器数据说明 字段名称 字段说明 topic_urn SMN服务的topic_urn,创建时必填。 subscription_status topic_urn的订阅状态:Unconfirmed / Confirmed。 DMS触发器数据如下。 {
String 租户的project id。 project_name String 租户的project name。 package String 函数所属的分组Package,用于用户针对函数的自定义分组。 runtime String FunctionGraph函数的执行环境 Python2
删除函数/版本 功能介绍 删除指定的函数或者特定的版本(不允许删除latest版本)。 如果URN中包含函数版本或者别名,则删除特定的函数版本或者别名指向的版本以及该版本关联的trigger。 如果URN中不包含版本或者别名,则删除整个函数,包含所有版本以及别名,触发器。 调用方法