You need to enable JavaScript to run this app. IBM Cloud Functions Node.js Web Action密钥与密码安全配置咨询
优惠活动
大模型
产品
解决方案
定价
更多

IBM Cloud Functions Node.js Web Action密钥与密码安全配置咨询

关于IBM Cloud Function存储敏感密钥的安全说明

核心安全判断

  • 将API密钥、密码直接明文硬编码在函数代码中极不安全:这类明文内容会跟随代码一起存储、版本化,任何拥有函数读取权限的账号都可以直接获取,一旦代码被意外分享、上传到公开仓库,密钥会立刻泄露。
  • 你目前通过控制台「parameters」面板定义参数存储密钥的方式,安全性远高于硬编码,但存在关键配置前提:必须在定义参数时开启「Secret(密文)」标识。没有开启密文标识的参数会以明文形式存储,甚至会被默认记录到函数调用日志、元数据列表中,和硬编码的风险没有本质区别。

引用敏感密钥的正确操作

  • 所有密码、API密钥类参数,在控制台定义时必须开启「Secret」开关,这类参数会被IBM进行加密存储,不会出现在公开可读的函数元数据中,也不会被默认打印到调用日志里。
  • 编写代码时,禁止主动打印包含敏感参数的params对象,避免密文参数被写入日志造成二次泄露。
  • 你当前的函数是开启Web Action、由Watson Assistant webhook调用的,需给Web Action配置严格的访问鉴权,不要放开无鉴权的公网调用权限,避免恶意调用触发密钥相关的逻辑泄露。
  • 对合规要求更高的场景,可结合IBM云端的密钥管理服务实现运行时动态拉取密钥,进一步降低静态存储的泄露风险。

对应两段示例代码的改造方式

RapidAPI调用逻辑改造

你目前用params.apiKey替换硬编码密钥的方向完全正确,只要给对应的apiKey参数开启密文标识,直接替换原硬编码值即可:

function main(params) {
    if (params.actionJoke == 'joke') {
        const optionsDad = {
            method: "GET",
            uri: "https://dad-jokes.p.rapidapi.com/random/joke",
            json: true,
            "resolveWithFullResponse": true,
            "headers": {
                "x-rapidapi-host": "dad-jokes.p.rapidapi.com",
                // 从运行时参数读取密钥,不要硬编码
                "x-rapidapi-key": params.apiKey,
                "useQueryString": true
            }
        }

注意:改造后不要在代码中整体打印optionsDad对象,否则带密钥的请求头会被写入日志。

SMTP配置逻辑改造

首先需要在函数的parameters面板中,分别定义以下参数(账号、密码类参数记得开启密文标识):

  • smtpHost:SMTP服务器地址
  • smtpUser:发件邮箱账号
  • smtpPass:发件邮箱密码

改造时需要注意一个高频踩坑点:所有需要读取运行时参数的配置,必须放到main函数的作用域内部,全局作用域的代码是无法获取运行时注入的参数值的。
改造后的正确代码片段:

// 全局作用域不要写依赖参数的配置,否则读不到值
function main(params) {
  // SMTP配置放到main函数内部,正常读取运行时参数
  let smtpConfig = {
      host: params.smtpHost,
      port: 122,
      secure: false, // use TLS
      auth: {
          user: params.smtpUser, 
          pass: params.smtpPass
      }
  }
  // 后续原有SMTP发信逻辑...
}

内容的提问来源于stack exchange,提问作者Warkus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 18:15:04