0

在带有凭证文件的 Ubuntu Linux 上使用像这样的简单 AWS 凭证文件时:~/.aws/credentials

[leigh.m] # let's call this account ID: 1000 for simplicity
AWS_ACCESS_KEY_ID=some_access_key_id
AWS_SECRET_ACCESS_KEY=some_secret_access_key

VSCode 中的 AWS Toolkit 运行良好,我可以通过 VSCode 访问 AWS 资源。

但是,我需要假设角色跨帐户(使用源“根”配置文件通过角色控制对其他帐户的访问),这些角色都设置了 MFA。

我的 ~/.aws/config 文件有助于实现这一点,如下所示:

[profile my-assumed-role-1] # let's say this has account ID: 2000
role_arn=arn:aws:iam::2000:role/AdminRole
source_profile=leigh.m
role_session_name=my-assumed-role-1-session-name
mfa_serial=arn:aws:iam::1000:mfa/leigh.m
duration_seconds=3600

这个设置现在工作得很好,我可以通过 CLI 承担这个角色,我可以通过传递该配置文件来列出账户 2000 中的存储桶,例如:aws s3api list-buckets --profile my-assumed-role-1

但是,当我尝试通过 VSCode 中的 AWS Toolkit 访问该命名配置文件时,我在 AWS Toolkit 日志中收到错误消息:

共享凭证配置文件 leigh.m 无效。工具包不会使用它。

无法与“profile:my-assumed-role-1”连接:配置文件 leigh.m 不是有效的凭据配置文件:工具包不支持配置文件 leigh.m。

它似乎正在寻找配置文件“leigh.m”,因此我尝试将本节添加到 ~/.aws/config:

[profile leigh.m]
mfa_serial=arn:aws:iam::1000:mfa/leigh.m
region=eu-west-1
output=json

我还尝试不使用配置文件并将所有内容放在凭据文件中(因为它似乎在这里建议:https ://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/mfa -credentials.html )

但仍然是同样的问题。我错过了什么?

(我确实查看了 S/O 上是否已经存在关于正确设置 AWS Toolkit 和 MFA 的 AWS 凭证的任何问题(因为我的 AWS 凭证和配置文件对于所有其他要求都正常工作),这是唯一的问题从大约 5 年前开始:Visual Studio AWS 工具包与多因素身份验证?但没有回答,也没有关于 AWS 工具包、MFA 和假设角色的问题/答案与名称配置文件)

4

1 回答 1

0

这是一个 VSCode AWS Toolkit 错误,他正在为此发布修复:https ://github.com/aws/aws-toolkit-vscode/issues/2394

摘要:AWS Toolkit 仅适用于小写键,因此这不起作用:

AWS_ACCESS_KEY_ID=some_access_key_id
AWS_SECRET_ACCESS_KEY=some_secret_access_key

当修复发布时,它将使用大写和小写,当然在短期内只需将凭据文件更改为:

aws_access_key_id=some_access_key_id
aws_secret_access_key=some_secret_access_key

它将按预期工作

于 2022-01-03T10:35:16.413 回答