提供对S3的访问而没有访问密钥/秘密?

时间:2019-06-02 08:01:42

标签: .net amazon-web-services amazon-s3

我想在.NET Core中使用AWSSDK与S3交互。

为此,我可以指定访问密钥和机密。

但是,如果要尝试访问S3的代码在EC2实例下运行,我会觉得这不是必需的?可以用一些IAM魔术来代替吗?

1 个答案:

答案 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; }); ,一切将正常工作。