2

我有多个AspNetCore应用程序在Windows Server 2016EC2 上运行。所有这些应用程序都需要根据其权限承担不同的 IAM 角色。

这些应用程序在本地系统帐户下运行,并且由于配置文件位置不适用于系统用户,因此从文档C:\Users\<user>\.aws\config中不清楚如何为每个应用程序指定角色配置文件名称。如果不指定角色配置文件,应用程序将承担我不想要的 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 中的本地系统帐户下运行时,如何实现这一点的任何想法?

4

1 回答 1

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"
于 2018-08-01T05:26:55.560 回答