检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph函数对OBS中的文件进行加解密 案例描述 准备 构建程序 添加事件源 处理文件 父主题: 数据处理类实践
会进行访问控制及日志跟踪,提供所有密钥的使用记录,满足审计和合规性要求,同时用户可通过购买专属加密实例加密用户业务系统(包含敏感数据加密、金融支付加密以及电子票据加密等),帮助用户加密企业自身的敏感数据(如合同、交易、流水等)以及企业用户的敏感数据(用户身份证号码、手机号码等),
处理文件 当文件上传后更新至dew-bucket-input桶时,会生成事件,触发函数运行,将文件加解密,保存在dew-bucket-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。
构建程序 本例提供了为文件加/解密的程序包,使用空白模板创建函数,用户可以使用示例代码学习使用。 创建程序包 本例使用Java8语言实现加/解密的功能,有关函数开发的过程请参考Java函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。 图1 样例代码目录 其中Fi
OBS应用事件源创建以后,当有文件上传或更新至dew-bucket-input桶时,生成事件,触发函数执行。 父主题: 使用FunctionGraph函数对OBS中的文件进行加解密
为了保障用户的代码安全,防止代码文件损坏或被篡改导致代码不一致问题,保证被执行的函数代码为正确版本,当函数创建或修改代码时,FunctionGraph对用户的函数代码签名加密,为其生成代码签名,并存储在函数元信息内。 FunctionGraph在函数执行时,为当前执行的代码生成签名,然后将其与函数元信息内的代码
、授权的实体或者个人获取,FunctionGraph对数据的传输进行全程加密保护,以防止数据泄露,保证您的数据安全。 数据保护技术 所有的API请求调用和内部通信均通过TLS 1.2及以上协议进行传输中加密。 父主题: 安全
创建函数及添加事件源之前,需要创建两个OBS桶,分别用来保存用户上传的文件和加/解密后输出的文件。 OBS桶创建以后,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源,本指导以加密文件为例: 创建OBS桶 上传文件的源桶、输出文件的目标桶和函数必须处于同一个区域下。
资产识别与管理 在函数的环境变量中,若有敏感信息例如账号和密码、Ak/Sk等,建议通过配置加密环境变量。不配置加密环境变量,则会在界面或API返回结果中明文展示。 在使用触发器、配置VPC访问、使用自定义镜像、挂载SFS等场景下,FunctionGraph需要与其他云服务协同工作
内存配置,不会覆盖掉。 为了避免在cam.yaml中明文显示函数的加密配置-encryptedUserData,该CICD使用了AES对称加密的GCM模式对encryptedUserData明文内容进行加密,加密输出配置为cam.yaml中encryptedUserData项对应
值。 值 环境变量的值,取值范围:键和值的总长度不超过4096个字符。 加密参数 开启加密参数后,环境变量的值将以“*”号加密显示,参数传输过程中键值也处于加密状态。 已开启加密并保存的环境变量值,取消加密后将重置为空。 图1 添加环境变量 配置完成后,单击“确定”保存环境变量。
无认证模式,所有用户均可访问。 None 请求协议 必选参数。 API的请求协议分为两种类型: HTTP:数据在传输过程中不被加密。 HTTPS:数据在传输过程中被加密。 HTTPS 后端超时(毫秒) 必选参数。 设置API的后端超时时间,单位为毫秒,设置范围为1~60000毫秒。 5000
长度不超过4KB。 encrypted_user_data 否 String 用户自定义的name/value信息,用于需要加密的配置。 举例:如配置加密密码,可以设置自定义参数:password={1234},最多定义20个,总长度不超过4KB。 xrole 否 String
当用户的Java函数启用快照式冷启动后,FunctionGraph会预先执行函数对应的初始化代码,获取其初始化执行上下文环境的快照,并进行加密缓存。后续调用该函数时会触发冷启动,直接从提前初始化后的应用快照来恢复执行环境,而非重新走一遍初始化流程,以此达到极大提升启动性能的效果。
ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/
后单击创建函数。 图1 函数模板选择 MySQL函数模板创建好后,选择设置->环境变量,在环境变量列表中可按需开启加密参数功能,如图2,配置完保存。 图2 开启加密参数 如果函数需要访问RDS的接口,参考创建委托,获取RDS的授权。 父主题: 配置函数
Content-Type 是 String 消息体的类型(格式) 表3 请求Body参数 参数 是否必选 参数类型 描述 digest 否 String md5键值 version 否 String 发布版本名称 description 否 String 发布版本描述 响应参数 状态码: 200 表4
安装Python库 执行如下命令,安装pyyaml库和pycryptodome库。对函数的cam.yaml配置文件进行解析,对函数的加密环境变量进行加解密。 pip3 install pyyaml pip3 install pycryptodome 安装KooCLI命令行工具 安装KooCLI命令行工具
无认证模式,所有用户均可访问。 None 请求协议 必选参数。 API的请求协议分为两种类型: HTTP:数据在传输过程中不被加密。 HTTPS:数据在传输过程中被加密。 HTTPS 请求方法 必选参数。 请求方法有以下类型: GET POST DELETE PUT PATCH HEAD
理,别名管理,触发器管理函数调用等操作。 约束与限制 当通过API访问公有云系统时,需要使用访问密钥(AK/SK)进行身份认证并对请求进行加密,确保请求的机密性、完整性和请求双方身份的正确性。请妥善保存config.yaml配置文件,确保访问密钥不被非法使用。 当发现访问密钥被非