Aws-cli: SignatureDoesNotMatchエラー

作成日 2014年01月22日  ·  175コメント  ·  ソース: aws/aws-cli

ListUsers操作を呼び出すときにクライアントエラー(SignatureDoesNotMatch)が発生し続けます:計算した要求署名が、指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。 詳細については、サービスドキュメントを参照してください。

環境変数AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、およびAWS_DEFAULT_REGIONを設定しました。

confusing-error

最も参考になるコメント

これが私に起こったばかりであり、それが報告されていなくても、私のシステム時間があまりにもずれていた結果でした。 pool.ntp.orgに対してntpdateを実行し、この問題を修正してくれました。

全てのコメント175件

編集:この問題が発生した場合は、トラブルシューティングにご協力いただければ幸いです。 トラブルシューティング手順の可視性を高めるために、このコメントを更新しています。

トラブルシューティング

これをトラブルシューティングするための最初のステップは、問題がクレデンシャル自体にあるのか、CLIにあるのかを判断することです。 これをテストするには、他のAWS SDK(javascript、ruby、javaなど)でこれらのクレデンシャルを使用してみてください。 これを支援するために、Python用のAWS SDKとjavascriptを使用するテストスクリプトを作成しました。これは、 httpsます。 クローン作成後、 make installmake test実行するだけです。 クレデンシャルの入力を求められ(CLIと同様)、 sts.GetCallerIdentityへのAPI呼び出しが行われます。

/tmp $ mkdir /tmp/repro-cli-602
/tmp $ cd /tmp/repro-cli-602/
/tmp/repro-cli-602 $ git clone git://github.com/jamesls/aws-creds-test
Cloning into 'aws-creds-test'...
...
/tmp/repro-cli-602 $ cd aws-creds-test/
/tmp/repro-cli-602/aws-creds-test (master u=) $ make install
npm install
[email protected] /private/tmp/repro-cli-602/aws-creds-test
├─┬ [email protected]
...
pip install -r requirements.txt
Requirement already satisfied: botocore<2.0.0,>=1.5.0 in /usr/local/lib/python2.7/site-packages (from -r requirements.txt (line 1))
...



/tmp/repro-cli-602/aws-creds-test (master u=) $ make test
./test-creds.sh
Testing python...
Access Key:
Secret Access Key:
AKID   hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20

SAK    hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK  length: 40
Successfuly made an AWS request with the provided credentials.

Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID   hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20


SAK    hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK  length: 40
Sucessfully made an AWS request with the provided credentials.

この問題が発生した場合は、テストスクリプトを実行して、出力を共有してください。

これにより、この問題が発生している場所についてより良い洞察が得られるはずです。

  • 上記のスクリプトがpythonとjavascriptの両方に合格したが、CLIの使用時に失敗した場合は、CLIの問題である可能性があります。
  • スクリプトがPythonで失敗し、javascriptで合格する場合は、botocore(CLIが使用する)に問題がある可能性があります。
  • 上記のスクリプトがpythonとjavascriptの両方で失敗した場合は、実際の資格情報に問題がある可能性があります。

この問題のトラブルシューティングにご協力いただける方、よろしくお願いいたします。 ご不明な点がございましたらお知らせください。

これはどのように見えるかです:

thomas<strong i="6">@iMac</strong>:~ $ echo $AWS_ACCESS_KEY_ID
AKIAXXXXXXXXXXXXXXXX
thomas<strong i="7">@iMac</strong>:~ $ echo $AWS_SECRET_ACCESS_KEY
abcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+0
thomas<strong i="8">@iMac</strong>:~ $ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
              env    AWS_ACCESS_KEY_ID
              env    AWS_SECRET_ACCESS_KEY
    region                eu-west-1              env    AWS_DEFAULT_REGION

この問題に関する更新はありますか? このエラーも発生していますが、資格情報ファイルは変更されていません。

同様の問題があります。 Jenkins s3プラグインは私のクレデンシャルを使用してオブジェクトを配置できますが、aws-cliは以下のエラーを表示します。

aws s3 cp s3://my-bucket/folder/test.txt test.txt
A client error (Forbidden) occurred when calling the HeadObject operation: Forbidden Completed 1 part(s) with ... file(s) remaining

aws s3api get-object --bucket my-bucket --key folder/test.txt test.txt
A client error (SignatureDoesNotMatch) occurred when calling the GetObject operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

私は同じ問題に直面しています。 シークレットを作成すると、別の(AuthFailure)エラーが発生します。

[[email protected]]]$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************AMKA              env    AWS_ACCESS_KEY_ID
secret_key     ****************jPU2              env    AWS_SECRET_ACCESS_KEY
    region                us-west-2              env    AWS_DEFAULT_REGION

これは私を完全に止めています。 x509 certsを指定することで、ec2-blah-stuffユーティリティを使用していくつかのことができますが、ヘルプには非推奨であると記載されているため、依存したくありません。 トラブルシューティングのヘルプや、本当にありがたいことは何でも。

最初のステップは、アクセス/秘密鍵が実際に有効であることを確認することです。 試すべきいくつかのこと:

  • これらの同じアクセス/秘密鍵の資格情報は他のツールで機能しますか? (java / javascript / ruby​​ / python SDK?)
  • 「awss3」以外の他のコマンドは機能しますか? 「awsec2describe-instances」は引き続き認証エラーを生成しますか?

他のツール(ec2-describe-instanceなど)では機能しません。

証明書の使用は機能するので、私には適切な権利があると思います。 ワークステーションのものではないことを確認するために、Amazon Linuxインスタンスを作成し、それに付属するawscliバージョンを使用していますが、同じメッセージが表示されます。

私にとっても問題です。 同じDockerfileでビルドされたDockerコンテナで使用しています。
EC2でビルドすると正常に動作しますが、coreosvagrantボックスでローカルにビルドすると動作しません。

問題はクレデンシャル自体にあるようです。 これを再確認しましたが、この問題を再現することはできません。 セキュリティクレデンシャルページでクレデンシャルを再確認して

これが私に起こったばかりであり、それが報告されていなくても、私のシステム時間があまりにもずれていた結果でした。 pool.ntp.orgに対してntpdateを実行し、この問題を修正してくれました。

credがenv変数を使用して設定されているときにこのエラーが発生する場合は、sudoを試してください

仮想マシンを使用している場合は、ホストのOS時間がゲストのOS時間と一致していることを確認してください。 そうでない場合は、説明したエラーが発生します。

_lot_個のキーを含むバケットを一覧表示しているときに、適切な資格情報を使用して非常によく似たエラーが発生します。 エラーは次のとおりです。

A client error (SignatureDoesNotMatch) occurred when calling the ListObjects operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

これがaws configure listからの私の出力です

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************4UNA shared-credentials-file
secret_key     ****************MNOG shared-credentials-file
    region                <not set>             None    None

これらのクレデンシャルは他のaws呼び出しで正常に機能し、実際、このlistはこのエラーでベイルする前に長時間(1時間以上)実行されることに注意してください。 コマンドからの出力が82,000行を超えるファイルがありますが、最終的に失敗しました。

この問題が発生しています。スクリプトを1秒間スリープしてから再試行すると、問題は解決します。 それは、スロットルされて間違ったエラーなどを返しているようなものです。

私もこの問題を報告することができます。 aws cp foo s3:// mybucket / foo / barを使用して11GBのファイルをアップロードしようとすると、次のようなさまざまなエラーが発生します。

A client error (SignatureDoesNotMatch) occurred when calling the UploadPart operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

