在 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/