指定した認証メカニズムはサポートされていません。 AWS4-HMAC-SHA256を使用してください
概要
エラー AWS::S3::Errors::InvalidRequest が表示されます。指定した認証メカニズムはサポートされていません。 AWS4-HMAC-SHA256を使用してください。新しいフランクフルト リージョンの S3 バケットにファイルをアップロードしようとしたとき。すべて米国標準地域で適切に動作します。
脚本:
backup_file = '/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz'
s3 = AWS::S3.new(
access_key_id: AMAZONS3['access_key_id'],
secret_access_key: AMAZONS3['secret_access_key']
)
s3_bucket = s3.buckets['test-frankfurt']
# Folder and file name
s3_name = "database-backups-last20days/#{File.basename(File.dirname(backup_file))}_#{File.basename(backup_file)}"
file_obj = s3_bucket.objects[s3_name]
file_obj.write(file: backup_file)
aws-sdk (1.56.0)
それを修正するにはどうすればよいですか?
ありがとう。
解決策
AWS4-HMAC-SHA256 は、署名バージョン 4 (「V4」) とも呼ばれ、S3 でサポートされている 2 つの認証スキームのうちの 1 つです。
すべてのリージョンは V4 をサポートしていますが、US-Standard¹ と、すべてではありませんが他の多くのリージョンは、別の古いスキームである署名バージョン 2 (「V2」) もサポートしています。
http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html … によると、2014 年 1 月以降にデプロイされた新しい S3 リージョンは V4 のみをサポートします。
Frankfurt は 2014 年後半に導入されたため、V2 をサポートしていません。このエラーは、V2 を使用していることを示唆しています。
http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html では、さまざまな SDK で V4 を有効にする方法について説明しています (その機能を持つ SDK を使用していることを前提としています)。
一部の古いバージョンの SDK はこのオプションをサポートしていない可能性があるため、上記の方法で問題が解決しない場合は、使用している SDK の新しいリリースが必要になる可能性があります。
¹US Standard は、us-east-1 リージョンに基づく S3 リージョン デプロイメントの以前の名前です。この回答が最初に書かれた時から、 「Amazon S3 は、AWS 地域の命名規則と一致させるために、米国標準リージョンの名前を米国東部 (バージニア北部) リージョンに変更しました。」実際には、名前が変更されただけです。