amazon-web-services - AWS - 无法从 EC2 窗口访问 S3 存储桶

标签 amazon-web-services amazon-s3 amazon-ec2 amazon-iam

我已启动 EC2 - Windows 实例 创建了 S3 存储桶,创建了角色 S3-FullAccess 并分配给 EC2 实例。

通过 EC2 实例浏览器,我能够访问我的角色的元数据: http://169.254.169.254/latest/meta-data/iam/security-credentials/EC2-S3-access

{
  "Code" : "Success",
  "LastUpdated" : "2018-04-10T04:47:11Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "myaccess"
  "SecretAccessKey" : "mysecretkey",
  "Token" : "mytoken",
  "Expiration" : "2018-04-10T11:10:43Z"
}

如果我尝试从 S3 存储桶访问文件: https://s3.ap-south-1.amazonaws.com/mybucket/test.jar

出现以下错误:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>5EDB0A49E36E0E50</RequestId>
    <HostId>cPFNEbsfwXA=</HostId>
</Error>

角色 JSON:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}

我是 AWS 新手

编辑:

按照建议,我使用 CLI 命令,出现以下错误: 引用https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

C:\Users\Administrator>aws s3 cp https://s3.ap-south-1.amazonaws.com/mybucket/test.jar C:\downloads

usage: aws s3 cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
Error: Invalid argument type

C:\Users\Administrator>aws s3 cp https://mybucket/test.jar C:\downloads

usage: aws s3 cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
Error: Invalid argument type

C:\Users\Administrator>aws s3 cp https://mybucket/test.jar . --recursive

usage: aws s3 cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
Error: Invalid argument type

工作:

C:\Users\Administrator>aws s3 cp s3://mybucket/test.jar C:\downloads

shouldn't use https://, used s3://, it's working

最佳答案

通过浏览器中的 URL 访问对象时,您不会传递任何用户凭据。因此,Amazon S3 不知道您是谁,并且拒绝访问对象。

更好的方法是通过 API 调用访问对象,可以通过编程语言 SDK 或使用 AWS Command-Line Interface (CLI) ,其中有一个 aws s3 cp 命令,可以将文件复制到 Amazon S3 或从 Amazon S3 复制文件。

如果您必须通过网络浏览器进行访问,同时保持对象的私密性,您的应用程序将需要生成一个有时间限制的 pre-signed URL授予在指定时间范围内访问对象的权限。

关于amazon-web-services - AWS - 无法从 EC2 窗口访问 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49881853/

相关文章:

javascript - 从 Amazon S3 中提取 PDF 并直接在浏览器中从缓冲区/流中呈现

amazon-web-services - 使用 javascript 为 amazon cloudfront 创建签名 url

amazon-web-services - Centos 的 PHP 上传问题

amazon-web-services - 在 AWS ElastiCache Redis 集群上启用集群模式

python-3.x - 如何使用boto和python3在CloudFront中使对象无效?

linux - 关于在亚马逊云 ec2 上设置 git 的虚拟问题

amazon-web-services - 亚马逊ec2非法指令Asterisk

amazon-web-services - 允许用户通过标签管理 EC2

.net - 有人在 Amazon Elastic Beanstalk 上为 .NET 运行过单声道吗?

javascript - 如何处理 Cognito Web 应用程序 session 刷新?