为了使用aws命令行工具,我将aws凭证存储在if let Some(field) = v.get("stuff") {
println!("field = {:?}", field);
} else {
println!("field is missing");
}
中。
在本地运行我的应用程序时,我希望它要求该应用程序具有正确的IAM权限;我希望它从环境变量中读取这些权限。
发生的事情是,即使没有定义这些环境变量-即使没有定义权限-我的应用程序仍允许对aws的调用,因为它运行在具有开发人员凭据的系统上。
如何在不丢失aws命令行所需凭据的情况下,在系统上(而不是在容器中)运行我的应用程序,但是应用程序忽略了这些凭据?我尝试在启动脚本中将AWS_PROFILE环境变量设置为不存在的值,但这无济于事。
答案 0 :(得分:1)
我喜欢使用命名配置文件,并运行2组凭据,例如DEV和PROD。
要运行生产配置文件时,请运行export AWS_PROFILE=PROD
然后以相同的方式返回到DEV凭据。
这里的窍门是根本没有默认凭据,而仅使用命名配置文件。在凭证文件中删除名为default
的凭证,并仅替换为命名的配置文件。
请参阅 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html