繁体   English   中英

多个账户的 AWS AssumeRole 账户 ID 问题

[英]AWS AssumeRole account id issue with multiple accounts

我最近接手了一名 DevOps 员工,陷入了困境,并且在运行与 AWS 交互的任何代码时遇到了问题。 在最基本的层面上发生的变化是我已被添加到管理员角色,在我们的主帐户 ID 下,没有泄露它让我们假设它是 111111。我之前运行了代码(NodeJS / NestJS),它从以下位置检索 AWS 参数存储条目一个 ID 为 222222 的帐户(我们的开发帐户),没有问题。 但是,现在尝试运行代码时出现以下错误:

用户:arn:aws:iam::111111:user/my.account 无权执行:ssm:GetParameters on resource:arn:aws:ssm:us-west-2:111111:parameter/platform/master/hostname with明确否认

在我的 ~/.aws/config 文件中,我特别说:

[default]
role_arn = arn:aws:iam::222222:role/DeveloperRestrictedRole
source_profile = mfa_creds
region = us-west-2
output = json

[profile my_profile]
role_arn = arn:aws:iam::222222:role/DeveloperRestrictedRole
source_profile = mfa_creds
region = us-west-2
output = json

在 ~/.aws/credentials 文件中,我指定了 mfa_creds 部分。

当我从命令提示符运行以下命令时,它可以工作。 因此,看起来问题在于代码没有选择正确的帐户 ID,即使它是在配置文件中指定的。 以下命令从命令行工作:

aws ssm get-parameter --name "/platform/master/hostname"

此命令也有效:

aws ssm get-parameter --name "/platform/master/hostname" --profile my_profile

已经搜索了代码库,并且在代码中找不到帐户 ID,所有配置项都自动从 AWS 参数存储中提取,该参数存储初始化为:

AwsConfig.update({ region: "us-west-2" }); this.ssm = new SSM();

很高兴得到一些指导和尝试的东西,我对这个有点不知所措,因为我的用户帐户一直存在于主帐户中并且我一直能够运行代码,直到我被添加到管理员角色/组。 提前感谢您的帮助!

当您从 CLI 运行时,它会承担账户 2 中的角色。

当您运行代码时,它使用来自帐户 1 的凭据(不承担角色)。

我认为(不是 100% 肯定)在~.aws/config文件中担任角色的能力是 AWS CLI 的一项功能,但不是通过普通 AWS SDK 使用凭证的功能。

因此,您的代码将需要专门承担 Account 2 中的角色,然后使用返回的凭据调用 Account 2 中的服务。

找到了解决方案,感谢 john-rotenstein 让我走上正确的道路,并指导我的搜索条件来解决这个问题:-)

这对我有用:

  1. 使用export AWS_SDK_LOAD_CONFIG=1设置环境变量,这也可以设置为“true”,两者都有效。 我已经为我的默认 shell (bash_profile) 设置了这个并自动加载。 Windows 用户必须通过“我的电脑 -> 属性”进行设置
  2. 设置环境变量export AWS_PROFILE="my_profile"并确保它在我的 bash_profile 中,我最初没有这个,我在标准 mac os 终端 window 中运行它,并将其添加到我的 bash 配置文件中
  3. 确保我的开发人员 IDE (Visual Studio Code) 可以通过运行set | grep AWS访问终端 window 中的两个环境变量 | set | grep AWS - 这仅报告现有的 AWS_SDK_LOAD_CONFIG 环境变量,即使在关闭终端 window 并打开新终端之后也是如此。 我通过在 VS 代码终端 window 中手动运行导出命令来解决此问题,因为我不想重新启动机器,这也应该修复它

希望有人觉得这很有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM