我想在.NET Core中使用AWSSDK与S3交互。
为此,我可以指定访问密钥和机密。
但是,如果要尝试访问S3的代码在EC2实例下运行,我会觉得这不是必需的?可以用一些IAM魔术来代替吗?
答案 0 :(得分:1)
EC2可以与Instance Profile
关联,Startup
是IAM角色的容器。有关如何管理实例配置文件的说明,请参见Using Instance Profiles - AWS Identity and Access Management。
一旦将IAM角色附加到EC2(使用实例配置文件),在EC2上运行的应用程序就可以承担该角色。
在EC2上运行的应用程序遵循一连串的凭据提供程序来获取凭据,并且实例配置文件凭据(通过EC2元数据服务提供)就是其中之一。使用大多数AWS开发工具包,您无需在应用程序中执行任何特殊操作即可使用实例配置文件凭证。有关更多详细信息,请参见您的SDK文档(例如Java SDK docs)。使用.NET Core,您所要做的就是在public void ConfigureServices(IServiceCollection services)
{
...
services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
services.AddAWSService<IAmazonS3>();
...
}
类中添加类似的内容
IAmazonS3
然后您可以在应用程序类中依赖 var obj = cameras.map(({years, ...obj}) => {
for(var year in years) {
var months = years[year];
for(var i in months_chars) {
months.includes(i) ? obj[year + "-" + months_chars[i]] = 1 : obj[year + "-" + months_chars[i]] = 0
}
}
return obj;
});
,一切将正常工作。