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

AWS CLI 凭证加密方案问询:如何解决aws configure存储明文凭证问题

AWS本地明文凭证存储风险修复方案(兼容AWS CLI与Terraform)

背景说明

使用aws configure直接配置身份凭证时,AK/SK会以明文形式存储在~/.aws/credentials文件中,存在极高的泄露风险,以下方案同时支持AWS CLI直接调用和Terraform编排两种使用场景,完全避免明文凭证落盘。

方案1:使用IAM Identity Center(官方优先推荐)

  • 先在AWS控制台完成IAM Identity Center(原AWS SSO)的用户、权限集配置
  • 本地执行aws configure sso按照引导完成profile配置,本地仅存储临时SSO会话令牌,不会持久化长期AK/SK,令牌默认自带过期时间
  • 调用方式:
    • AWS CLI使用时指定profile即可:aws s3 ls --profile <自定义profile名>
    • Terraform的AWS provider块中直接指定profile即可自动适配:
      provider "aws" {
        profile = "<自定义profile名>"
        region  = "us-east-2"
      }
      
  • 适配说明:新版AWS CLI(v2以上)和Terraform AWS Provider(v3.0以上)均支持SSO令牌自动刷新,无需重复登录。

方案2:使用aws-vault加密存储凭证(适合需使用长期AK的场景)

  • 安装aws-vault工具后,所有长期AK/SK均存储在操作系统原生加密密钥链(Windows凭据管理器、macOS钥匙串、Linux libsecret)中,不会明文写入磁盘
  • 操作命令:
    • 新增凭证:aws-vault add <自定义profile名>,按提示输入AK/SK即可完成加密存储
    • 调用AWS CLI:aws-vault exec <自定义profile名> -- aws <CLI命令>
    • 运行Terraform:aws-vault exec <自定义profile名> -- terraform apply,Terraform会自动读取环境变量中的临时凭证,不会落盘存储
  • 额外安全增益:aws-vault默认调用STS生成短期临时凭证执行操作,即使密钥链被破解,获取到的凭证也已经过期。

方案3:环境变量注入临时凭证(适合临时操作场景)

  • 执行aws sts get-session-token --duration-seconds 3600生成最长12小时有效期的临时凭证,直接注入当前Shell环境变量:
    export AWS_ACCESS_KEY_ID=生成的临时AK
    export AWS_SECRET_ACCESS_KEY=生成的临时SK
    export AWS_SESSION_TOKEN=生成的会话令牌
    
  • 适配说明:AWS CLI和Terraform默认优先读取当前Shell的环境变量凭证,关闭Shell后凭证自动销毁,完全不落盘。

注意:禁止将长期AK/SK写入任何本地配置文件、提交到代码仓库,即使是私有仓库也存在泄露风险。

内容的提问来源于stack exchange,提问作者jlo-gmail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:05