如何在iis上使用ec2角色和dotnetcore



我正试图弄清楚在IIS上运行dotnetcore webapi时,如何在windows ec2实例上使用/访问IAM角色凭据。

我知道,当在ec2-linux上运行dotnetcore应用程序时,默认构造函数可以使用凭据,但在IIS上运行时似乎并非如此,是否有特定的实例化方法可供使用,或者IIS/kestrel服务器是否无法访问凭据?

谢谢

回答我自己的问题:

  1. 使用默认构造函数,如var s3Client = new AmazonS3Client();
  2. 是的,Kestrel服务器确实具有RBAC访问权限

更多信息:

实例化Amazon客户端的最佳实践是使用如上所述的默认构造函数。

我以前读到有人在IIS上使用.NET Core时访问凭据时遇到问题,因为该应用程序在Kestrel服务器上运行,但在EC2实例上,客户端仍然可以访问基于角色的访问凭据。当在EC2服务器上运行时,在服务器上写入凭据是一种糟糕的做法,这几乎是每个IIS问答线程所提出的解决方案,如果IIS不在AWS服务器上,这是正确的。

有很多方法可以为.NET应用程序提供AWS凭据。一种方法是将凭据嵌入App.config文件的appSettings部分:

<configuration>
<appSettings>
<add key="AWSProfileName" value="development"/>
<add key="AWSRegion" value="us-west-2" />
</appSettings>
</configuration>

有关它的更多信息,您可以参考此链接。

SO上也有类似的问题,你也可以参考。

最新更新