MLOps在金融产业: 4个步骤建立安全ML环境

在前面的MLOps在金融产业:常见案例与工作流程文章当中,曾经提到,在金融业当中的MLOps可带来的规范文件、常见工作流程。

今天将针对提供安全的机器学习环境来讨论:

在金融产业,机器学习环境的安全性至关重要,特别是各种资料的授权。在开发过程当中必须关注到:未经授权的访问、权限提升和资料泄露等等。以下四点是设置安全的机器学习环境时的常见注意事项:
(1)计算和网路隔离
(2)身份验证和授权
(3)资料加密
(4)可审计性

计算和网路隔离

管理良好且安全的机器学习工作流程来自於建立私有且隔离的计算和网路环境。必须确保在开发的过程当中,是在内部的私有环境下开发,外部人员不能轻易拜访开发的环境。

以Amazon SageMaker举例,当中的Jupyter notebook、用来跑训练跟预测的机器、模型托管等服务,都可以透过设定的VPC去拜访。并且可以透过网路接口的控制来确保安全性。像是可以透过安全组(security group),相当於虚拟防火墙,用於管制入站和出站流量、限制可拜访的IP来源,设定让拜访者透过HTTP或HTTPS访问等等。

SageMaker与其他的AWS服务之间也有VPC的终端节点,透过终端节点的策略设置,可以进一步的设置特定支援的访问。比如说训练模型跟模型托管的时候会使用到的EC2跟S3服务,这些偷可以在VPC里面沟通。透过这个方式可以管制谁能够拜访开发环境,以及让开发环境在安全性高的状况下设置。透过下图你可以了解大概的观念。


*图片来源:Machine Learning Best Practices in Financial Services

相关主题的延伸阅读:

身份验证和授权

承接着私有的网路环境设置之後,下一步则是要确保:只有经过授权的用户才可以访问该服务。AWS Identity and Access Management (IAM) 的设置可以完成这一项任务,例如:访问SageMaker开发环境、访问S3资料储存、可否透过RESTful方式呼叫等等。这些授权包含:谁,能够对什麽服务,内部的哪些资源,进行什麽操作(新增、删除、拜访、修改)。

对於开发环境的设置,建议让每个资料科学家只能拜访自己的SageMaker Jupyter notebook 所置放的机器,并且禁止使用者对该机器根目录的拜访,这个访问也受到IAM的管理。或是透过pre-signed url来存取该Jupyter notebook,在限定的时间内透过这个连结拜访该笔记本。

虽然每个公司都有不同组织架构、身份授权和访问要求,但是仍然应该根据 IAM 最佳实践以设定。透过授予最低权限访问权限,以及设定特定使用服务的行为,来配置权限。

另一个常见的配制方法,则是透过AWS Config搭配基於角色的访问控制 (RBAC)来设置IAM。RBAC是在金融业当中常见的一种配制方法,确保只有授权者才能访问所需的系统,并根据该授权者所拥有的角色,设置不同的使用服务策略。这个设置同时也需要与团队成员名单符合,确保不再维护这个专案的人员不应该拥有相关资源的使用权限。

资料加密

由於机器学习的开发可能包含敏感数据和知识产权,因此安全 ML 环境的第三个考虑因素是资料的加密。资料的加密,例如当资料储存在S3以及Amazon EBS的时候,透过客户管理的客户密钥 (CMK)进行加密。并让S3的储存预设为加密储存。

在各服务中传输的资料,也都需要支援TLS 1.2以上的版本加密。例如分散式的模型运算的资料运输,可以启用容器间流量加密,这过程会增加整个训练流程的执行时间,但是资料的加密仍然是安全性系统当中重要的一环。

可审计性

管理良好且安全的 ML 环境的第四个考虑因素是拥有强大且透明的追踪与审计。记录对资料和模型的所有访问和更改,包含模型架构配置或超参数的更改。

AWS CloudTrail 是一项服务,可以记录、持续监控和保留与 AWS 基础设施中的操作相关活动。CloudTrail 记录每个 AWS API 调用并提供帐户活动的事件历史记录,让你可以方便的查找。另外AWS CloudTrail还提供识别浅在的安全威胁事件,或者异常事件的检测。并且跟Amazon CloudWatch整合,可以有更大的弹性设置要监管的相关活动。

延伸阅读:

结语

透过这四个步骤,以及相关的服务配置,结合这些服务达到整个系统的开发、部署、使用监管。能够提升ML专案的安全性。

Reference
[1]. Machine Learning Best Practices in Financial Services


<<:  [Day3] Playing with CSS Variables and JS

>>:  Day05:工程师必学的 Markdown 笔记语法

Day 29 - 在 VyOS 上设定 GRE

那今天,我们来讲一下在 VyOS 上设定 GRE Tunnel 的指令 其实跟昨天的大同小异。 se...

[Day19]C# 鸡础观念- 让时间倒转吧~递回

电视可以倒带, 然後重播, 喜欢看几次就看几次, C#中也能让程序倒带,重新执行, 执行到满意为止 ...

Day_05 opkg套件管理

在往下继续讲其他网路架构之前,想先来介绍OpenWrt的套件管理系统。常见的Linux发行版几乎都会...

Day15 PHP函数介绍

什麽是函数? 函数就是一个功能~ 在写程序时,相同或类似逻辑的程序码如果很常使用,那麽一直重复写一样...

#14 JS: create a calculator by prompt()

Final Calculator Design <!DOCTYPE html> <...