使用C#,只要知道存储桶名称和文件密钥(文件名),就可以从存储桶中下载文件。
文件和存储分区设置为无法公开访问。
我做了
GetObjectRequest request = new GetObjectRequest
{
BucketName = bucketName,
Key = keyName
};
即使我没有提供访问密钥或密钥,我仍然可以访问文件内容。
有没有办法不允许这个?
答案 0 :(得分:1)
@akiva部分正确。
如果您在ec2实例上运行此操作,如果该实例具有与其关联的“IAM角色”,并且该角色可以访问该存储桶,则应用程序可以在没有应用程序提供凭据的情况下访问存储桶。
在常规计算机上,甚至在没有关联IAM角色的ec2实例上,凭据通常存储在凭证文件的users .aws子目录中。
答案 1 :(得分:0)
如果您从EC2服务器连接,它有时会configuration file为您全局存储凭据
答案 2 :(得分:0)
如果您的代码在EC2计算机上,它将获取存储在隐藏的.aws目录中的访问密钥和密钥。此外,如果此EC2实例具有具有适当权限的IAM角色,则它可以很好地从S3存储桶中获取内容。
您可能需要检查与EC2实例关联的角色,以防止访问S3存储桶。