Max retries exceeded with url: /***REDACTED***?partNumber=196&uploadId=B2viwGFF4Lmq5itbs8ipqwBExx0BWGRm3gkG_D5EYTiU8uEO_tmUT.d.i7BcgPnP5npZa.OW7yMfJ3ZhhLJD61zP7EVv.5.ZftCJQbKNdkEBeijGBqWlrxz4vMx3B05Q (Caused by <class 'socket.gaierror'>: [Errno -2] Name or service not known)

システム時刻が正しいことを確認しました。 また、アップロード中に同じシステムで(httpリクエストのタイムアウトのレベルで)かなりの速度低下に気づいたので、これがスロットルの問題であることは合理的に聞こえます。 また、同じクレデンシャルで小さなファイルをアップロードし、同じマシンからWebコンソールを使用することも問題なく機能するため、これはaws-cliの問題のように見えます。

これは、aws-cli 1.5.5でも発生し、aws-cliを1.6.2に更新すると解決しました。

1.6.2で私に起こります

これは今日私に起こりました。 これは私にとって新しいことです。 数か月間awl-cliを使用していても問題はなく、クレデンシャルAFAIKに変更はありません。

$ aws configure --profile ye list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                       ye           manual    --profile
access_key     ****************ERMQ shared-credentials-file    
secret_key     ****************E8Id shared-credentials-file    
    region                us-east-1      config-file    ~/.aws/config

この問題はhttps://github.com/boto/botocore/pull/388で修正されており、次のAWSCLIリリースで利用できるようになると思います。

@jameslsは、awscliバージョン1.6.4修正されたことを確認しました。 私は1.5.4 。 ありがとう!

この問題は新しいubuntuシステムで発生しています。

A client error (SignatureDoesNotMatch) occurred when calling the PutObject operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

pip経由でインストールされたaws-cli

$ pip list
ansible (1.5.4)
apt-xapian-index (0.45)
argparse (1.2.1)
awscli (1.6.5)
bcdoc (0.12.2)
botocore (0.76.0)
chardet (2.0.1)
Cheetah (2.4.4)
cloud-init (0.7.5)
colorama (0.2.5)
configobj (4.7.2)
docutils (0.11)
html5lib (0.999)
httplib2 (0.8)
Jinja2 (2.7.2)
jmespath (0.5.0)
jsonpatch (1.3)
jsonpointer (1.0)
Landscape-Client (14.01)
MarkupSafe (0.18)
mercurial (2.8.2)
oauth (1.0.1)
PAM (0.4.2)
Pillow (2.3.0)
pip (1.5.4)
prettytable (0.7.2)
pyasn1 (0.1.7)
pycrypto (2.6.1)
pycurl (7.19.3)
Pygments (1.6)
pyinotify (0.9.4)
pyOpenSSL (0.13)
pyserial (2.6)
python-apt (0.9.3.5)
python-dateutil (2.3)
python-debian (0.1.21-nmu2ubuntu2)
PyYAML (3.10)
requests (2.2.1)
roman (2.0.0)
rsa (3.1.2)
setuptools (3.3)
six (1.5.2)
Sphinx (1.2.2)
ssh-import-id (3.21)
Twisted-Core (13.2.0)
urllib3 (1.7.1)
wsgiref (0.1.2)
zope.interface (4.0.5)

それを修正する方法について何かアイデアはありますか?

私の解決策は、数秒間スリープしてから再試行することでしたが、
それを修正するツールのアップデートがあるかもしれないように聞こえます。

午前3時38分AMの火、2014年12月2日には、マーク・ウルフの[email protected]書きました:

この問題は新しいubuntuシステムで発生しています。

PutObject操作の呼び出し中にクライアントエラー(SignatureDoesNotMatch)が発生しました:計算した要求署名が、指定した署名と一致しません。 キーと署名方法を確認してください。

pip経由でインストールされたaws-cli

$ pipリスト
ansible(1.5.4)
apt-xapian-index(0.45)
argparse(1.2.1)
awscli(1.6.5)
bcdoc(0.12.2)
ボトコア(0.76.0)
シャルデ(2.0.1)
チーター(2.4.4)
cloud-init(0.7.5)
コロラマ(0.2.5)
configobj(4.7.2)
docutils(0.11)
html5lib(0.999)
httplib2(0.8)
Jinja2(2.7.2)
jmespath(0.5.0)
jsonpatch(1.3)
jsonpointer(1.0)
ランドスケープ-クライアント(14.01)
MarkupSafe(0.18)
水銀(2.8.2)
oauth(1.0.1)
PAM(0.4.2)
枕(2.3.0)
ピップ(1.5.4)
可愛らしい(0.7.2)
pyasn1(0.1.7)
pycrypto(2.6.1)
pycurl(7.19.3)
ピグメント(1.6)
pyinotify(0.9.4)
pyOpenSSL(0.13)
pyserial(2.6)
python-apt(0.9.3.5)
python-dateutil(2.3)
python-debian(0.1.21-nmu2ubuntu2)
PyYAML(3.10)
リクエスト(2.2.1)
ローマ字(2.0.0)
rsa(3.1.2)
setuptools(3.3)
6(1.5.2)
スフィンクス(1.2.2)
ssh-import-id(3.21)
ツイストコア(13.2.0)
urllib3(1.7.1)
wsgiref(0.1.2)
zope.interface(4.0.5)

それを修正する方法について何かアイデアはありますか?


このメールに直接返信するか、GitHubで表示してください
https://github.com/aws/aws-cli/issues/602#issuecomment-65198065

@wolfeidauとええ私はあまりにも早く話しました。 ローカルでpipがインストールされたawscliにより、SignatureDoesNotMatchエラーが再度発生します。 うわぁ!

A client error (SignatureDoesNotMatch) occurred when calling the DeregisterInstancesFromLoadBalancer operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

The Canonical String for this request should have been
'POST
/

host:elasticloadbalancing.us-east-1.amazonaws.com
user-agent:aws-cli/1.6.5 Python/2.7.8 Darwin/13.4.0
x-amz-date:20141203T015747Z

host;user-agent;x-amz-date
1d9dafbf4bfa9b1225d91bdbf99d8645503484d174b9094e4c3af637e6664b5b'

The String-to-Sign should have been
'AWS4-HMAC-SHA256
20141203T015747Z
20141203/us-east-1/elasticloadbalancing/aws4_request
5a56d12a4920502f4124e37a92aad475c36edda93d9865871e6a4fe1e49045c3'

この問題は、リクエストが再試行された場合にのみ発生しますか? または、deregister-instances-from-load-balancerコマンドを実行するたびにこれが発生しますか?

@jameslsそれは今毎回起こります:(

この問題は解決されていることはわかっていますが、休止状態のVMで実行するとこのエラーが発生する可能性があることを共有したいと思います。 このような場合、Ubuntuを使用していると、システムクロックが常に追いつくことはありません。 修正する時間を更新するだけです(つまり、sudo ntpdate -s time.nist.gov)。

こんにちは、これに関する最終的な修正はありますか?

+1

CLIのバージョン1.7.8を使用して、次のことを試みたときに同じSignatureDoesNotMatchエラーが表示されました。
$ aws iam list-users

そして、このためのAuthFailureを取得します。
$ aws ec2 describe-security-groups

キーを削除して新しいキーを試した後、両方のコマンドが機能します。

これは私の問題の原因であった可能性のある古い秘密のアクセスキーです。パーセントとスラッシュ文字に注意してください: H2J7 / oT3Fib15SwFVB1s3EnTCmg + SC7wF7qoP + dw%

:+1:@gsterndale。 %れているアクセスキーが機能しませんでした。 新しいキーを生成する必要がありました。

私もこの問題を何度も経験しました。 特殊文字が含まれていないキーを取得するまで(特に、シークレットの+記号に問題があった)キーを再生成するたびに、キーが修正されました。

正直なところ、ローカルのmac自作インストールではなく、ubuntuマシンでコマンドを実行することから切り替えたときに、署名の重要な問題はすべて解消されました。

私はAWSに非常に慣れていないので、ノードjsですぐにこの問題に直面しました

              ^

SignatureDoesNotMatch:計算したリクエストの署名が、指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。 を参照してください
詳細については副文書。

このリクエストの正規文字列は
'役職
/

host:email.us-west-2.amazonaws.com
x-amz-content-sha256:89cdc817a829111278fbed35aacc694db71669f3845874beaecaf00ff2be1a39
x-amz-日付:20150809T053346Z

ホスト; x-amz-content-sha256; x-amz-date
89cdc817a829111278fbed35aacc694db71669f3845874beaecaf00ff2be1a39 '

String-to-Signは
'AWS4-HMAC-SHA256
20150809T053346Z
20150809 / us-west-2 / ses / aws4_request
0b908b0248bae550b814b37629a418707742416377816b5a5e78e1897b72293e '

+1

すべてのawss3コマンド(ubuntu 14.04LTSのawscli1.8.6)でこの問題が発生しています。
既知の解決策はありますか? クレデンシャルファイルを削除して、aws configureを実行し、再起動して、awscliを再インストールしてみました。

@mcobzarenco 、新しいキーを試しましたか?

@gsterndale古いキーにスラッシュがあることについての上記のコメントを見ましたが、そうではなく、私のキーは最近生成されました(2015年6月)。 この問題はAWSUbuntu 14.04LTSでのみ発生します。 私のラップトップ(14.04)では、awscli(同じバージョン)は正常に動作します。

@mcobzarencoキーの時代ではなく、キーの特殊文字だと思います。 私が最初にキーを作成したとき、それらにはたまたまパーセント、プラス、およびスラッシュ文字が含まれていました。 問題のデバッグ中に、新しいキーを削除して作成しようとしました。 これらの新しいものは幸運にもこれらのキャラクターのいずれも持っておらず、それらは機能します。

ちょうどubuntuでこの問題に遭遇しました。 cliを使用してキーを入力すると、キーは〜/ .aws / configに保存されましたが、「+」文字が削除されました。 ファイルを手動で編集して「+」を追加すると、接続できました。

@gsterndaleヒントをありがとう、 +含まない新しいキーの生成も私のために働いたことを確認できます。 @steblのソリューションは、キーを置き換えるのが不便な場合に便利です。

ノードjsでAWSSDkを使用しているときに、同じ問題に直面しました。 この問題を解決するために、私はここで述べたのとまったく同じ手順に従いました
http://aws.amazon.com/developers/getting-started/nodejs/

AWS SDKは特定のバージョンのノードjsで開発されていると思いますが、ノードjsの不一致により、このような問題が発生します。

私は同じ問題を抱えていますが、はい、特別な記号のないキーを使用することで解決しました(私の特定のケースでは+

このエラーが発生しました(一方のマシンがawscliを使用するインスタンスを記述できたが、もう一方のマシンは同じアクセスキーでアクセス拒否エラーを受け取りました。後者のマシンのiamリストでは、ユーザーがこのSignatureDoesNotMatchエラーを出しました)。 問題のあるマシンのシステム時刻を修正することで解決しました。

@tukaaaが言ったように、秘密のアクセスキーにアルファベット以外の文字(+など)が含まれている場合はバグがあります。 どこかで逃げるのは悪いと思います;-(

@ebuildyこれが表示されているCLIのバージョン( aws --version )を確認できますか? これがCLIの理由バージョンである場合は、先に進んでこの問題を再度開きます。

私はこれをaws-cli/1.9.1 Python/3.5.0 Windows/7 botocore/1.1.8入手しています

アルファ文字以外の文字が含まれていないキーを使用して、1つのWindowsボックスで同じ問題が発生していました。 別のボックスで同じ貼り付けバッファを使用して、コピー/貼り付けエラーではないことを確認しました。 AWS cliをアンインストール/再インストールし、クレデンシャル/設定ファイルを削除してから、aws設定を再実行すると修正されました。

aws-cli/1.10.3 Python/2.7.10 Darwin/14.5.0 botocore/1.3.25これを見ただけです。

特殊文字なしでキーを再生成すると修正されました。 私の場合のFWIWの特殊文字は/で、INIファイルを使用していました。

再開します。これについて詳しく説明します。

@Iは@gsterndaleで説明するよう、私は同じ問題を持って確認することができます。

aws --version
aws-cli/1.10.6 Python/2.7.11 Linux/3.10.0-327.4.5.el7.x86_64 botocore/1.3.28

しかし、私のキーには特別な記号は含まれていません。

s3-cliノードモジュールを使用しても同じエラーが発生します。 私の秘密鍵には[が含まれています。

私はついに何が悪いのかを知りました。 誤ってキーにいくつかの文字を追加しました。 それが理由。

私は次のシナリオでこの問題に直面していました。 rhel7とubuntuの両方で。 他の人が言っているように、それは非アルファ文字と関係があると思います

  • 単一の役割のために保護されたs3バケット
  • 上記のロールを持つec2インスタンスは、保護されたs3バケットにアクセスする前に同じロールを引き受ける必要があります
aws sts assume-role --role-arn <role_name> --role-session-name default --output json --query Credentials > credentials.json
export AWS_ACCESS_KEY_ID=`sed -n 's/.*"AccessKeyId": "\(.*\)"/\1/p' credentials.json`
export AWS_SECRET_ACCESS_KEY=`sed -n 's/.*"SecretAccessKey": "\(.*\)",/\1/p' credentials.json`
export AWS_SESSION_TOKEN=`sed -n 's/.*"SessionToken": "\(.*\)",/\1/p' credentials.json`

--queryの何かがクレデンシャルを台無しにしていたと思います。 コマンドを手動で実行し、値をコピーして貼り付ける場合。 次に、環境変数を設定すると、問題なく機能するように見えました。

Mac(pip経由でインストール)でawscliバージョン1.10を実行している場合と、Ubuntu(Amazonイメージ)awscliバージョン1.2.9を実行している場合でも、同じ問題が発生しました。 aws configure --profile userは、それぞれの下に2つの異なる構成を生成します。 バージョン1.10は、configとcredentialsの2つのファイルを生成しました。 バージョン1.2.9は、構成ファイルを作成したばかりです(ただし、資格情報が含まれています)。 バージョン1.10で作成された資格情報と構成ファイルを削除し、バージョン1.2.9で作成された構成ファイルをコピーすると、特殊文字やawscliバージョン1.10を実行していても、すべてが機能しました。 バージョン1.2.9で作成された設定ファイルは

[profile FOO0]
aws_secret_access_key = FOO1
aws_access_key_id = FOO2
output = FOO3
region = FOO4

英数字以外の文字によるものであることを確認できます。

+を含む秘密鍵でも同じ問題が発生します。 ただし、私はS3アカウントの所有者ではないため、新しいアカウントを簡単に作成することはできません。 特殊文字なしで新しいキーを作成する以外の修正を見つけた人はいますか?

tl; dr解決策:aws_secret_access_keyに英数字以外の文字が含まれないまでクレデンシャルを繰り返し再作成します...私の場合、aws_secret_access_keyに+(プラス記号)が含まれています

フレッシュインストールを実行しました...同じ問題...これはUbuntuにあります...ローカルOSの問題ではなくAmazonAPIの問題なので、OSXから移動すると修正されるという他のコメントは無視してください

aws ec2describe-インスタンス

describeInstancesオペレーションを呼び出すときにエラーが発生しました(AuthFailure):AWSは提供されたアクセスクレデンシャルを検証できませんでした

------------------------------------------------

aws ec2describe-security-groups

describeSecurityGroupsオペレーションを呼び出すときにエラーが発生しました(AuthFailure):AWSは提供されたアクセスクレデンシャルを検証できませんでした

------------------------------------------------

aws ecr get-login

GetAuthorizationToken操作を呼び出すときにエラーが発生しました(InvalidSignatureException):計算したリクエストの署名が指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。 詳細については、サービスドキュメントを参照してください。

このリクエストの正規文字列は
'役職
/

content-type:application / x-amz-json-1.1
ホスト:ecr.us-east-1.amazonaws.com
x-amz-日付:20160615T182955Z
x-amz- target:AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken

content-type; host; x-amz-date; x-amz-target
44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a '

String-to-Signは
'AWS4-HMAC-SHA256
20160615T182955Z
20160615 / us-east-1 / ecr / aws4_request
86c2e3c850acd6765a1ca6aa626c6e9a6c85284f3954f45e170f51b5b89961c7 '

------------------------------------------------

aws iamlist-ユーザー

ListUsers操作を呼び出すときにエラーが発生しました(SignatureDoesNotMatch):計算したリクエストの署名が、指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。 詳細については、サービスドキュメントを参照してください。

このリクエストの正規文字列は
'役職
/

ホスト:iam.amazonaws.com
x-amz-日付:20160615T183516Z

ホスト; x-amz-date
b6359072c78d70ebee1e81adcbab4f01bf2c23245fa365ef83fe8f1f955085e2 '

String-to-Signは
'AWS4-HMAC-SHA256
20160615T183516Z
20160615 / us-east-1 / iam / aws4_request
ad9f7581f0bf25ecae56355a6c96b60f3dc3188efbbdb3d0d4806e9f2c5cf8a9 '

------------------------------------------------

aws --version
aws-cli / 1.10.38 Python / 2.7.11 + Linux /4.4.0-22-ジェネリックbotocore / 1.4.28

------------------------------------------------

cat /root/.aws/credentials
[ディフォルト]
aws_access_key_id = AKIAJ7FCEUVVSGX7KZGQ
aws_secret_access_key = inCv47xj + eGE2C9crwilZJmKZg6vN / 3JTh5LDaNb

    Notice the plus sign ( + ) in above aws_secret_access_key   !!!!

   aws only works when aws_secret_access_key does NOT contain non-alpha chars

------------------------------------------------

解決 :
新しいクレデンシャルを削除して作成した後
aws_secret_access_keyにプラス記号(+)がない場合、コマンドはすべて正常に機能し始めました。

私も同じ問題を抱えていました。 特殊文字がなくなるまでクレデンシャルを再作成すると、うまくいきました。

クレデンシャルをコピーして貼り付けたときに、最後に^ M文字が含まれていることがわかりました。これがエラーの原因でした。

+なしで秘密鍵を取得すると、私も修正されました...

注-(boot2docker VM'd)dockerでこの問題が発生している場合は、VMクロックが同期していない可能性があります。
参照: http

同じ問題が発生しています。 クレデンシャルを再生成する権限がない場合はどうなりますか?他の方法を使用して可能な修正はありますか?

更新: rm -rf .aws/cli/cache/実行してこれを修正しました

私も今この問題を抱えています。 役割を引き受けようとするとき

バージョン:
aws-cli/1.11.17 Python/2.7.10 Darwin/16.1.0 botocore/1.4.74

編集:今また更新しようとしました、同じ問題:
aws-cli/1.11.18 Python/2.7.12 Darwin/16.1.0 botocore/1.4.75

出力:

Assuming role arn:aws:iam::XXXXXXXX:role/XXXX-staging using profile default

An error occurred (SignatureDoesNotMatch) when calling the AssumeRole operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

The Canonical String for this request should have been
'POST
/

host:sts.amazonaws.com
x-amz-date:20161118T102600Z

host;x-amz-date
41db88384d54dc0783e616aa0662ebffce8832b35025195052029a5dc0e33c0e'

The String-to-Sign should have been
'AWS4-HMAC-SHA256
20161118T102600Z
20161118/us-east-1/sts/aws4_request
786b3d624f5aeea9ffcb2b802b177a4c2aebbfed608a2464ee684c6972bc6bc6'

AWS CLIの最新(最新)バージョンでも同じ問題が発生します。 1.8.3 CLIを1.11.19にアップグレードしましたが、作成した新しいユーザー/キーでコマンドを実行できませんでした。 シークレットキーにアルファベット以外の文字が含まれていないペアを取得する前に、約5つのキーをリサイクルする必要がありました。 そのようなペアに出くわしたら、CLIは正常に機能します。

非常に迷惑です-Amazonが処理できない無効なキーを生成しないようにしたいと思います。

@ mpopova-yottaa awe-cliキャッシュを完全にクリアしようとしましたか? ~/.awsディレクトリ全体を削除してみてください(config / credentialファイルのコピーを作成してください)

aws ec2 describe-instancesは私のために実行されますが、クラウド形成スタックを作成しようとすると:

`` `スレッド" main "の例外com.amazonaws.services.cloudformation.model.AmazonCloudFormationException:計算したリクエストの署名が、指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。 詳細については、サービスドキュメントを参照してください。

このリクエストの正規文字列は
'役職
/

amz-sdk-invocation-id:18d13b66-80ae-f676-c0cf-dbf875edb1aa
amz-sdk-再試行:3/345/470
host:cloudformation.us-west-1.amazonaws.com
user-agent:aws-sdk-java / 1.11.20 Mac_OS_X / 10.10.5 Java_HotSpot(TM)_64-Bit_Server_VM / 25.91-b14 / 1.8.0_91
x-amz-日付:20161127T194448Z

amz-sdk-invocation-id; amz-sdk-retry; host; user-agent; x-amz-date
aca0973fb4ac4029ec038d9c80b4afa23b6d305822b10e6bc32751ee1bd311d5 '

String-to-Signは
'AWS4-HMAC-SHA256
20161127T194448Z
20161127 / us-west-1 / cloudformation / aws4_request
cb0286a8727afcc465171ab991accde0aaa7210e160a9ba3196e2a5e4305f428 '(サービス:AmazonCloudFormation;ステータスコード:403;エラーコード:SignatureDoesNotMatch;リクエストID:f52abbd4-b4d9-11e6-b989-d5c3d50d5e7b)

config details:

`$: aws --version`           >>       `aws-cli/1.11.21 Python/2.7.12 Darwin/14.5.0 botocore/1.4.78`

`$: aws configure list`     >>
```   Name                Value                Type     Location
      ----                   -----                  ----        --------
profile                    not set>             None    None
access_key     ****************RTSA                env
secret_key     ****************UC3r                  env
region                us-west-1              env       AWS_DEFAULT_REGION

秘密鍵には英数字しか含まれていないので、行き詰まります。

@ aebrow4awe -cliのキャッシュがダウンしています。 削除してみてください: .aws/cli/cache/

@cultavix .aws内にcliディレクトリはありません

aws glacier upload-archive--archive-description "`date`" aws glacier upload-archiveを実行すると、このエラーが発生しました。 --archive-description "`date +%Y/%m/%d`"を使用すると正常に動作するため、エスケープの問題があるようです。

私は同様の問題を抱えていました:

λ aws s3 sync s3://foo-bar-assets/ . --exclude "*/*.mp4" --exclude "*.mp4" fatal error: An error occurred (SignatureDoesNotMatch) when calling the ListObjects operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

