amazon-web-services - 设置 AWS 凭证以使用 MFA 并能够通过 VScode 中的 AWS Toolkit 担任指定配置文件的角色的正确方法是什么?

标签 amazon-web-services visual-studio-code aws-toolkit

在 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 工具包日志中收到错误消息:

共享凭据配置文件 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 toolkit with multifactor authentication? 但没有回答,也没有关于 AWS Toolkit、MFA 和使用姓名配置文件担任角色的问题/答案)

最佳答案

这是一个 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

它将按预期工作

关于amazon-web-services - 设置 AWS 凭证以使用 MFA 并能够通过 VScode 中的 AWS Toolkit 担任指定配置文件的角色的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70534164/

相关文章:

git - Windows 上的 VS Code - git push 导致权限被拒绝(公钥)

amazon-web-services - 在本地在 IntelliJ 中使用 Java 运行 AWS Lambda - 函数调用容器没有响应(Docker 有问题?)

php - cURL 错误 35 - 连接到 api.rkd.reuters.com 时出现未知 SSL 协议(protocol)错误 :443

javascript - 将 getItem 与主键和排序键一起使用

amazon-web-services - lambda@edge 超时和 s3 图像处理

c# - 无法生成 Assets 以进行构建和调试。 OmniSharp 服务器未运行

continuous-integration - 如何处理CI

c# - VSCode 发生异常 : CLR/System. ApplicationException

java - IntelliJ IDEA Config 在默认 'helloworld' 应用程序中找不到 AWS Lambda 处理程序

python - 用于本地运行 lambda 的 pycharm 错误的 aws 工具包