我在AspNetCore
EC2上运行了多个Windows Server 2016
应用程序。所有这些应用程序都需要根据其权限承担不同的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中以本地系统帐户运行应用程序时,如何实现此目标的任何想法?
答案 0 :(得分:1)
向在Amazon EC2实例上运行的应用程序提供凭据的通常方法是将IAM角色分配给该实例。然后,通过实例元数据提供与角色关联的临时凭证。 AWS开发工具包将自动使用这些凭证。
但是,这仅适用于一组凭据。如果您希望使用多个凭证,则需要在凭证文件中提供凭证。
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"