時刻をNTPサーバーと同期しようとしましたが(成功しました)、問題は解決しませんでした。 特殊文字のないセットが修正されるまでキーを再生成します。

λ aws --version aws-cli/1.11.16 Python/2.7.9 Windows/8 botocore/1.4.73

awscliとサンプルのPythonコード(boto3)を使用しても同じ問題が発生します。
IBMオブジェクトストレージS3API互換を使用していることに注意してください。バケットとそのコンテンツを一覧表示することはできますが、アップロードすることはできません(pyhtonコードとcliの両方)。
ruby aws-sdkシナリオをテストしましたが、正常に動作します(アップロード/ダウンロード)。
- 構成
aws-cli/1.2.9 Python/3.4.3 Linux/3.19.0-33-generic

マルチパートアップロードをGlacierにデポジットするために何ヶ月も使用しているスクリプトで、これと同じ問題が発生し始めました。 aws cliを介して正常にデポジットできるため、資格情報は引き続き機能しますが、boto3を使用したスクリプトは次の場合に失敗します。

"botocore.exceptions.ClientError:InitiateMultipartUpload操作の呼び出し中にエラーが発生しました(InvalidSignatureException):計算したリクエストの署名が指定した署名と一致しません。AWSシークレットアクセスキーと署名方法を確認してください。詳細については、サービスのドキュメントを参照してください。"

