我有多个AspNetCore
应用程序在Windows Server 2016
EC2上运行。所有这些应用程序都需要根据其权限承担不同的IAM角色。
这些应用程序在本地系统帐户下运行,由于配置文件位置C:\Users\<user>\.aws\config
不适用于系统用户,因此在docs中不清楚如何为每个应用程序指定角色配置文件名称。如果不指定角色配置文件,应用程序将承担我不想要的EC2实例配置文件角色。
如果我以本地用户身份运行该应用程序,则可以使用以下配置
凭据文件C:\Users\<user>\.aws\credentials
[applicationuser]
aws_access_key_id = xxxxxxxx
aws_secret_access_key = yyyyyyyy
配置文件C:\Users\<user>\.aws\config
[profile ApplicationA]
role_arn = arn:aws:iam::11111111111:role/ApplicationA
source_profile = applicationuser
[profile ApplicationB]
role_arn = arn:aws:iam::11111111111:role/ApplicationB
source_profile = applicationuser
当应用程序在具有实例配置文件的EC2中以本地系统帐户运行时,您对如何实现这一点有什么想法吗?
发布于 2018-08-01 13:26:56
向亚马逊EC2实例上运行的应用程序提供凭据的正常方法是为该实例分配一个IAM角色。然后通过实例元数据提供与角色关联的临时凭据。AWS SDK将自动使用这些凭据。
但是,这只适用于一组凭据。如果要使用多个凭据,则需要在凭据文件中提供凭据。
AWS凭证文件可以包含多个配置文件,例如
[default]
aws_access_key_id = AKIAaaaaa
aws_secret_access_key = abcdefg
[user2]
aws_access_key_id = AKIAbbbb
aws_secret_access_key = xyzzzy
为方便起见,还可以通过AWS CLI进行配置:
$ aws configure --profile user2
AWS Access Key ID [None]: AKIAbbbb
AWS Secret Access Key [None]: xyzzy
Default region name [None]: us-east-1
Default output format [None]: text
可以通过环境变量设置要使用的配置文件:
Windows: set AWS_PROFILE="user2"
https://stackoverflow.com/questions/51625706
复制相似问题