更新时间:2025-05-14 GMT+08:00
分享

资产识别与管理

在函数的整个生命周期中,FunctionGraph提供安全的运行环境,用户需结合FunctionGraph提供的安全机制确保代码、依赖包及配置的安全。

运行环境安全

FunctionGraph服务提供用户代码执行所需的计算节点和函数实例。该服务基于用户调用量综合评估后,提供有效的算力,同时确保节点的可用性和安全性。

计算节点安全

计算节点提供以下华为云标准的安全防护能力,详情请参考《华为云安全白皮书》

  • 多AZ多集群容灾:一个region的计算节点部署在多个AZ(可用区)、多个集群,具备可用区容灾能力。
  • 独立的VPC环境:计算节点位于独立隔离的VPC中,用户无法直接访问计算节点。
  • 主机安全防护:计算节点使用华为云企业主机安全HSS服务,提供漏洞检测,安全检测和防御,并与华为云安全部门协作,提供快速感知与处置能力。
  • 漏洞修复或安全升级:FunctionGraph负责计算节点的漏洞修复及安全升级,且升级过程对用户透明。当存在不兼容风险时,将以公告或短信形式通知客户并提供适配方案,确保用户业务平滑迁移。

函数实例安全

函数实例提供函数级隔离能力,每个实例仅允许一个函数运行。

  • 网络隔离:函数实例间及函数实例与节点间均不可直接访问。根据用户的配置,函数实例可选择是否访问公网或用户VPC网络。
  • 函数实例冻结:当检测到恶意租户攻击时,FunctionGraph可即时冻结并隔离恶意用户函数实例,确保运行环境安全。
  • 漏洞修复和安全升级:FunctionGraph负责函数实例的漏洞修复及安全升级,且升级过程对用户透明。当存在不兼容风险时,将以公告或短信形式通知客户并提供适配方案,确保用户业务平滑迁移。
  • 运行时停止维护:随社区停止维护,FunctionGraph提供的运行时将逐步进入淘汰流程,禁止用户使用已停止维护的运行时创建函数。建议客户尽快迁移现有函数至新运行时,FunctionGraph不保证已停止支持的运行时版本能够持续正常运行。

用户代码安全

  • 代码分享和下载:FunctionGraph可以为用户提供临时代码及下载地址,并设置有效期,用户应避免临时下载地址泄露,以降低代码或库泄露的风险。
  • 敏感信息防泄露:用户应避免在代码或依赖包中明文记录敏感信息,例如访问密钥(AK)、安全密钥(SK)、数据库密码等;用户代码日志中应避免打印令牌(token)、密码等敏感信息,以防敏感信息泄露。
  • 代码无漏洞:用户需确保代码、库和依赖包安全性,及时识别、修复漏洞并更新函数。防止因用户代码漏洞引发攻击,从而影响业务安全。

华为云为FunctionGraph提供了多个安全云服务,可增强代码扫、威胁分析等安全能力。

表1 华为云安全云服务说明

华为云服务

说明

代码检查服务CodeArts Check

支持对FunctionGraph的代码进行多维度安全扫描,覆盖代码风格、质量及安全问题。其核心能力包括:

  • 自研检查引擎:支持C/C++、Java、Python等主流语言,可识别安全漏洞(如缓冲区溢出、未授权访问、加密问题)和代码规范问题。
  • 安全标准支持:集成ISO 5055、CWE、OWASP TOP 10等标准,结合华为30年研发经验的内置规范(如《华为C/C++编程规范》),确保代码符合安全要求。
  • 大规模扫描能力:日均百亿级扫描能力,支持弹性调度和容灾机制,适用于FunctionGraph的代码库全量检查。

安全云脑 SecMaster

安全云脑(SecMaster)是华为云原生的新一代安全运营中心,集华为云多年安全经验,基于云原生安全,提供云上资产管理、安全态势管理、安全信息和事件管理、安全编排与自动响应等能力,帮助您实现一体化、自动化安全运营管理,满足您的安全需求。

通过分析FunctionGraph相关云服务(如OBS、VPC)的日志数据,实时检测恶意行为。

  • 多维度日志分析:采集IAM、DNS、CTS等日志,利用AI引擎和威胁情报识别暴力破解和渗透攻击等威胁。
  • 告警与响应:生成威胁告警并输出统计结果,帮助您及时处理潜在风险,保障服务稳定。

可结合CodeArts Check实现代码侧全流程防护,同时通过SecMaster监控运行时威胁,构建FunctionGraph的安全增强体系。

用户配置安全

  • 敏感信息保护:当用户代码或配置中包含敏感信息时,强烈建议使用加密环境变量,以避免在用户界面或API返回结果中出现明文展示,从而预防敏感信息泄露。
  • 委托权限最小化:在配置触发器、VPC访问、自定义镜像、磁盘挂载等场景中,FunctionGraph需与其他云服务协同作业,需要创建云服务委托,确保FunctionGraph具备代表您执行部分资源运维工作的权限。配置委托时应遵循权限最小化原则,能够有效降低委托Token泄露时攻击的影响范围。
  • 使用KMS动态加解密(华为云数据加密服务DEW):若需在函数运行时解密敏感数据(如数据库密码、API密钥),可通过KMS SDK动态操作密钥。用户可以将加解密密钥托管在KMS,并在IAM服务为函数创建委托授权FunctionGraph访问KMS(授权满足最小化使用原则),授权策略如下所示:
    {
     "Version": "2012-10-17",
     "Statement": [
     {
     "Effect": "Allow",
     "Action": "kms:Decrypt",
     "Resource": "arn:huaweicloud:kms:REGION:ACCOUNT_ID:keyring/kms-ring-123456/key/kms-key-123456"
     }
     ]
     }

    然后在代码中添加KMS SDK代码片段以获取密钥,从而对敏感数据进行加解密操作。如下以python代码片段为例。

    from huaweicloudsdkkms import KmsClient, models
    
     def decrypt_data():
     # 初始化KMS客户端
     kms_client = KmsClient(
     secret_id=os.getenv('KMS_SECRET_ID'),
     secret_key=os.getenv('KMS_SECRET_KEY'),
     region_name="cn-north-4"
     )
    
     
     decrypt_request = models.DecryptRequest(
     key_id="kms-key-123456",
     ciphertext=b"encrypted_data_base64",
     encryption_algorithm="AES_256_CBC"
     )
     response = kms_client.decrypt(decrypt_request)
     return response.plaintext.decode('utf-8')

相关文档