aws--versionは
aws-cli / 1.11.38 Python / 2.7.10 Darwin / 15.6.0 botocore / 1.5.1

(はい、問題を解決する可能性があると考えてすべてを更新しました...そのような運はありません。)

特殊文字なしで新しいキーのペアを取得すると(私の場合は+た)、問題が修正されました

秘密鍵での+の誤った処理のここでの別の確認。

みなさん、こんにちは。この問題を再現するために使用したスクリプトは次のとおりです: https

  • +または/文字のいずれかを持つ資格情報が見つかるまで、ループ内のaws iam create-access-keyを介して新しいaccess_key / secret_keyペアを作成します。
  • これらの新しく生成されたクレデンシャルを使用して、新しい「testcreds」プロファイルを作成します
  • これらのクレデンシャルが機能することを確認するために、さまざまなAWSCLIコマンドを呼び出そうとします

API呼び出しが失敗するまで、これを無限ループで実行します。 これまでのところ、失敗させることはできませんでした。 +/を持つ秘密鍵が私のために働いています。

この時点で、 +または/を持つsecret_keysを使用できることを確認したので、根本的な原因は署名コードのバグほど単純ではないと思います。 +が存在すると壊れます。 このスレッドのコメントを読み直すと、 ~/.aws/configまたは~/.aws/credentialsファイルにクレデンシャルが入力されている方法に問題がある可能性があります。 おそらく、 +または/を含む文字を変更するプラットフォーム固有のものがいくつかあります。

したがって、まだこの問題が発生している人にとっては、追加情報を提供できれば非常に役立ちます。

  1. クレデンシャルをどのように取得していますか(コンソールからのコピー/貼り付け、 aws iam create-access-key 、コンソールからのCSVファイルなど)?
  2. これらのクレデンシャルを使用するようにCLIをどのように設定していますか? aws configureを実行し、プロンプトが表示されたら値を入力していますか? aws configure set実行して、これをプログラムで実行していますか? ~/.aws/configおよび/または~/.aws/credentialsを手動で編集していますか? さまざまなAWS_* env変数を設定しますか?

可能であればさらに役立つボーナス事項:

  1. 他のSDKを使用する場合、CLIで機能しないこれらのクレデンシャルは他のAWS SDKで機能しますか?
  2. テストアカウントまたはテストIAMユーザーをお持ちの場合、テストに使用しているスクリプトの実行が失敗することはありますか?

私たちの側でこの問題を再現するのに役立つかもしれない追加情報は素晴らしいでしょう。

私はまだこの問題を抱えています。 あなたの質問に答えるには:
アマゾンコンソールでクレデンシャルを作成し、〜/ .aws / credentialsにカットアンドペーストします(Macでemacsで編集)

これまでに行ったトラブルシューティングから(そして私はこれの初心者です...)「CanonicalString」は正しいですが、「String-to-Sign」は間違っており、最後の行が異なります。 つまり、auth.py string_to_signの戻り値を出力すると、「sha256(canonical_request.encode( 'utf-8'))。hexdigest())」から生成された数値が、返されたエラー「TheString」で報告された数値と異なります。 -to-Signは "である必要があります。

私のクレデンシャルには特殊文字はありません。CrossFTP(使用したくない!!!)などの他のツールを使用する場合は機能します。

どんな洞察も大歓迎です!!

@ samato88は別の問題のようです。 役立つデバッグ情報を共有できる場合(機密情報を必ず削除してください)。

string_to_signは、secret_access_keyの影響を受けません。 リクエストに署名するときは、送信しようとしているHTTPリクエストを取得し、それを文字列(つまり、文字列ot記号)に変換してから、秘密鍵を使用して、その文字列に秘密鍵で署名します(いくつかスキップします)。詳細はこちら)。 したがって、署名する文字列に関する問題は、この問題とは別のものになります。

別の問題を開いて--debug出力を提供できますか(またはサービスからの完全な要求とエラーメッセージを含めてください)? 喜んで調査させていただきます。

ありがとうjamesls-私は別の問題を次の場所で開きました:
https://github.com/aws/aws-cli/issues/2474

どんな洞察も大歓迎です。

システム時刻が5分以上ずれていると、CLIを使用できなくなります。

実行するだけです... sudo ntpdate -s time.nist.gov

その後、再試行してください

同じ問題が発生しました。秘密鍵に「+」記号が含まれています。 .aws / credentialsファイルを削除し、awsconfigureを再実行しました。 その後、メッセージを受信するためのsqsキューへのクエリが機能しました。

@ AlexParra03に感謝します。 私は同じ問題を抱えていました、そしてあなたのコメントは私が解決するのを助けました.... :-)

@robotzeroクレデンシャルを入力した方法をaws configureを実行してから、Webコンソールから値をコピーして貼り付けましたか?

はい、aws configureを実行し、値をコピーして貼り付けました。

はい、秘密に+が含まれていましたが、それでもこのエラーが発生しました。 特殊文字なしで新しいキーを作成すると、問題が修正されました。

aws --version
aws-cli / 1.11.78 Python / 3.6.1 Darwin / 15.6.0 botocore / 1.5.41

私の秘密に+と/がありました。 これらのない秘密は私にとって問題を解決しました。

この問題もありました。

$ aws --version
aws-cli/1.11.44 Python/3.5.3 Linux/4.10.0-19-generic botocore/1.5.7

$ lsb_release -sd 
Ubuntu 17.04

クレデンシャルに「+」が含まれていました。 それらなしでアクセスキーを再生成することで解決しました。 注:「/」は適切な文字です。

@adityanatraj @shwetapurushe @damienrjここでこれらの質問に答えてもらえ+秘密鍵を生成しても問題は再現されないため、環境や資格情報の入力方法の組み合わせに関連している可能性があります。

言い換えれば、何が起こっているのかをトラブルシューティングできるように、人々からのより多くの情報が必要です。

@jamesls

  1. クレデンシャルを取得するにはどうすればよいですか?

Webコンソールからクレデンシャルをコピーして取得しました。

  1. それらを使用するようにCLIを設定するにはどうすればよいですか?

2つのファイルを手動で作成しました。

〜/ .aws / config

[default]
region = us-east-1
output = json

〜/ .aws / credentials

[default]
aws_access_key_id = ACCESS_KEY_HERE 
aws_secret_access_key = SECRET_ACCESS_KEY_THAT_BREAKS_WITH_A_+_SIGN

