You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Altostra ENV中加密存储API Key等环境变量?

在Altostra项目中加密Lambda的API Token环境变量

方法一:用Altostra内置加密(最省心)

  • 打开你的Altostra项目,找到对应的Lambda函数组件
  • 进入Lambda的配置面板,找到「环境变量」区域
  • 给需要加密的API Token环境变量开启「加密」开关(对应你截图里的配置界面选项)
  • 选择加密用的KMS密钥:可以选AWS默认的Lambda服务密钥,也可以用你自己创建的自定义KMS密钥
  • 输入明文API Token,部署时Altostra会自动用选定的KMS密钥加密存储
  • 部署完成后,Lambda运行时会自动解密,代码里直接用process.env.YOUR_API_TOKEN就能拿到明文

方法二:手动配置KMS加密(适合精细权限控制)

  • 先在AWS控制台创建一个自定义KMS密钥
  • 在Altostra的Lambda组件配置里,给Lambda的执行角色添加权限,允许调用KMS的Decrypt操作
  • 用AWS CLI提前加密API Token:
    aws kms encrypt --key-id 你的密钥ID --plaintext "你的API Token" --query CiphertextBlob --output text
    
  • 把加密后的base64字符串作为环境变量值填入Lambda配置
  • 在Lambda代码里加解密逻辑(以Node.js为例):
    const { KMSClient, DecryptCommand } = require("@aws-sdk/client-kms");
    const kmsClient = new KMSClient({ region: "你的AWS区域" });
    
    async function getApiToken() {
      const encryptedToken = process.env.ENCRYPTED_API_TOKEN;
      const params = {
        CiphertextBlob: Buffer.from(encryptedToken, 'base64')
      };
      const command = new DecryptCommand(params);
      const res = await kmsClient.send(command);
      return res.Plaintext.toString('utf-8');
    }
    

注意要点

  • 绝对不要把明文API Token提交到代码仓库,Altostra加密后的环境变量不会被存入版本控制
  • 用自定义KMS密钥时,必须确保Lambda执行角色有该密钥的解密权限,不然会报错
  • 默认KMS密钥不需要手动配权限,但自定义密钥更适合多环境(开发/测试/生产)隔离

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:54:13