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

如何在非AWS服务器上配置持久化AWS CLI会话?

解决非AWS环境下AWS CLI SSO会话自动过期问题

核心思路

遵循AWS最佳实践,不使用长期凭证,通过SSO自动刷新会话或IAM角色联合身份实现无人工干预的凭证管理,避免会话过期后需要手动操作的问题。

具体方案

方案1:配置SSO会话自动刷新

AWS CLI v2支持SSO会话自动刷新,只需修改配置文件开启该功能:

  1. 找到服务器上的AWS配置文件(路径通常为~/.aws/config或C:\Users\<用户名>\.aws\config)
  2. 添加SSO会话配置段,开启自动刷新并设置合适的会话时长:
    [sso-session my-app-sso]
    sso_start_url = https://你的SSO门户地址.awsapps.com/start
    sso_region = 你的AWS区域(如us-east-1)
    sso_registration_scopes = sso:account:access
    sso_session_duration = 43200  # 最大支持12小时,可按需调整
    sso_auto_refresh = true       # 开启自动刷新
    
  3. 在应用使用的配置段关联这个SSO会话:
    [profile my-app-profile]
    sso_session = my-app-sso
    sso_account_id = 你的AWS账号ID
    sso_role_name = 应用使用的IAM角色名
    region = 你的AWS区域
    
  4. 首次在服务器执行aws sso login --profile my-app-profile完成MFA验证,之后AWS CLI会自动在会话到期前刷新凭证,无需人工操作。

方案2:使用IAM角色联合身份(适合无人值守场景)

如果服务器所在环境有企业身份系统(如AD、Okta等),可配置SAML 2.0联合身份:

  • 在AWS IAM中创建SAML身份提供商,关联企业身份系统
  • 创建IAM角色,允许该身份提供商的用户/组调用AssumeRole
  • 在服务器部署身份提供商客户端,自动获取SAML断言,通过aws sts assume-role-with-saml获取临时凭证
  • 编写简单脚本定时刷新凭证,将凭证注入环境变量或AWS本地凭证文件

方案3:用AWS Secrets Manager托管临时凭证(进阶多服务器场景)

  • 搭建小型服务或使用Lambda,定期通过SSO登录获取临时凭证并存入Secrets Manager
  • 服务器上的应用或脚本定时从Secrets Manager拉取最新凭证,替换本地AWS凭证文件
  • 此方式适合多服务器共享凭证的场景,可统一管控凭证生命周期

注意事项

  • 所有方案均遵循AWS临时凭证最佳实践,避免长期凭证泄露风险
  • SSO会话的最大时长由AWS SSO管理员配置,需提前确认权限是否开放
  • 确保服务器能正常访问AWS SSO门户地址和STS服务端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:12:39