申し訳ありませんが、「+」記号を含むアクセスキーを削除したため、ボーナスの質問に答えることができず、問題は発生しません。

@adityanatrajありがとう、すべてのビットが役立ちます。

トラブルシューティングに役立つ次のステップは、これがCLIだけの問題なのか、クレデンシャル自体の問題なのかを判断することです。 この問題がまだ発生している場合は、他のAWSSDKでこれらのクレデンシャルを試すことができれば非常に役立ちます。 これを支援するために、これを自分で設定したくない場合にこれを簡単にするサンプルリポジトリ/スクリプトをまとめました: httpsmake installmake testです。

/tmp $ mkdir /tmp/repro-cli-602
/tmp $ cd /tmp/repro-cli-602/
/tmp/repro-cli-602 $ git clone git://github.com/jamesls/aws-creds-test
Cloning into 'aws-creds-test'...
...
/tmp/repro-cli-602 $ cd aws-creds-test/
/tmp/repro-cli-602/aws-creds-test (master u=) $ make install
npm install
[email protected] /private/tmp/repro-cli-602/aws-creds-test
├─┬ [email protected]
...
pip install -r requirements.txt
Requirement already satisfied: botocore<2.0.0,>=1.5.0 in /usr/local/lib/python2.7/site-packages (from -r requirements.txt (line 1))
...



/tmp/repro-cli-602/aws-creds-test (master u=) $ make test
./test-creds.sh
Testing python...
Access Key:
Secret Access Key:
AKID   hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20

SAK    hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK  length: 40
Successfuly made an AWS request with the provided credentials.

Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID   hash: 4e7c36343646e1fa7495092bffcd4b9b7dd00f2f5014a189ab81f326e6472a62
AKID length: 20


SAK    hash: 941a655993caccb1a1218883b97a88b6f41762c6d03902f1cdd1e2a5de5fd82e
SAK  length: 40
Sucessfully made an AWS request with the provided credentials.

この問題が発生した場合は、テストスクリプトを実行して、出力を共有してください。

