2017-05-02 39 views
0

IAMロールを作成し、それをec2インスタンスに割り当てました。私はIAMロールポリシーを作成し、それをs3バケットにリンクしました。私は今、自分のec2インスタンス上のaws-cliを使って、s3バケット上のファイルをリストすることができます。IAMのロールを使用してs3からcurlでec2からファイルを取得

[[email protected] ~]# aws --region eu-west-1 s3 ls s3://s3-bucket-name 
2017-05-02 02:37:39  137 index.html 

私がcurlにアクセスしようとすると、アクセスが拒否されます。

[[email protected] ~]# 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要求作品を作ることができる方法はありますか?認証、ヘッダーなどのようなもの

+0

「curl」aws -region eu-west-1 s3 presign s3:// s3-bucket-name/index.html' '' – sajal

答えて

1

Amazon S3へのGETリクエストには、AWS Signature v4を使用するの承認文字列が必要です。

参照:GET Object

また、あなたは余分なパラメータを持っているとAmazon S3オブジェクトへの時間制限されたアクセスを許可Pre-Signed URLを作成することができます。 Amazon S3に格納されているプラ​​イベートオブジェクトへの一時的なアクセスを許可するには、数行のコードでPre-Signed URLを生成し、それをユーザーに提供する(またはHTMLページで使用する)ことができます。

もちろん、Amazon S3からデータを取得する最も簡単な方法は、API呼び出しまたはAWS Command-Line Interface (CLI)を使用することです。

関連する問題