如何在开发模式应用程序中禁止共享的AWS凭证

时间:2019-09-23 16:09:24

标签: node.js amazon-web-services credentials

为了使用aws命令行工具,我将aws凭证存储在if let Some(field) = v.get("stuff") { println!("field = {:?}", field); } else { println!("field is missing"); } 中。

在本地运行我的应用程序时,我希望它要求该应用程序具有正确的IAM权限;我希望它从环境变量中读取这些权限。

发生的事情是,即使没有定义这些环境变量-即使没有定义权限-我的应用程序仍允许对aws的调用,因为它运行在具有开发人员凭据的系统上。

如何在不丢失aws命令行所需凭据的情况下,在系统上(而不是在容器中)运行我的应用程序,但是应用程序忽略了这些凭据?我尝试在启动脚本中将AWS_PROFILE环境变量设置为不存在的值,但这无济于事。

1 个答案:

答案 0 :(得分:1)

我喜欢使用命名配置文件,并运行2组凭据,例如DEV和PROD。

要运行生产配置文件时,请运行export AWS_PROFILE=PROD

然后以相同的方式返回到DEV凭据。

这里的窍门是根本没有默认凭据,而仅使用命名配置文件。在凭证文件中删除名为default的凭证,并仅替换为命名的配置文件。

请参阅 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html