我对AmazonCloud很陌生。我设置了一个EC2实例,以便能够在云上运行jupyter笔记本,现在我试图设置数据文件,以便能够在任何地方访问它们。
我的目标就像是在localhost上一样,使用Amazon S3在云中打开笔记本中的数据(例如CSV或Json文件)
我打开了一个上传数据的Amazon S3存储桶,将存储桶设置设置为“阻止公共访问”>“禁用”
但是,当我尝试使用url访问数据时:https://bucketname.s3.amazonaws.com/folder/file.json
我得到了错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>92D39BE8B6594380</RequestId>
<HostId>
C0H9RwlhzCxSdp2nLh5o+G7XWSKn3aES1YWzWgbv3tQL6B18Ky0JDkGE0Psn43c3Wl1jiYr9rng=
</HostId>
任何想法我该如何访问?
答案 0 :(得分:2)
您必须创建一个IAM角色,以允许您的EC2实例有权访问S3。该角色在AWS控制台的IAM部分中创建。受信任的实体是EC2,附加的策略可能是“ AmazonS3ReadOnlyAccess”,如下所示:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": "*"
}]
}
对于从Jupiter Notebook到S3的连接,您可以使用boto3。 这里的更多信息:Using an IAM Role to Grant Permissions to Applications Running on Amazon EC2 Instances - AWS Identity and Access Management