これと同じ例外が、オブジェクトメタデータにUnicode文字が含まれている場合は常に、PutObjectリクエスト(C#)で発生しました。

私も同じ問題を抱えていました。 +および/を含む新しい秘密鍵は機能しません。 これらの文字を使用せずに新しいキーを生成しましたが、正常に機能します。
テストスクリプトはLinux用で、Windowsを実行しています。
Windowsシェルと_awsconfigure_を使用してControl-CとControl-Vを使用してクレデンシャルを貼り付けました
_awscp_のみを使用していました

これもテストしました。前述のように、秘密鍵に記号がない限り、正常に機能します。

これがすぐに解決されることを期待しています。機能するクレデンシャルを取得するまで、クレデンシャルを再生成し続けるのは面倒です。

昨日AWSにサポートチケットを発行しましたが、今日は解決されたようです

私は複数回テストしましたが、+と/の両方が機能しているように見えますか? このバグは再現できなくなりました。

Piでも同じ問題が発生しました。
最新のawscli(aws-cli / 1.11.85 Python / 3.4.2 Linux / 4.9.24-v7 + botocore / 1.5.48)でも、まだ問題がありました。

root @ pi :〜#aws s3 ls s3://
ListBuckets操作を呼び出すときにエラーが発生しました(SignatureDoesNotMatch):計算したリクエストの署名が、指定した署名と一致しません。
シークレットアクセスキーと署名方法を確認してください。 詳細については、REST認証とSOAP認証を参照してください。

特殊文字(+または/)のない秘密鍵を使用しても、アクセスは機能しませんでした。 時間は常に同期していましたが、残念ながらこれも問題ではありませんでした。

「.aws / config」ファイルに有効なリージョン(テスト用)を追加しましたが、突然機能しました。 互換性のあるs3ストレージ(Amazonのs3ではない)を使用しているため

[ディフォルト]
aws_secret_access_key = MYKEY
aws_access_key_id = MYID
region = us-east-1 <-以前は「ダミー」の値がありました。

見た目では、領域には「正しい」値が必要です。 「dummyvalue」のような別の値に戻すと、上記と同じエラーが発生します。
これで、値「us-east-1」で機能します。
これが誰かを助けることを願っています。

私もこれに出くわしました。 また、秘密鍵の「+」に問題があるようです。 環境変数に資格がある場合、エラーが発生します。 それらを〜/ .aws / credentialsファイルに(手動で編集して)入れても、エラーは発生しません。

[編集]環境変数がdos用にフォーマットされたファイルにあることに気づきました(vimではff = dos)。 これは、ダウンロードした.csvファイルを取得して編集し、エントリを環境変数に変更したためです。 ファイルを「ff = unix」に再フォーマットしても、エラーは発生しなくなりました。 2つの違いは、改行だけです。dosは「CR-NL」を使用しますが、unixは単に「NL」です。 問題だったのは、実際にはその「CR」文字だったと思います。

私も、「+」の問題を確認します

Docker for Macを使用しているときにこれに遭遇した場合は、Dockerを再起動するだけで、システム時間の不一致が修正されます。

私は同じ問題に直面していました。
シークレットを確認したところ、+ /が含まれていました。
それを機能させるには、特殊文字なしで新しいIDペアを作成する必要がありました

特殊文字のないキーペアを取得するまで新しいキーペアを作成すると、それも解決されました。 特殊文字(具体的には+)は、〜/ .aws / credentialsでは機能しません。

特殊文字(具体的には+ )なしで生成されたキーでも、この問題が修正されました。

@eikenbのコメント

キーを削除して新しいキーを作成することは私のために働きました。

このエラーを受け取りました。 GMTから6分以上ずれているように見えるシステム時刻を更新しました。 すぐに問題を修正しました。

それは私にとってとても奇妙でトリッキーでした。
私はこの問題に苦労し、それを解決するために何度も試みました。
現時点では突然動作しました! びっくりしたので新しいバケツを作りましたがうまくいきませんでした。 コードを変更する以外に何もしなかったので、何時間も待っていました。 最後に、私は何もしませんでしたが、うまくいきました。 信じられない…

使用してaws configure Windows 7のI上のbashシェルでは、私は2つの持っていたaws_secret_access_key私の行.aws/credentials 、2行目は、私はごみの負荷を誤って入力したいただきたいた場所。 2行目を削除すると、すべて機能しました。

aws-cli/1.11.119 Python/2.7.12 Linux/4.4.0-53-generic botocore/1.5.82

ここでLinuxMintでこの問題が発生していますが、キーやシークレットに+はありません。

テストスクリプトからの出力:

/aws-creds-test $ make test
./test-creds.sh
Testing python...
Access Key: 
Secret Access Key: 
AKID   hash: 36b0df669bfc2fa232f31ada2b40e8f58ec152b0afee875f28b21e32e2d59a30
AKID length: 20

SAK    hash: 02b21158d3ab7d2691ceef468951c3b3551704a8eea19ad4a8f59c7be38378f6
SAK  length: 40
Error making AWS request: An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID   hash: 36b0df669bfc2fa232f31ada2b40e8f58ec152b0afee875f28b21e32e2d59a30
AKID length: 20


SAK    hash: 02b21158d3ab7d2691ceef468951c3b3551704a8eea19ad4a8f59c7be38378f6
SAK  length: 40
Error making AWS request
{ SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
    at Request.extractError (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/protocol/query.js:47:29)
    at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
    at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
    at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
  message: 'The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.',
  code: 'SignatureDoesNotMatch',
  time: 2017-09-18T20:33:23.951Z,
  requestId: '9e62c6c2-9cb0-11e7-9856-a5fd5c3e417d',
  statusCode: 403,
  retryable: false,
  retryDelay: 60.66602455065775 }
Makefile:6: recipe for target 'test' failed
make: *** [test] Error 1

awscliをaws-cli/1.11.154 Python/2.7.12 Linux/4.4.0-53-generic botocore/1.7.12アップグレードした後:

$ make test
./test-creds.sh
Testing python...
Access Key: 
Secret Access Key: 
AKID   hash: 0cdf83ac8cf800ca46738682ff5a0ab35d94891a568fc6fd9115ecf13dcce542
AKID length: 20

SAK    hash: 7ae856b46f3d5cd23b94f60765adbeb13215f6c226a2953ab93eed9e26d51694
SAK  length: 40
Error making AWS request: An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

Testing javasript...
Access Key: ********************
Secret Access Key: ****************************************
AKID   hash: 0cdf83ac8cf800ca46738682ff5a0ab35d94891a568fc6fd9115ecf13dcce542
AKID length: 20


SAK    hash: 7ae856b46f3d5cd23b94f60765adbeb13215f6c226a2953ab93eed9e26d51694
SAK  length: 40
Error making AWS request
{ SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
    at Request.extractError (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/protocol/query.js:47:29)
    at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
    at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
    at Request.emit (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/home/kev/projects/external/aws-creds-test/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
  message: 'The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.',
  code: 'SignatureDoesNotMatch',
  time: 2017-09-18T20:43:21.662Z,
  requestId: '02ab939a-9cb2-11e7-a1f3-87975b0dbd52',
  statusCode: 403,
  retryable: false,
  retryDelay: 86.52138921193912 }
Makefile:6: recipe for target 'test' failed
make: *** [test] Error 1

キーを再作成しました-新しいキーにはまだ「+」が含まれていますが、CLIを使用できるようになりました

それと同じくらい簡単かもしれません

@ DanAbbz92確かに、私はたまたま同じ解決策を見つけました。 古いキーが機能しなかった理由はわかりませんが、同じプロセスを使用して新しいキーは問題ありませんでした。

貼り付けの失敗により、秘密鍵に^ Vが含まれていました。 キーの不正な文字をチェックする際に、より強力な警告を出すのが賢明かもしれません。 それ以上の不要なエスカレーションを防ぎます。

この問題は2014年に報告されました。今日は2017年10月26日です。この問題が発生しました。私の秘密には、「+」が含まれていました。 新しいキーを作成し、〜/ .aws / configureに配置しました
アマゾンに来て、このバグを修正する予定はありますか

cliをインストールしてaws configureを実行した後、今日この問題が発生しました。 私のキーには特殊文字が含まれていませんでしたが、以下で問題を解決しました。

  • rm -r ~/.aws/
  • .awsフォルダーとcredentialsファイルを再作成し、クレデンシャルを手動で追加し直しました

tl; drオフにしてから再びオンにすると、私のために機能しました¯_(ツ)_ /¯

ここで終わるHadoopを使用している人のために:関連するバグがHadoop2.8.0で修正されました:
" s3:"シークレットキーにスラッシュが含まれていると、エンコードされている場合でもURLが壊れます

こんにちは、今日私は同じ問題を見つけました。
箱の時間が間違っていた。 時間を更新した後、すべてが機能しています。

別の「私も」を追加する

2つの「+」文字を含むシークレットキーがあり、WindowsVMの.aws / credentialsファイル(.NETアプリケーションで使用する場合)から機能しましたが、MacBookProにbrewからawscliをインストールした場合、および.awsファイルをコピーし(ファイルエンコーディング、行末形式などのテスト)、SignatureDoesNotMatchで失敗しました。

英数字以外の秘密鍵を取得するまでクレデンシャルを再作成しようとしましたが、Macのawscliで機能するようになりました。 これらのクレデンシャルをWindowsマシンにコピーして戻し、.NETアプリケーションを実行しても、引き続き機能します。

どちらのマシンでも時刻を変更しませんでした(MacはすでにNTPを使用しており、Windows VMは実際の時刻より約12分遅れて実行されているようです)

私はawscliをインストールしました:brew install awscli

およびaws--versionは次を返します:aws-cli / 1.14.30 Python / 3.6.4 Darwin / 16.7.0 botocore / 1.8.34

さて、私は今日の午後にコードをラムダにプッシュしました(2018-02-01 15:48 EST with lambda in us-east-1)。
現在、午後6時に、オフィス内のすべてのシステムで署名エラーが発生しています。
このスレッドを振り返ると、私の時代は正しく、何も変わっておらず、資格情報は1年未満であり、自作バージョンaws-cli/1.14.30 Python/3.6.4 Darwin/17.4.0 botocore/1.8.34を使用して確立された日から機能しています(1.14へのダウングレードを試みました)。 2xバージョン、愛なし)

これはいくつかの悪意です

同じ問題があり、特殊文字(/、+など)なしで新しいキーを生成することを解決しました。

入力してくれた@hellaisに感謝します!

ちょうど同じ問題がありました、私のラップトップの時計を修正することによってそれを解決しました。 どうやら私は遅れていた。

この問題が発生したばかりですが、ntpクライアントが10分遅れているようです。 私はntpdateをしましたそして、すべてが修正されました。

特殊文字が含まれていないアクセスキーを取得するまで、アクセスキーの再作成が機能したことを確認できます。 なんてばかげたバグだ、すごい。

これは非常に長期にわたる問題であるため、エラーメッセージを更新して、キーの再構築などの潜在的な修正へのリンクをユーザーに提供するのは賢明ではないでしょうか。 問題が「キーに特別な文字が含まれているとエラーになります。ごめんなさい」よりもはるかに複雑であることがわかるものではありません。

同じ問題が聞こえます:

バージョン:

aws-cli/1.14.58 Python/2.7.10 Darwin/17.4.0 botocore/1.9.11

指示:

aws s3 ls
次のエラーが発生しました:
Unknown Signature Version: s3v3.

解決策なし:

マントを更新し、特殊文字なしでシークレットを生成します

更新-以下で修正

aws configure set default.s3.signature_version s3v4

ええ、これはまだ問題です-私の秘密鍵は+文字で終わり、修正が機能していませんでした。 秘密鍵の最後に+がない新しい鍵を再生成し、正常に機能しました。

いったいこれはまだ問題なのだろうか?

CreateMultipartUpload操作を呼び出すときにエラーが発生しました(SignatureDoesNotMatch):計算したリクエストの署名が、指定した署名と一致しません。 キーと署名方法を確認してください。
助けてください。

私の秘密は+記号で始まり、今日までこの問題があることすら知りませんでした。 boto3pythonを使用してs3にアクセスします。 クレデンシャルを生の文字列として渡す場合は機能しませんが、config.iniからconfigparser.RawConfigParser()を使用して変数としてロードすると正常に機能します。 もちろん、最後または最初に+記号なしで新しいシークレットを生成すると、この問題も解決されます。

それでも、これを(何らかの理由で)修正できない場合は、例外メッセージを「+記号は許可されていません。自分のやり方でアクセスしたい場合は、新しいメッセージを生成してください」のように変更してください。

私はosxでawscliを使用していますが、正しくないように見える秘密もありました。 私の元のファイルには+=れており、s3にcpファイルを送信しようとするとSignatureDoesNotMatchエラーが発生しました。 キーを再生成しましたが、新しいシークレットは英数字の文字列になりました。 再生が機能するという別の確認を追加するだけです。 :安心した:

これが洞察を提供することを期待して、この問題(秘密鍵で+を処理しない)は、RHEL5のこのバージョンでそれ自体を明らかにします

aws-cli/1.15.25 Python/3.4.7 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.10.25

ただし、Ubuntuのこのバージョンでは発生しません

aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-121-generic botocore/1.4.70

2014年1月に開始し、現在は2018年6月に、4年以上にわたって、 SignatureDoesNotMatchエラーで同じ問題が発生しました。 私にとっての解決策は、ここにあるすべての大多数の解決策と同じでした。以前のキーにはコロン:あり、時間同期を試しましたが、うまくいきませんでした。 WSLを使用しています。

aws-cli/1.15.27 Python/3.6.5 Linux/4.4.0-17134-Microsoft botocore/1.10.27

@gchiuが2017年4月に言ったことを更新するだけです:スラッシュ(/)文字が含まれているシークレットがPHPクライアント(私の場合はWindows10のPHP7)を機能させない可能性があるのは、2018年6月の場合です。 _signaturesは一致しません_エラー。 この状況では、より安全な別のキーのペアを生成するだけです。

私はこれに約30分間悩まされました。

この問題をフォローし、現地時間などを確認しました。すべて良かったです。

必死になって、 ~/.aws/credentialsファイルを削除し、再度ログインして(基本的にファイルを再作成し)、出来上がりです。

なぜこのエラーが発生するのでしょうか。

編集:
私の場合、秘密鍵とは関係がないようです。 それらはすべてほとんど単純な文字列でした。

この問題の+1、私のキーは=始まりました。 /しかないキーを再生成し、すべてが順調でした。 キーを"マークで囲んでみましたが、役に立ちませんでした。

AWSCLIからは期待できないものです。

ここで同じ問題に加えて、私のキーの/がこれを引き起こしたとは信じられません。 時間を無駄にしてくれてありがとう!

私はこの問題を抱えていました。 これは、最初にawscliをrootユーザーとしてインストールした結果だと思います。 解決策は、aws cliをアンインストールし、現在のユーザーのホームフォルダーとルートフォルダーの両方の.awsフォルダーを削除してから、現在のユーザーとして「awsconfigure」を再度実行しているようです。

Ubuntuでsystemdタイマーを使用してbashスクリプトを実行すると、この問題が発生しました。 ユーザーと一緒にスクリプトを手動で実行すると、すべてが正常に機能しました。 ただし、タイマーは(SignatureDoesNotMatch)エラーをスローし続けます。 次に、rootとして実行されているawsコマンドに対して(SignatureDoesNotMatch)が生成され、「awsconfigure」が提供されている新しい値を保存しなかったことに気付きました。

ルート「su-i」としてログインし、「cd〜 / .aws /」に変更し、「sudo rm -rcredentials」を使用して設定を削除し、「aws configure」を再度実行して、今回は新しい値を使用した問題を解決します。保存されました。 そこからすべてが期待どおりに再び機能しました!

この問題がaws-cli / 1.15.4 Python / 2.7.15rc1 Linux / 4.15.0-42-generic botocore /1.12.8にまだ存在することを確認できます。

An error occurred (SignatureDoesNotMatch) when calling the <whatever> operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

そして、私の秘密には+があったことがわかりました。 私は再生し、今はすべてが順調です。 この@jameslsの修正はいつ期待できますか? それとも私が助けるために何かできることはありますか?

シークレットキーに+が含まれていたため、aws cliでも同じ問題に直面しました...(上記で説明したように)新しいキーを再生成した後..(上記のdelmartechdudeコメントから見たように)...問題解決されました。

私の2セント。 この方法でアクセラレーション転送を使用してコンテンツをs3にアップロードしようとしたため、このエラーが発生しました(以前は機能していました):アクセラレーションエンドポイントプロパティで指定された--endpoint-url http://imaat.s3-accelerate.amazonaws.com--endpoint-url http://<bucket-name>.s3-accelerate.amazonaws.com ) :
screenshot-s3 console aws amazon com-2019 01 09-17-58-00

公式ドキュメントの指示に従ってください: https--endpoint-url http://s3-accelerate.amazonaws.comに置き換えて、コマンドを実行しますaws configure set s3.addressing_style virtualは、ホスト名を動的に構築します。 チェック: https ://docs.aws.amazon.com/cli/latest/topic/s3-config.html#addressing -style

理由はわかりませんが、今は機能しています。 私のバケット名( "imaat")には、DNS障害につながる可能性のある特殊文字はありませんが、最新のCLI更新で何らかの理由で失敗しました。

テキスト編集を介してプロファイルを追加すると、この失敗が発生しました。 aws configsetを介してプロファイルアクセスIDとシークレットを更新すると機能しました。 これは、「+」が含まれ、 aws-cli / 1.16.23 Python / 2.7.15 Windows / 10 botocore /1.12.13が含まれるシークレット用です。

@ dave-milesあなたは何かに取り組んでいます、コメントしてくれてありがとう! 私は以下のあなたの発見を拡大しています:

いくつかのDockerイメージでこの問題が発生しました。 もともと私はdockerfileでADDを使用して、〜/ .aws / credentialsファイルをコンテナーに追加していました。

これを行うと、s3からダウンロードしようとしたときにSignatureDoesNotMatchエラーが発生します。

dockerfileのADD行を削除し、新しいdockerコンテナーを再構築して起動しました。 この新しいコンテナでは、手動でaws configure set aws_access_key_id <access key id goes here>aws configure set aws_secret_access_key <secret access key goes here>ました。このコンテナにクレデンシャル情報を入力するのはこれが初めてでした(つまり、コンテナは「新しい」centosイメージでした)。

aws configure setコマンドを使用した後、s3から正常にダウンロードできました。

dockerfileでこれを使用している場合は、dockerfileでRUNステートメントを使用して2つのコマンドを実行するか、ADDステートメントを使用してスクリプトをdockerコンテナーにプッシュできます。

#!/ bin / sh

aws configure set aws_access_key_id _access-key-id-goes-here_
aws configure set aws_secret_access_key _secret-access-key-goes-here_

@villasenorと同じ問題があり+は、dockerでenvvarsを使用してawscliを構成するときにエラーを引き起こしました。 キーを回転させると問題が修正されました。

ここでも同じですが、アクセスキーまたはシークレットキーに特別な文字はありません。
同じIAMユーザーの新しいセットを再生成しました。新しいセットはバケットを一覧表示できますが、古いセットは一覧表示できません。

これは、AWSCLIとJavaSDKの両方の呼び出しで発生しました。 障害がクライアントにないことを示唆しています...

両方のセットはまだ生きています。 アマゾンの誰かが詳細を知りたい場合は連絡してください。

私の同僚もこれに遭遇しました。 最初に+または/が付いたアクセスキーを取得するまで、アクセスキーを作成してデバッグを試みました。 しかし、再現することはできませんでした。

私は同僚にこれを体験させました。 これは、秘密鍵に+または/が含まれるUbuntu18.04で特に発生すると判断しました。

今日、同じエラーが発生しました。現在Windows 10を使用しています。ただし、別のラップトップ(Mac)で同じアクセスキーを使用すると、問題なく動作します。 次に、WSL内のアクセスキーを試しましたが、これも問題ありません。 理由はわかりません。awsキーには特殊文字はありません。

アクセスキーの1つのセットでこのエラーが発生し、もう1つのセットでは発生しません。
ここにある他のいくつかの投稿で述べられているように、私のキーはその中の「/」です。 私には、この問題は、サーバーまたはクライアントのいずれかがRFC URIエンコード標準を使用してエンコード/デコードし、もう一方がそれを使用しないという単純な問題のように見えます。
上記のテストスクリプトを実行して、エラーの再現を試みる予定です。

ここにいる他の人にとっては、エラーが発生しましたが、〜/ .awsフォルダーに誤ったクレデンシャルがキャッシュされていました。 最初にそこに見え、次に環境変数に見えます。

私はGitBashを使用してWindows10でこれを経験しています。 Powershellで問題なく動作します。 Pythonの呼び出しは明らかに異なりますが、PythonとPythonのモジュールは同じです。 キーには+/もあります。

私はちょうどこの問題を抱えていました、そして私にとって、修正はスペースを取り除くことでした。 例。
デフォルトの代わりに:
[profilename]
aws_access_key_id = MYAWSACCESSKEYID
aws_secret_access_key = MYAWSSECRETACCESKEY
私はそれを次のように変更しました:
[profilename]
aws_access_key_id=MYAWSACCESSKEYID
aws_secret_access_key=MYAWSSECRETACCESKEY

=の周りにスペースがないことに注意してください。 これは私のためにそれを修正しました、そして私は私のキーに+と/を持っています。

すべて、ここにいくつかの素晴らしいトラブルシューティングのヒントがあります。 これらをCLIユーザーガイドのトラブルシューティングセクションのページに変換します。 貢献してくれてありがとう!

こんにちは、みんな、

ここにはたくさんの答えがあることがわかりますが、私にとってはAWSシークレットアクセスキーの特殊文字でした。 私の場合は「= +」で始まりましたが、Webコンソールから特別な文字を含まない新しい文字を生成すると、すぐに機能し始めました。

Windows上のUbuntuのZshシェルでawscliを実行しています。

jonathan<strong i="8">@SurfaceBook</strong>  ~  aws --version aws-cli/1.16.216 Python/2.7.12 Linux/4.4.0-17134-Microsoft botocore/1.12.206

これが他の人の役に立つことを願っています。

ありがとう
ジョナサン

このスレッドが見つかるまで、4時間のデバッグをこれに費やしました。 s3 cliをローカルで問題なく使用できましたが、circleciで実行すると、次のエラーが発生しました: SignatureDoesNotMatch ..

他の人が示唆しているように、私の秘密のアクセスキーには+文字が含まれており、新しいキーを生成した後、すべてが機能し始めました。

このスレッドなしでデバッグすることはほとんど不可能だったでしょう

ありがとう@blbradley 。 それはまさに私が抱えていた問題でした。

同じ問題がありました-解決策は、廃止されたAWSクレデンシャルを持つWindows環境変数を削除することでした

Python3boto3でも問題が発生しました。
鉱山は=/始まります

私は仮想マシンを使用しており、ホストのTime&RegionをゲストのTime&Regionと同様に作成して問題を解決しています。

これが今日も新しく作成されたキーに当たったという点でチャイムを鳴らしたかっただけです-そして多くの欲求不満の後、ここに着陸し、キーに/言及を見ました。 案の定、それが問題でした-それなしの新しいキーは機能しません。 Wtf?!

この問題が2014年に発生したとは信じられませんが、それでも修正はありません。このバグにより、AWSクレデンシャルの新しいセットを自分で作成する必要があり、「/」をエンコードしようとしましたが、機能しませんでした:(

「/」でクレデンシャルを削除すると、問題が修正されました。 これを指摘してくれたみんなに感謝します。

今2020年にこれを打つだけです。 秘密鍵には「+」があります。

aws-cli — awsプロジェクトによって開発されました—有効なawsキーで失敗します... 6年間?

2020年1月に同じ問題。 秘密鍵には「/」スラッシュ文字があります。

AWS IAMコンソールを使用して新しいクレデンシャルセットを生成し、秘密鍵がすべて英数字であり、「/」や「+」などがないことを確認しました。 〜/ .aws / credentialsファイルで、古い秘密鍵を新しい秘密鍵に置き換えてから、再試行しました。

これで解決しました。

2020年に同じ問題が発生しました。ただし、英数字は自分の資格情報の一部であるため、削除できません。また、英数字を制御することもできません。

文字を取り除くまで、クレデンシャルを再生成するだけです。 通常、あと1、2回試行するだけです。

モーリス

投稿者:columb1a [email protected]
送信:2020年1月21日火曜日午後1時47分
宛先:aws / aws-cli [email protected]
Cc:Maurice Bizzarri [email protected] ; コメント[email protected]
件名:Re:[aws / aws-cli] SignatureDoesNotMatchエラー(#602)

2020年に同じ問題が発生しました。ただし、英数字は自分の資格情報の一部であるため、削除できません。また、英数字を制御することもできません。


コメントしたのでこれを受け取っています。
このメールに直接返信し、GitHubで表示してくださいhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faws%2Faws-cli%2Fissues%2F602%3Femail_source%3Dnotifications %26email_token%3DAAAXXM3CF63PVTWMVHJN2FTQ65UMRA5CNFSM4ALOPGL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJRMFFA%23issuecomment-576897684&データ= 0.02%7C01%7Cmaurice%40bizzarrisoftware.com%7Cf6f2e8a571954134b76b08d79ebb6bee%7C9aa15552370449f5ac56c2850c165d32%7C1%7C0%7C637152400117352225&SDATA = 2Z6PQRSvKD0P8Eu0yrs15Ypi6GgtFvaDi7qewAq5yH4%3D&予約= 0 、または解除https://nam04.safelinks.protection.outlook.com /?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAAXXM34MIXB32H3RMQL2FTQ65UMRANCNFSM4ALOPGLQ&data=02%7C01%7Cmaurice%40bizzarrisoftware.com%7Cf6f2e8a571954134b76b08d79ebb6bee%7C9aa15552370449f5ac56c2850c165d32%7C1%7C0%7C637152400117362212&sdata=53%2F78BXqn3FRxlkfzXYHnJPEEbs7Ta1XmJhW%2BZdBjXo%3D&reserved= 0

私は最初にタイムアウトの問題に遭遇し、awscliを更新した後にこの問題に遭遇しました。 あなたはそれを機能させるのに6年で十分だと思いました...

gitlabを介してAWSS3バケットにVue.jsアプリをデプロイすることもできます誰かが私に何をすべきか教えてもらえますか
msg:fatal error:ListObjectsV2操作の呼び出し時にエラーが発生しました(SignatureDoesNotMatch):計算したリクエストの署名が指定した署名と一致しません。 キーと署名方法を確認してください。

英数字以外の文字はありませんでしたが、単一のプロファイルでは、profiledでの作業は機能しませんでした。 コンソールを使用してクレデンシャルを再生成しましたが、新しいクレデンシャルは機能しました。

今日もこのようなエラーが発生し、特殊文字( '+'または '/')なしでクレデンシャルを再生成することは私にとってはうまくいきます。

私はまだ同じ問題を抱えていますが、突然起こります。GetおよびPut操作を使用し、一方は機能し、もう一方は機能しません。 はい、私の秘密鍵には特殊文字は含まれていません。 何か助けはありますか? 最初にgetIntent(amazon lexモデルAPI)を呼び出してインテントのチェックサムを取得し、次にputIntentを呼び出してそのインテントを更新します。 Getメソッドは(常にではありませんが)機能しますが、putメソッドは同じ署名の問題であるように見えますが、GetメソッドAPIをコードから削除すると、Putメソッドは3回のうち2回機能します。

この問題が発生しました。新しいキーを生成することをお勧めします
そして、awsプロファイルを再構成します

aws configure

AWSアクセスキーID [ * * * * QD5E]:AWS_ACCESS_KEY_ID
AWS秘密アクセスキー[* * * *アニャ]:AWS_SECRET_ACCESS_KEY
デフォルトのリージョン名[eu-west-3]:AWS_REGION
デフォルトの出力形式[json]:OUTPUT_FORMAT

こんにちは !

クライアントに返される事前署名されたURLを使用すると、これと同じ問題が発生します
URLはサーバーで生成されます(期間限定)。 サーバーはPythonであり、エラーは表示されませんが、クライアントはJSです。URLを取得して開くだけです。 URLの一部は、このリソースに対して生成されたクレデンシャルです)

エラーはオンとオフであるため、クレデンシャルの特殊キーについてここで述べられていることに関連していると思いますが、サーバーで生成されたクレデンシャルを使用しているため、変更できません!

コードでこれを処理する方法はありますか? どういうわけかスペシャルキーを解析しますか?

こんにちは !

クライアントに返される事前署名されたURLを使用すると、これと同じ問題が発生します
URLはサーバーで生成されます(期間限定)。 サーバーはPythonであり、エラーは表示されませんが、クライアントはJSです。URLを取得して開くだけです。 URLの一部は、このリソースに対して生成されたクレデンシャルです)

エラーはオンとオフであるため、クレデンシャルの特殊キーについてここで述べられていることに関連していると思いますが、サーバーで生成されたクレデンシャルを使用しているため、変更できません!

コードでこれを処理する方法はありますか? どういうわけかスペシャルキーを解析しますか?

@ maya-harel IAMから資格情報を変更できます->ユーザーは作成したユーザーを選択し、秘密鍵のセキュリティ資格情報タブを再生成します。

また、コードのタイミングは非常に致命的です。バックエンドで行うリクエストごとに、現在の時刻を取得してヘッダーで使用し、署名を生成します。

余談ですが、ユーザーにとっては選択肢ではないと明示的に言ったユーザーに対して、「IAMクレデンシャルを再生成する」という盲目的な提案がたくさんあります。

これはユーザーにとっては役に立ちません。また、これが既知のバグであり、有効なIAMクレデンシャルを使用しようとしているaws-cliユーザーに影響を及ぼし続けるという事実から注意をそらします。

これにも遭遇します。
$ aws --version
aws-cli / 1.16.300 Python / 2.7.16 Linux / 4.14.152-127.182.amzn2.x86_64 botocore / 1.13.36

私のキーは完全に英数字で、特殊文字はありません。

キーはシェルから機能しますが、MakefileターゲットでJenkinsを介して使用すると、このエラーが発生します。 ここで何が起こっているのかわからない。

私の秘密鍵には/+両方が含まれています。 この問題に遭遇し、試しました:

  • Trough aws-cli > aws iam get-user~/.aws/credentialsファイルを使用)
  • boto3(python 3.6.8経由)

    • ハードコードされたキー

    • 環境変数

    • 引数boto3.Session(profile_name=PROFILE) (〜/ .aws / credentialsから取得)

