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

作为AWS联合用户,如何获取用于AWS CLI的API凭证?

AWS联合访问下获取CLI API凭证的解决方案

为啥你找不到IAM凭证集选项?

首先得明确:你通过内部SSO+自定义联合代理访问AWS,本质是以IAM角色的身份临时访问,而非IAM用户。IAM凭证集(也就是永久的Access Key/Secret Key)是专门给IAM用户用的,联合身份用户(像你这种SSO登录的)默认没有创建这类永久凭证的权限——而且从AWS安全最佳实践来说,也不推荐给联合用户用永久凭证,临时凭证才是更安全的选择。

获取CLI可用临时凭证的两种方法

方法1:用AWS CLI的sso login(最推荐)

如果公司已经配置了AWS SSO(哪怕是基于自定义代理的),直接用CLI的SSO登录流程就行:

  1. 先配置SSO专属配置文件:
    aws configure sso
    
    跟着提示输入SSO启动URL(就是你从内部网站跳转到AWS的那个自定义代理入口URL)、AWS区域,然后选择你有权限访问的账户和角色。
  2. 触发SSO登录:
    aws sso login --profile your-sso-profile
    
    这时候会自动弹出浏览器让你走内部SSO登录流程,登录成功后,CLI会自动获取有效期12小时左右的临时凭证,到期后重新执行这个命令就行。

方法2:手动获取临时凭证(适合特殊场景)

如果sso login没法直接用,你可以通过自定义联合代理的流程手动拿临时凭证:

  1. 先通过内部SSO登录,从自定义联合代理那里拿到身份令牌(一般登录后会返回类似Assertion的令牌内容)。
  2. 调用AWS STS服务的AssumeRoleWithSAML或AssumeRoleWithWebIdentity API(取决于你的联合身份是SAML还是OIDC类型),传入令牌和你要扮演的IAM角色ARN,就能拿到临时的AccessKeyId、SecretAccessKey和SessionToken。
  3. 把这些临时凭证配置到CLI的配置文件里:
    在~/.aws/credentials(Windows是C:\Users\<你的用户名>\.aws\credentials)里添加:
    [temp-federated-profile]
    aws_access_key_id = 你的临时AccessKey
    aws_secret_access_key = 你的临时SecretKey
    aws_session_token = 你的临时SessionToken
    
    之后用aws --profile temp-federated-profile ec2 describe-instances测试下能不能正常调用API就行。

要不要找IT团队调整配置?

  • 如果你想用sso login的方法,得让IT确认已经给你的账号配置了AWS SSO权限,并且提供正确的SSO启动URL和区域信息。
  • 要是用手动拿凭证的方法,需要IT确认你有权限调用对应的STS API,能拿到联合身份令牌,同时确保你要扮演的IAM角色的信任策略允许sts:AssumeRoleWithSAML或sts:AssumeRoleWithWebIdentity操作。
  • 另外,如果你确实需要永久凭证(非常不推荐,风险高),IT得给你创建一个IAM用户并分配权限,但从安全角度来说,优先用临时凭证才是合规的做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:27:35