在带有凭证文件的 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 和假设角色的问题/答案与名称配置文件)