これらすべての結果、 SignatureDoesNotMatchエラーが発生します。

現在、キーを再生成できません。

私が理解していないのは、Cyber​​duck(https://cyberduck.io/)でS3プロトコルを使用でき、期待どおりに機能することです。 どうしてそうなるのでしょうか?

これは私が遭遇した中で最も苛立たしいバグの1つである必要があり、修正されていないのはナッツです。 CircleCIでは、「+」なしで資格を取得することができました。

まだクラッシュしていますか? 同じ問題に直面して、すごい私はできません...

はい、イライラします。 +を持っていた私の秘密鍵はJenkinsパイプラインでは機能しません/数個しかない新しい鍵を生成すると、正常に機能しました。

Ubuntu16.04のパッケージインストールバージョンのawscliでこの問題が発生しました。 awscliをpythonpipパッケージとしてインストールすることで修正しました。
手順については、「 PythonPIPを使用したAWSCLIのインストール」セクションのこのリンクをたどっ

_発生した問題_

1)アクセスキーの再生成後にInvalidSignatureExceptionエラーが発生しました
2)部分エラーログは以下のとおりです。

$ python SetupAWS.py list_things
トレースバック(最後の最後の呼び出し):
ファイル "SetupAWS.py"、行222、
list_things()
list_thingsのファイル "SetupAWS.py"、行182
things = client.list_things()['things']
ファイル "c:Program Files(x86)Python38-32libsite-packagesbotocore-1.16.6-py3.8.eggbotocoreclient.py"、316行目、_api_call
self._make_api_call(operation_name、kwargs)を返します
_make_api_callのファイル "c:Program Files(x86)Python38-32libsite-packagesbotocore-1.16.6-py3.8.eggbotocoreclient.py"、行626
error_class(parsed_response、operation_name)を発生させます
botocore.exceptions.ClientError:ListThings操作の呼び出し中にエラーが発生しました(InvalidSignatureException):計算した要求の署名が指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。 詳細については、サービスドキュメントを参照してください。

