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

如何将Python .env凭证文件传入AWS Ubuntu EC2及安全方案咨询

将.env文件传入AWS Ubuntu EC2实例的方法

1. 用SCP直接传输

本地终端执行命令,把本地的.env传到EC2实例:

scp -i /本地路径/你的密钥对.pem /本地路径/.env ubuntu@你的EC2公网IP:/EC2上的目标路径/

传完记得修改文件权限,避免其他用户读取:
chmod 600 /EC2上的目标路径/.env

2. 用AWS Systems Manager Parameter Store存储(更安全)

不用直接传文件,把.env里的每个参数单独存到Parameter Store,再在EC2上拉取:

  • 登录AWS控制台,进入Parameter Store,创建SecureString类型的参数(比如/myapp/AWS_ACCESS_KEY_ID),填入对应凭证值
  • 给EC2实例的IAM角色附加AmazonSSMReadOnlyAccess权限,让实例能读取参数
  • 在EC2终端执行命令,把参数写入.env:
echo "AWS_ACCESS_KEY_ID=$(aws ssm get-parameter --name "/myapp/AWS_ACCESS_KEY_ID" --with-decryption --query "Parameter.Value" --output text)" >> /目标路径/.env
echo "AWS_SECRET_ACCESS_KEY=$(aws ssm get-parameter --name "/myapp/AWS_SECRET_ACCESS_KEY" --with-decryption --query "Parameter.Value" --output text)" >> /目标路径/.env

3. 用AWS Secrets Manager存储整个.env内容

如果.env里参数多,可以把整个文件内容存成一个Secret:

  • 进入AWS Secrets Manager,创建新Secret,选择“其他类型的Secret”,把.env的内容粘贴进去
  • 给EC2实例的IAM角色附加读取Secrets Manager的权限
  • 在EC2终端拉取并生成.env:
    aws secretsmanager get-secret-value --secret-id myapp-env --query "SecretString" --output text > /目标路径/.env
安全优化策略(别硬编码!)
  • 优先用IAM角色:给EC2实例附加对应权限的IAM角色,AWS SDK会自动从实例元数据获取临时凭证,完全不需要在.env里存任何长期凭证,这是最安全的方案。
  • 严格限制.env权限:不管用哪种方法,都要执行chmod 600 .env,只有文件拥有者能读写,防止其他用户窃取凭证。
  • 定期轮换凭证:如果必须用长期凭证,每隔一段时间在IAM控制台轮换密钥,同时更新存储的参数或.env文件。
  • 绝对禁止硬编码:硬编码凭证会让代码一旦泄露,凭证直接暴露,风险极高,绝对不要这么做。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:21:03