web-dev-qa-db-ja.com

AWS CLIがS3バケットを一覧表示すると、IAMユーザー認証情報を使用してSignatureDoesNotMatchエラーが発生する

Ubuntu 16.04 LTSでAWS CLIを使用しています。すべてのバケットを一覧表示しようとしています。 aws configureで、IAMユーザーアクセスキーとIAMユーザーシークレットキーを入力しました。このIAMユーザーはバケットを一覧表示する権限があり、コンソールでバケットを一覧表示できますが、これらのキーでAWS cliを使用してコマンドを実行すると、aws s3 lsこのエラーが発生します。

ListBucketsオペレーションの呼び出し時にクライアントエラー(SignatureDoesNotMatch)が発生しました:計算したリクエストの署名が指定した署名と一致しません。キーと署名方法を確認してください。

この特定のIAMユーザーのバケットもリストするポリシーを作成しました。

このIAMユーザー認証情報を使用して、シェルスクリプトを介してさらに同期操作を実行し、すべてのファイルを公開操作したいのですが、ルート認証情報を使用したくありません。

11
Piyush dhore

私の問題が見つかりました。環境変数に古いAWSキーがありました。という名前の環境変数がある場合

AWS_SECRET_ACCESS_KEY
AWS_ACCESS_KEY_ID

awscliは、~/.aws/credentialsで提供される値の代わりにこれらの値を使用します。

printenv | grep AWSを実行してみて、これらの値が設定されていないことを確認してください。もしそうなら、単に実行します

unset AWS_SECRET_ACCESS_KEY
unset AWS_ACCESS_KEY_ID

そして、あなたは行ってもいいはずです。

12
schmudu

マシンの時刻がNTサーバーと同期していない場合でも発生する可能性があります。

Sudo ntpdate ntp.ubuntu.comこの問題を解決するのに役立ちました。

1
Aditya

問題はAWS認証情報にありました。シークレットをExcelファイルからtxtファイルにコピーし、いくつかの特殊文字が削除されました。正しくコピーしてください。

また、マシンを再起動して、AWSが環境変数に設定されていないことを確認してください。printenv | grep 'AWS'で確認できます

1
Rishabh Sanghvi

AWSセキュリティ認証情報が期限切れになったことを意味します。新しい資格情報を作成するだけで機能します。

  • AWSアカウントに移動します->私のセキュリティ認証情報
  • Create New Access Keyをクリックします。アクセスキーIDとシークレットアクセスキーを書き留めます
  • aws configureを実行して、新しい認証情報を入力します
1
Gagan Mani

実行しているシステムの時刻を確認してください。それが更新されていることを確認してください

1
gamechanger17

私の場合、私は暗号化していましたが、暗号化される前のファイルサイズを送信していました。このエラーが発生し、シークレットとキーが正しい場合は、md5、mimetype、サイズ、およびその他の属性を再確認する価値があります

1
mowwwalker

Rootユーザーに切り替えてください。

私の場合、標準ユーザーからこのコマンドaws s3 lsにアクセスしていて、以下のエラーが発生しました:

「AWS CLIがS3バケットを一覧表示すると、IAMユーザー認証情報を使用してSignatureDoesNotMatchエラーが発生する」

次に、Sudo suコマンドを使用してrootユーザーに切り替え、aws s3 lsコマンドにアクセスして、s3バケット名をリストしました。

0
user11589664

私にとっての問題は、秘密鍵の/が丸められ、秘密鍵がPCの.datファイルに貼り付けられ、サーバーにコピーされたpgサーバー上の.datファイルで、aws configureを使用するときに秘密鍵がコピーされた

0
Chris

このエラーは、aws s3アクセスキー/秘密キーが正しくないことが原因です。

0
Ananth