aws sts get-session-token 因配置文件失败
aws sts get-session-token fails with profile
我正在尝试获取会话令牌以设置环境变量,以便使用上传到 S3 但不直接支持 AWS 配置文件的工具。
aws sts get-session-token --profile myprofile
Enter MFA code for arn:aws:iam::1234567890:mfa/myid:
An error occurred (AccessDenied) when calling the GetSessionToken operation:
Cannot call GetSessionToken with session credentials
后续调用跳过MFA检查,说明通过ok。
运行 get-session-token
没有 --profile
参数工作正常:
$ aws sts get-session-token
{
"Credentials": {
...
可能出了什么问题?我的做法是否正确?
我的相关部分~/.aws/config
:
[profile otherprofile]
mfa_serial=arn:aws:iam::xxx:mfa/myid
aws_access_key_id=xxx
aws_secret_access_key=xxx
[profile myprofile]
source_profile=otherprofile
region=ap-southeast-2
role_arn=arn:aws:iam::xxx:role/owner
mfa_serial=arn:aws:iam::xxx:mfa/myid
您的初始呼叫使用的是 IAM 角色。它正在尝试调用 get-session-token
,这将 return 一些临时凭据。
但是,当使用 IAM 角色时,AWS CLI 会自动使用您的正常凭证来调用 assume-role
,从而接收回一组临时凭证。无法使用临时凭据(从角色)调用 get-session-token
。这就是错误消息显示 Cannot call GetSessionToken with session credentials
.
的原因
如果您希望调用 get-session-token
,您将需要使用您的正常凭据,就像您在第二个示例中所做的那样。
我正在尝试获取会话令牌以设置环境变量,以便使用上传到 S3 但不直接支持 AWS 配置文件的工具。
aws sts get-session-token --profile myprofile
Enter MFA code for arn:aws:iam::1234567890:mfa/myid:
An error occurred (AccessDenied) when calling the GetSessionToken operation:
Cannot call GetSessionToken with session credentials
后续调用跳过MFA检查,说明通过ok。
运行 get-session-token
没有 --profile
参数工作正常:
$ aws sts get-session-token
{
"Credentials": {
...
可能出了什么问题?我的做法是否正确?
我的相关部分~/.aws/config
:
[profile otherprofile]
mfa_serial=arn:aws:iam::xxx:mfa/myid
aws_access_key_id=xxx
aws_secret_access_key=xxx
[profile myprofile]
source_profile=otherprofile
region=ap-southeast-2
role_arn=arn:aws:iam::xxx:role/owner
mfa_serial=arn:aws:iam::xxx:mfa/myid
您的初始呼叫使用的是 IAM 角色。它正在尝试调用 get-session-token
,这将 return 一些临时凭据。
但是,当使用 IAM 角色时,AWS CLI 会自动使用您的正常凭证来调用 assume-role
,从而接收回一组临时凭证。无法使用临时凭据(从角色)调用 get-session-token
。这就是错误消息显示 Cannot call GetSessionToken with session credentials
.
如果您希望调用 get-session-token
,您将需要使用您的正常凭据,就像您在第二个示例中所做的那样。