_根本原因分析_

1)上記のコメントで多くの人が示唆しているように、私の秘密アクセスキー「+」が含まれていると、上記のエラーが発生していました。

_解像度_

1)IAMユーザーとして新しいアクセスキーを生成し、新しいシークレットアクセスキーの文字列内に「+」が含まれていないことを確認しました。
2) aws configureコマンドを実行し、新しい値を指定しました。
3) python SetupAWS.py list_thingsコマンドを実行しました。これにより、以下に示すように、私のものが正常に一覧表示されました。

$ python SetupAWS.py list_things
[{'thingName': 'myThingName'、 'thingArn': 'myThingArn'、 '属性':{}、 'バージョン':1}]

この号は6年間公開されており、今しばらくお待ちいただきますようお願い申し上げます。ご理解とご協力を賜りますようお願い申し上げます。 コメント(https://github.com/aws/aws-cli/issues/602#issuecomment-520469209)を通じていくつかの根本的な原因が特定され、コマンドラインユーザーガイドのトラブルシューティングエラーの章にまとめられています。 これらの原因には、クロックスキューや一部のオペレーティングシステムが特殊文字を含むキーを誤って処理することが含まれます。

さまざまな環境を使用してこれを再現しようとしました。 Ubuntu 16.04、Ubuntu 18.04、Amazon Linux 2、Python3.6.8および3.8.3を使用しました。 多くのコメント投稿者がPython2を使用していましたが、サポートされなくなったため、再現しようとはしませんでした。 最新のv1aws-cli(執筆時点では1.18.80)と、この号で参照されている古いバージョン(1.11.78)を使用しました。 @jameslsによって提供されたスクリプト(https://github.com/aws/aws-cli/issues/602#issuecomment-281866173)を使用して、特殊文字を含むものに遭遇するまで新しいクレデンシャルペアを作成し、最大で実行できるようにしました。それぞれ1時間。 SignatureDoesNotMatchエラーは発生しませんAuthFailureエラーが発生することがありましたが、同じクレデンシャルでコマンドを再試行すると成功します。

コメントの数が多いため、この問題が発生した新規ユーザーは、トラブルシューティングの提案を求める開発者チームからのリクエストを見つけることが困難です。 チームとコミュニティがこのエラーの原因を特定できるように、この問題を閉じて、このエラーが発生したユーザー向けのガイダンスとコメントの要件を含む特定のGitHub問題テンプレートを作成します。

このエラーが発生した場合は、[問題]タブに移動し、[新しい問題]ボタンをクリックして、テンプレートを使用してSignatureDoesNotMatchエラーレポートを作成してください(または以下のリンクを使用してください)。

このエラーが発生するユーザー環境はさまざまであるため、既存の問題にコメントするのではなく、別の問題を提出してください。

SignatureDoesNotMatchエラーレポートを提出するには、ここをクリックしてください

このページは役に立ちましたか?
0 / 5 - 0 評価