繁体   English   中英

使用 IAM 角色从 EC2 使用 curl 从 S3 检索文件

[英]Retrieve file from S3 with curl from EC2 using IAM role

我创建了一个 IAM 角色并将其分配给我的 EC2 实例。 我创建了一个 IAM 角色策略并将其链接到我的 S3 存储桶。 我现在可以在我的 EC2 实例上使用aws-cli列出我的 S3 存储桶中的文件。

[root@ec2.hostname.aws.com ~]# aws --region eu-west-1 s3 ls s3://s3-bucket-name
2017-05-02 02:37:39        137 index.html

现在,如果我尝试curl该文件,我会收到拒绝访问错误:

[root@ec2.hostname.aws.com ~]# curl https://s3-eu-west-1.amazonaws.com/s3-bucket-name/index.html
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>782176F442A4995A</RequestId><HostId>qZWZTXZdlgtD4BiVYfp5+Mj/gU3UXRiYQmsSyaAhwED1JtzUWs9QKE99RmsQ6w0uDB

有没有办法在不放松 S3 存储桶权限的情况下使这个curl请求工作? 诸如身份验证,标头等之类的东西。

对 Amazon S3 的 GET 请求需要使用AWS Signature v4授权字符串

请参阅: 获取对象

或者,您可以创建一个具有额外参数并授予对 Amazon S3 对象的限时访问权限的预签名 URL 您可以使用几行代码生成预签名 URL,然后将其提供给用户(或在 HTML 页面中使用)以授予对存储在 Amazon S3 中的私有对象的临时访问权限。

当然,从 Amazon S3 检索数据的最简单方法是使用 API 调用或AWS 命令行界面 (CLI)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM