无需凭据或密钥以编程方式访问AWS S3存储桶中的文件?

时间:2018-02-21 21:28:15

标签: amazon-web-services amazon-s3 bucket

使用C#,只要知道存储桶名称和文件密钥(文件名),就可以从存储桶中下载文件。

文件和存储分区设置为无法公开访问。

我做了

GetObjectRequest request = new GetObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };

即使我没有提供访问密钥或密钥,我仍然可以访问文件内容。

有没有办法不允许这个?

3 个答案:

答案 0 :(得分:1)

@akiva部分正确。

如果您在ec2实例上运行此操作,如果该实例具有与其关联的“IAM角色”,并且该角色可以访问该存储桶,则应用程序可以在没有应用程序提供凭据的情况下访问存储桶。

在常规计算机上,甚至在没有关联IAM角色的ec2实例上,凭据通常存储在凭证文件的users .aws子目录中。

答案 1 :(得分:0)

如果您从EC2服务器连接,它有时会configuration file为您全局存储凭据

答案 2 :(得分:0)

如果您的代码在EC2计算机上,它将获取存储在隐藏的.aws目录中的访问密钥和密钥。此外,如果此EC2实例具有具有适当权限的IAM角色,则它可以很好地从S3存储桶中获取内容。

您可能需要检查与EC2实例关联的角色,以防止访问S3存储桶。