AWS S3バケットに画像があります。 <img>
タグにAWS URLを挿入することで、この画像を自分のウェブサイトに含めることはできますか? URLには、「Amz-Signature」、「Amz-Credential」、「amz-security-token」などのパラメータが含まれています。S3バケット内の他のファイルに悪意のあるアクセスをすることはできますか?ウェブページ上のAWS S3バケット内の画像へのリンクを使用しても安全ですか?
URL:
https://s3.amazonaws.com/MyBucketName/FileName.jpg?X-Amz-Date=20160126T141139Z&X-Amz-Expires=300&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=Lots_of_letters_and_Numbers2&X-Amz-Credential=MYAMAZON_CREDENTIALS/20160126/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=Host&x-amz-security-token=REALLY_LONG_SECURITYTOKEN
また、私はAWS SDKを使用して、私のC#のコードから有効期限のURLを生成することができますような何か:。
var expiryUrlRequest = new GetPreSignedUrlRequest
{
BucketName = WebConfigurationManager.AppSettings["AWSBucketName"],
Key = fileName,
Expires = DateTime.Now.AddHours(3)
};
これは、パラメータとして "AWSAccessKeyId" を持っているURLを生成する
。これらのURLのいずれかは私のウェブページで安全に使用できますか?私のサイトでそれらを使用する際にどのようなリスクが伴いますか?
ありがとうございます。追加情報が必要な場合、または私が不明確な場合はお知らせください。
EDIT:私のアプリケーションをさらに深く理解するために、ユーザーはファイルをS3バケットにアップロードしています。私はSignalRを使用して、ユーザーが見るために自分のWebページにS3からのイメージを表示することによってイメージがバケツにあることを確認しています。
チップをありがとう。しかし、 'GetPreSignedUrlRequest'を使うと、' AWSAccessKeyId = 'と' Signature = 'パラメータを持つURLを返します。ユーザーにこの情報を提供するのは安全ですか? – user95227
は、事前署名されたURLが動作する方法であり、AWSAccessKeyIdは一時的なものであり、署名はURLを変更できないようにするための手段です。あなたは確かにこれと一緒に行くことができます – Tom
はい、「このテクニックは安全です」の項目#2で述べたように安全です。 –