Aws-cli: Kesalahan SignatureDoesNotMatch

Dibuat pada 22 Jan 2014  ·  175Komentar  ·  Sumber: aws/aws-cli

Saya terus mendapatkan kesalahan klien A (SignatureDoesNotMatch) terjadi saat memanggil operasi ListUsers: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan Anda. Lihat dokumentasi layanan untuk detailnya.

Saya mengatur variabel lingkungan AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, dan AWS_DEFAULT_REGION.

confusing-error

Komentar yang paling membantu

Baru saja ini terjadi pada saya dan merupakan akibat dari waktu sistem saya yang terlalu banyak meskipun tidak melaporkannya. Jalankan ntpdate terhadap pool.ntp.org dan perbaiki masalah ini untuk saya.

Semua 175 komentar

EDIT: Jika Anda mengalami masalah ini, kami sangat menghargai bantuan Anda dalam pemecahan masalah. Saya memperbarui komentar ini untuk visibilitas yang lebih baik tentang langkah-langkah pemecahan masalah.

Penyelesaian masalah

Langkah pertama untuk memecahkan masalah ini adalah menentukan apakah masalahnya ada pada kredensial itu sendiri atau dengan CLI. Untuk menguji ini, coba gunakan kredensial ini di AWS SDK lain (javascript, ruby, java, dll). Untuk membantu dengan ini, saya telah membuat skrip pengujian yang menggunakan AWS SDK untuk python dan javascript yang tersedia di sini: https://github.com/jamesls/aws-creds-test . Setelah kloning, jalankan make install , make test . Ini akan meminta Anda untuk kredensial (mirip dengan CLI) dan membuat panggilan API ke sts.GetCallerIdentity .

/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.

Untuk orang yang mengalami masalah ini, jalankan skrip pengujian dan bagikan hasilnya.

Ini akan memberi kita wawasan yang lebih baik tentang di mana masalah ini terjadi:

  • Jika skrip di atas lolos untuk python dan javascript tetapi gagal saat menggunakan CLI, kemungkinan masalah CLI.
  • Jika skrip gagal untuk python tetapi lolos untuk javascript, kemungkinan ada masalah dengan botocore (yang digunakan CLI).
  • Jika skrip di atas gagal untuk python dan javascript, kemungkinan ada masalah dengan kredensial yang sebenarnya.

Terima kasih sebelumnya untuk siapa saja yang dapat membantu kami memecahkan masalah ini. Beri tahu saya jika ada pertanyaan.

Begini tampilannya:

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

Adakah pembaruan tentang masalah ini? Saya juga mengalami kesalahan ini dan file kredensial saya tidak berubah.

Saya memiliki masalah serupa. Plugin Jenkins s3 dapat menempatkan objek menggunakan kredensial saya, tetapi aws-cli memberi saya kesalahan di bawah ini.

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.

Saya mengalami masalah yang sama. Jika saya mengarang rahasia, itu memberi saya kesalahan (AuthFailure) yang berbeda.

[[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

Ini cukup banyak menghentikan saya sepenuhnya. Saya dapat melakukan beberapa hal dengan utilitas ec2-blah-stuff dengan menentukan sertifikat x509 tetapi bantuan mengatakan itu sudah usang jadi saya tidak ingin bergantung padanya. Pemecahan masalah bantuan apa pun atau apa pun yang akan sangat dihargai.

Langkah pertama adalah memastikan bahwa akses/kunci rahasia Anda benar-benar valid. Beberapa hal untuk dicoba:

  • Apakah kredensial akses/kunci rahasia yang sama ini berfungsi dengan alat lain? (SDK java/javascript/ruby/python?)
  • Apakah perintah lain selain "aws s3" berfungsi untuk Anda? Apakah "aws ec2 mendeskripsikan-instances" masih menghasilkan kesalahan autentikasi?

Mereka tidak bekerja dengan alat lain (misalnya, ec2-describe-instance).

Saya pikir saya memiliki hak yang sesuai karena menggunakan sertifikat berfungsi. Untuk memastikan itu bukan hal workstation, saya membuat instance Amazon Linux dan saya menggunakan versi awscli yang menyertainya tetapi mendapatkan pesan yang sama.

Juga masalah bagi saya. Saya menggunakannya dalam wadah buruh pelabuhan, dibuat dengan Dockerfile yang sama.
Ini berfungsi dengan baik saat dibangun di atas EC2, tetapi tidak berfungsi saat dibangun secara lokal di kotak gelandangan coreos.

Sepertinya masalahnya ada pada kredensial itu sendiri. Saya telah memeriksa ulang ini, dan saya tidak dapat mengulangi masalah ini. Periksa kembali kredensial pada halaman kredensial keamanan . Jika seseorang dapat memberikan serangkaian langkah tepat yang menunjukkan masalah tersebut, saya akan dengan senang hati memeriksanya lagi.

Baru saja ini terjadi pada saya dan merupakan akibat dari waktu sistem saya yang terlalu banyak meskipun tidak melaporkannya. Jalankan ntpdate terhadap pool.ntp.org dan perbaiki masalah ini untuk saya.

Jika Anda mendapatkan kesalahan ini saat kredensial diatur menggunakan variabel env, coba sudo

Jika Anda berada di mesin virtual, pastikan waktu os host Anda sesuai dengan waktu os tamu. Jika ini bukan masalahnya, Anda akan mengalami kesalahan yang Anda jelaskan.

Kesalahan yang sangat mirip terjadi pada saya dengan kredensial yang baik, saat membuat daftar ember yang memiliki _banyak_ kunci di dalamnya. Inilah kesalahannya:

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.

Inilah hasil saya dari 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

Perhatikan bahwa kredensial ini berfungsi dengan baik dengan pemanggilan aws , dan sebenarnya operasi list berjalan untuk waktu yang lama (lebih dari satu jam) sebelum menebus kesalahan ini. Saya memiliki file dengan lebih dari 82.000 baris output di dalamnya dari perintah yang akhirnya gagal.

Saya mendapatkan masalah ini, dan jika saya hanya menidurkan skrip saya sebentar dan mencoba lagi maka itu akan berhasil. Ini hampir seperti tercekik dan mengembalikan kesalahan yang salah atau sesuatu.

Saya dapat melaporkan masalah ini juga. Mencoba mengunggah file 11 GB menggunakan aws cp foo s3://mybucket/foo/bar Saya mendapatkan berbagai kesalahan seperti:

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.

dan

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)

Saya telah memeriksa bahwa waktu sistem saya benar. Saya juga memperhatikan kelambatan yang cukup besar (pada tingkat permintaan http waktu habis) pada sistem yang sama saat mengunggah, jadi ini menjadi masalah pelambatan kedengarannya masuk akal. Ini juga berfungsi dengan baik untuk mengunggah file kecil dengan kredensial yang sama, dan menggunakan konsol web dari mesin yang sama, jadi ini tampaknya merupakan masalah aws-cli.

Ini terjadi pada saya juga dengan aws-cli 1.5.5, memperbarui aws-cli ke 1.6.2 menyelesaikannya.

Terjadi pada saya dengan 1.6.2

Ini terjadi pada saya hari ini. Ini baru bagi saya. Telah menggunakan awl-cli selama beberapa bulan tidak ada masalah dan tidak ada perubahan pada kredensial 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

Saya yakin masalah ini sekarang telah diperbaiki melalui https://github.com/boto/botocore/pull/388 , dan akan tersedia dalam rilis AWS CLI berikutnya.

@jamesls dikonfirmasi diperbaiki pada awscli versi 1.6.4 . Saya menggunakan 1.5.4 . Terima kasih!

Saya mendapatkan masalah ini pada sistem ubuntu baru.

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.

Menginstal aws-cli melalui pip

$ 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)

Ada ide tentang cara memperbaikinya?

Solusi saya adalah tidur selama beberapa detik dan kemudian coba lagi, tapi itu
sepertinya ada pembaruan untuk alat yang memperbaikinya juga.

Pada Selasa, 2 Desember 2014 pukul 03.38, Mark Wolfe [email protected] menulis:

Saya mendapatkan masalah ini pada sistem ubuntu baru.

Kesalahan klien (SignatureDoesNotMatch) terjadi saat memanggil operasi PutObject: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa kunci dan metode penandatanganan Anda.

Menginstal aws-cli melalui pip

$ daftar pip
mungkin (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)
konfigurasi (4.7.2)
dokumen (0,11)
html5lib (0,999)
httplib2 (0.8)
Jinja2 (2.7.2)
jmespath (0.5.0)
jsonpatch (1.3)
jsonpointer (1.0)
Lanskap-Klien (14.01)
MarkupSafe (0,18)
lincah (2.8.2)
sumpah (1.0.1)
PAM (0.4.2)
Bantal (2.3.0)
pip (1.5.4)
cantik (0.7.2)
pyasn1 (0.1.7)
pycrypto (2.6.1)
pycurl (7.19.3)
Pigmen (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)
permintaan (2.2.1)
romawi (2.0.0)
RS (3.1.2)
alat penyiapan (3.3)
enam (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)

Ada ide tentang cara memperbaikinya?


Balas email ini secara langsung atau lihat di GitHub
https://github.com/aws/aws-cli/issues/602#issuecomment -65198065.

@wolfeidau dan ya saya berbicara terlalu cepat. Awscli yang diinstal pip secara lokal memberikan kesalahan SignatureDoesNotMatch lagi. Astaga!

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'

Apakah masalah ini hanya terjadi ketika permintaan dicoba lagi? Atau apakah ini terjadi setiap kali Anda menjalankan perintah deregister-instances-from-load-balancer?

@jamesls itu terjadi setiap saat sekarang :(

Saya tahu masalah ini sudah selesai tetapi ingin berbagi bahwa Anda dapat melihat kesalahan ini saat berjalan di VM yang hibernasi. Dalam kasus seperti itu, jam sistem tidak secara konsisten mengejar jika Anda menggunakan Ubuntu. Cukup perbarui waktu untuk memperbaikinya (yaitu Sudo ntpdate -s time.nist.gov).

halo, apakah ada perbaikan akhir untuk ini?

+1

Menggunakan versi 1.7.8 dari CLI, saya melihat kesalahan SignatureDoesNotMatch yang sama saat mencoba yang berikut:
$ aws iam list-users

Dan mendapatkan AuthFailure untuk ini:
$ aws ec2 describe-security-groups

Setelah menghapus kunci saya dan mencoba yang baru, kedua perintah berfungsi.

Ini adalah kunci akses rahasia lama yang mungkin menjadi penyebab masalah saya, perhatikan persen, karakter plus dan garis miring: H2J7/oT3Fib15SwFVB1s3EnTCmg+SC7wF7qoP+dw%

:+1: @gsterndale. Kunci akses saya dengan % di dalamnya tidak berfungsi. Saya harus membuat kunci baru.

Saya juga mengalami masalah ini beberapa kali. Setiap kali membuat ulang kunci sampai saya mendapatkannya tanpa karakter khusus di dalamnya (khususnya saya mengalami masalah dengan tanda + dalam rahasia) memperbaikinya.

Sejujurnya semua masalah kunci penandatanganan saya hilang ketika saya beralih dari menjalankan perintah pada mesin ubuntu alih-alih instalasi homebrew mac lokal.

Saya sangat baru di AWS, segera menghadapi masalah ini di node js

              ^

SignatureDoesNotMatch: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan Anda. Konsultasikan
wakil dokumentasi untuk rincian.

String Canonical untuk permintaan ini seharusnya
'POS
/

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

host;x-amz-content-sha256;x-amz-date
89cdc817a829111278fbed35aacc694db71669f3845874beaecaf00ff2be1a39'

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

+1

Saya mengalami masalah ini untuk semua perintah aws s3 (awscli 1.8.6 di ubuntu 14.04 LTS).
Apakah ada solusi yang diketahui? Saya mencoba menghapus file kredensial saya dan menjalankan aws configure, reboot, instal ulang awscli.

@mcobzarenco ,

@gsterndale Saya melihat komentar di atas tentang memiliki garis miring di kunci lama, tapi bukan itu masalahnya dan kunci saya baru-baru ini dibuat (pada Juni 2015). Saya hanya memiliki masalah ini di AWS Ubuntu 14.04 LTS. Di laptop saya (14.04) awscli (versi yang sama) berfungsi dengan baik.

@mcobzarenco Saya tidak berpikir ini usia kunci, melainkan karakter khusus di dalamnya. Ketika saya awalnya membuat kunci, mereka kebetulan memiliki karakter persen, plus dan garis miring. Saat men-debug masalah, saya mencoba menghapus dan membuat kunci baru. Yang baru ini untungnya tidak memiliki karakter ini dan mereka berfungsi.

baru saja mengalami masalah ini di ubuntu. Ketika saya memasukkan kunci melalui cli, itu menyimpannya di ~/.aws/config, tetapi menghilangkan karakter '+'. Mengedit file secara manual untuk menambahkan '+' memungkinkan saya untuk terhubung.

@gsterndale Terima kasih atas tipnya, saya dapat mengonfirmasi bahwa membuat kunci baru yang tidak mengandung + berfungsi untuk saya. Solusi @stebl bagus jika tidak nyaman untuk mengganti kunci.

Saya menghadapi masalah yang sama saat menggunakan AWS SDK dengan node js. Untuk mengatasi masalah ini, saya mengikuti langkah-langkah yang sama persis seperti yang disebutkan di sini
http://aws.amazon.com/developers/getting-started/nodejs/

Saya pikir AWS SDK dikembangkan dengan versi node js tertentu, ketidakcocokan dalam node js akan menghasilkan masalah seperti ini.

Saya memiliki masalah yang sama dan ya, diselesaikan dengan menggunakan kunci tanpa simbol khusus ( + dalam kasus khusus saya)

Kami menemukan kesalahan ini (di mana satu mesin dapat menjelaskan-contoh menggunakan awscli tetapi yang lain mendapat kesalahan akses ditolak dengan kunci akses yang sama. Pada mesin yang terakhir iam daftar-pengguna memberikan kesalahan SignatureDoesNotMatch ini). Diselesaikan dengan mengoreksi waktu jam sistem pada mesin yang bermasalah.

Seperti yang dikatakan @tukaaa , ada bug jika kunci akses rahasia berisi karakter non alfabet (seperti +). Saya pikir melarikan diri yang buruk di suatu tempat ;-(

@ebuildy Bisakah Anda mengonfirmasi versi CLI apa yang Anda lihat ini ( aws --version )? Jika ini adalah versi alasan dari CLI, saya akan melanjutkan dan membuka kembali masalah ini.

Saya mendapatkan ini di aws-cli/1.9.1 Python/3.5.0 Windows/7 botocore/1.1.8

Saya mengalami masalah yang sama pada satu kotak Windows, menggunakan kunci tanpa karakter non-alfa di dalamnya. Saya telah memeriksa itu bukan kesalahan salin / tempel dengan menggunakan buffer tempel yang sama di kotak lain. Menghapus / menginstal ulang cli AWS dan menghapus kredensial / file konfigurasi, lalu menjalankan kembali konfigurasi aws memperbaikinya.

Baru saja melihat ini di aws-cli/1.10.3 Python/2.7.10 Darwin/14.5.0 botocore/1.3.25 .

Membuat ulang kunci tanpa karakter khusus memperbaikinya. FWIW dalam kasus saya karakter khusus adalah / dan saya menggunakan file INI.

Ok pembukaan kembali, kita akan menggali ini.

@Saya dapat mengonfirmasi bahwa saya memiliki masalah yang sama seperti yang dijelaskan oleh @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

Tapi kunci saya tidak mengandung simbol khusus.

Saya mendapatkan kesalahan yang sama menggunakan modul simpul s3-cli. Kunci rahasia saya berisi [ .

Saya akhirnya menemukan apa yang salah. Saya tidak sengaja menambahkan beberapa karakter ke tombol. Itulah alasannya.

Saya menghadapi masalah ini dengan skenario berikut; baik di rhel7 dan ubuntu. Saya pikir itu ada hubungannya dengan karakter non-alpha seperti yang disebutkan orang lain

  • ember s3 dilindungi untuk satu peran
  • ec2 instance dengan peran tersebut perlu mengambil peran yang sama sebelum mengakses bucket s3 yang dilindungi
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`

Saya percaya sesuatu dengan --query mengacaukan kredensial. Saat menjalankan perintah secara manual dan menyalin dan menempelkan nilainya; kemudian mengatur variabel lingkungan sepertinya berfungsi dengan baik.

Saya memiliki masalah yang sama ketika menjalankan awscli versi 1.10 di Mac (diinstal melalui pip) versus Ubuntu (gambar Amazon) awscli versi 1.2.9. aws configure --profile user menghasilkan dua konfigurasi berbeda di bawah masing-masing. Versi 1.10 menghasilkan dua file: konfigurasi dan kredensial. Versi 1.2.9 baru saja menghasilkan file konfigurasi (tetapi dengan informasi kredensial). Ketika saya menghapus kredensial dan file konfigurasi yang dihasilkan oleh versi 1.10 dan menyalin file konfigurasi yang dihasilkan oleh versi 1.2.9 semuanya bekerja, bahkan dengan karakter khusus dan menjalankan awscli versi 1.10. File konfigurasi yang dihasilkan oleh versi 1.2.9 adalah

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

Dapat mengonfirmasi bahwa itu karena karakter non-alfanumerik.

Saya memiliki masalah yang sama dengan kunci rahasia yang berisi +. Namun saya bukan pemilik akun S3 dan tidak dapat dengan mudah membuat akun baru. Adakah yang menemukan perbaikan selain membuat kunci baru tanpa karakter khusus?

tl; dr Solusi : berulang kali membuat ulang kredensial SAMPAI aws_secret_access_key Anda TIDAK mengandung karakter non-alfanumerik ... dalam kasus saya aws_secret_access_key berisi + ( tanda tambah)

Saya baru saja melakukan instalasi baru ... masalah yang sama ... ini ada di Ubuntu ... ini bukan masalah OS lokal ini masalah Amazon API jadi abaikan komentar lain yang mengatakan pindah dari OSX memperbaikinya

contoh deskripsi aws ec2

Terjadi kesalahan (AuthFailure) saat memanggil operasi ExplainInstances: AWS tidak dapat memvalidasi kredensial akses yang diberikan

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

aws ec2 mendeskripsikan-keamanan-grup

Terjadi kesalahan (AuthFailure) saat memanggil operasi ExplainSecurityGroups: AWS tidak dapat memvalidasi kredensial akses yang diberikan

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

aws ecr get-login

Terjadi kesalahan (InvalidSignatureException) saat memanggil operasi GetAuthorizationToken: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan Anda. Lihat dokumentasi layanan untuk detailnya.

String Canonical untuk permintaan ini seharusnya
'POS
/

tipe konten: aplikasi/x-amz-json-1.1
host:ecr.us-east-1.amazonaws.com
x-amz- tanggal:20160615T182955Z
x-amz- target: AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken

tipe konten;host;x-amz-date;x-amz-target
44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a'

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

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

aws saya daftar-pengguna

Terjadi kesalahan (SignatureDoesNotMatch) saat memanggil operasi ListUsers: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan Anda. Lihat dokumentasi layanan untuk detailnya.

String Canonical untuk permintaan ini seharusnya
'POS
/

host: iam.amazonaws.com
x-amz- tanggal:20160615T183516Z

tuan rumah;x-amz-date
b6359072c78d70ebee1e81adcbab4f01bf2c23245fa365ef83fe8f1f955085e2'

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

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

aws --versi
aws-cli/1.10.38 Python/2.7.11+ Linux/4.4.0-22-generik botocore/1.4.28

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

cat /root/.aws/credentials
[bawaan]
aws_access_key_id = AKIAJ7FCEUVVSGX7KZGQ
aws_secret_access_key = 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

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

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

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

SOLUSI:
Setelah menghapus dan membuat kredensial baru
di mana aws_secret_access_key TIDAK memiliki tanda plus ( + ) semuanya baik-baik saja, perintah di atas mulai berfungsi dengan baik

Saya memiliki masalah yang sama. Membuat kembali kredensial sampai saya tidak memiliki karakter khusus di dalamnya berfungsi untuk saya.

Saya menemukan bahwa ketika saya menyalin & menempelkan kredensial mereka memiliki ^M karakter di bagian akhir yang menyebabkan kesalahan.

Mendapatkan kunci rahasia tanpa + memperbaikinya untuk saya juga...

Catatan - jika Anda melihat masalah ini di bawah buruh pelabuhan (boot2docker VM'd), bisa jadi jam VM tidak sinkron.
Lihat: http://stackoverflow.com/questions/24551592/how-to-make-sure-dockers-time-syncs-with-that-of-the-host

Saya mengalami masalah yang sama. Bagaimana jika saya tidak memiliki izin untuk membuat ulang kredensial.. kemungkinan perbaikan menggunakan cara lain?

PEMBARUAN: Saya memperbaikinya dengan menjalankan rm -rf .aws/cli/cache/

Saya mengalami masalah ini sekarang juga. Ketika mencoba untuk mengambil peran

Versi: kapan:
aws-cli/1.11.17 Python/2.7.10 Darwin/16.1.0 botocore/1.4.74

Sunting: Mencoba juga memperbarui lagi sekarang, masalah yang sama:
aws-cli/1.11.18 Python/2.7.12 Darwin/16.1.0 botocore/1.4.75

Keluaran:

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'

Masalah yang sama masih ada dengan versi AWS CLI terbaru (terkini). Saya baru saja memutakhirkan 1.8.3 CLI saya ke 1.11.19 - dan tidak dapat menjalankan perintah apa pun dengan pengguna/kunci baru yang saya buat. Harus mendaur ulang sekitar 5 kunci sebelum saya mendapatkan pasangan di mana kunci Rahasia tidak memiliki karakter non-abjad. Setelah saya menemukan pasangan seperti itu - CLI berfungsi dengan baik.

Sangat menjengkelkan - Saya berharap Amazon tidak membuat kunci tidak valid yang tidak dapat mereka proses.....

@mpopova-yottaa apakah Anda mencoba membersihkan cache awe-cli sepenuhnya? Coba hapus seluruh direktori ~/.aws (buat salinan file konfigurasi/kredensial Anda)

aws ec2 describe-instances berjalan untuk saya, tetapi ketika mencoba membuat tumpukan formasi awan:

```Pengecualian di thread "main" com.amazonaws.services.cloudformation.model.AmazonCloudFormationException: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan Anda. Lihat dokumentasi layanan untuk detailnya.

String Canonical untuk permintaan ini seharusnya
'POS
/

amz-sdk-invocation-id:18d13b66-80ae-f676-c0cf-dbf875edb1aa
amz-sdk- coba lagi: 3/345/470
host: cloudformation.us-west-1.amazonaws.com
agen pengguna
x-amz- tanggal:20161127T194448Z

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

String-to-Sign seharusnya
'AWS4-HMAC-SHA256
20161127T194448Z
20161127/us-west-1/cloudformation/aws4_request
cb0286a8727afcc465171ab991accde0aaa7210e160a9ba3196e2a5e4305f428' (Layanan: AmazonCloudFormation; Kode Status: 403; Kode Kesalahan: SignatureDoesNotMatch; ID Permintaan: f52abbd4-b4d9-11e6-b989-d5c73d50d5e)

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

Kunci rahasia hanya berisi alfanumerik, jadi saya buntu.

@ aebrow4 Ada di cache untuk awe-cli. Coba hapus: .aws/cli/cache/

@cultavix tidak ada cli di dalam .aws

Saya mendapatkan kesalahan ini saat menjalankan aws glacier upload-archive dengan --archive-description "`date`" . Ketika saya menggunakan --archive-description "`date +%Y/%m/%d`" itu berfungsi dengan baik, jadi sepertinya ada beberapa masalah melarikan diri.

Saya mengalami masalah serupa:

λ 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.

Saya mencoba menyinkronkan waktu dengan server NTP (berhasil), tetapi ini tidak menyelesaikan masalah. Regenerasi kunci sampai saya memiliki satu set tanpa karakter khusus yang memperbaikinya.

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

Saya memiliki masalah yang sama menggunakan awscli dan contoh kode python (boto3).
Perhatikan bahwa saya menggunakan penyimpanan objek IBM S3 api yang kompatibel, saya dapat membuat daftar ember dan isinya tetapi tidak dapat mengunggah (baik untuk kode pyhton dan cli).
Saya menguji skenario dengan ruby aws-sdk dan berfungsi dengan baik (unggah/unduh).
-- konfigurasi
aws-cli/1.2.9 Python/3.4.3 Linux/3.19.0-33-generic

Baru saja mulai mengalami masalah yang sama dengan skrip yang telah saya gunakan selama berbulan-bulan untuk menyimpan unggahan multi bagian ke Glacier. Masih dapat menyetor dengan baik melalui aws cli, jadi kredensial masih berfungsi, tetapi skrip yang menggunakan boto3 gagal dengan:

"botocore.exceptions.ClientError: Terjadi kesalahan (InvalidSignatureException) saat memanggil operasi InitiateMultipartUpload: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan. Lihat dokumentasi layanan untuk detailnya."

aws --versi adalah
aws-cli/1.11.38 Python/2.7.10 Darwin/15.6.0 botocore/1.5.1

(ya saya memperbarui semua pemikiran yang mungkin memperbaiki masalah ... tidak beruntung.)

mendapatkan sepasang kunci baru tanpa karakter khusus (dalam kasus saya + ) memperbaiki masalah untuk saya

konfirmasi lain di sini tentang penanganan + dalam kunci rahasia.

Hai semuanya, ini skrip yang saya gunakan untuk mencoba dan mengulangi masalah ini: https://Gist.github.com/jamesls/00ef7fcc0ac39ba8b06956d165c42f6d . Inilah yang dilakukan skrip:

  • Membuat pasangan access_key/secret_key baru melalui aws iam create-access-key dalam satu lingkaran hingga menemukan kredensial yang memiliki karakter + atau / .
  • Itu membuat profil "testcreds" baru dengan kredensial yang baru dibuat ini
  • Ia mencoba untuk memanggil berbagai perintah AWS CLI untuk memastikan kredensial ini berfungsi

Ia melakukan ini dalam loop tak terbatas hingga panggilan API gagal. Sejauh ini saya belum bisa membuatnya gagal. Kunci rahasia yang memiliki + dan / berfungsi untuk saya.

Pada titik ini kami telah mengkonfirmasi bahwa sangat mungkin untuk menggunakan secret_keys yang memiliki + atau / jadi saya tidak berpikir akar penyebabnya adalah sesuatu yang langsung seperti bug dalam kode penandatanganan kami yang rusak ketika + ada. Membaca ulang komentar di utas ini, mungkin ada masalah dengan cara kredensial dimasukkan ke dalam file ~/.aws/config atau ~/.aws/credentials . Mungkin ada beberapa hal khusus platform yang mengubah karakter yang mengandung + atau / .

Jadi bagi siapa saja yang masih mengalami masalah ini, akan sangat membantu jika Anda dapat memberikan beberapa informasi tambahan:

  1. Bagaimana Anda mendapatkan kredensial (salin/tempel dari konsol, aws iam create-access-key , file CSV dari konsol, dll)?
  2. Bagaimana Anda mengonfigurasi CLI untuk menggunakan kredensial ini? Apakah Anda menjalankan aws configure dan memasukkan nilai saat diminta? Apakah Anda melakukan ini secara terprogram dengan menjalankan aws configure set ? Apakah Anda mengedit ~/.aws/config dan/atau ~/.aws/credentials secara manual? Mengatur berbagai AWS_* env vars?

Hal-hal bonus yang akan lebih membantu jika memungkinkan:

  1. Jika Anda menggunakan SDK lain, apakah kredensial yang tidak berfungsi di CLI ini berfungsi di AWS SDK lain?
  2. Jika Anda memiliki akun pengujian atau pengguna IAM pengujian, apakah menjalankan skrip yang saya gunakan untuk menguji pernah gagal untuk Anda?

Info tambahan apa pun yang dapat membantu kami mengulangi masalah ini di pihak kami akan sangat bagus.

Saya masih mengalami masalah ini. Untuk menjawab pertanyaan Anda:
Kredensial yang dibuat di konsol amazon dan potong/tempel ke ~/.aws/credentials (diedit dengan emacs di mac)

Dari pemecahan masalah yang telah saya lakukan sejauh ini (dan saya pemula dalam hal ini ...) 'Canonical String' benar, tetapi 'String-to-Sign' salah, memiliki baris terakhir yang berbeda. Yaitu ketika saya mencetak nilai kembalian auth.py string_to_sign, nomor yang dihasilkan dari 'sha256(canonical_request.encode('utf-8')).hexdigest())' berbeda dari nomor yang dilaporkan dalam kesalahan yang dikembalikan "The String -to-Sign seharusnya" .

Tidak ada karakter khusus dalam kredensial saya, dan itu berfungsi saat menggunakan alat lain, misalnya CrossFTP (yang tidak ingin saya gunakan!!!)

Setiap wawasan akan sangat dihargai!!

@samato88 yang tampaknya menjadi masalah yang berbeda di sana. Jika Anda dapat membagikan info debug apa pun (pastikan untuk menghapus informasi sensitif apa pun) yang akan membantu.

String_to_sign tidak dipengaruhi oleh secret_access_key. Ketika kami menandatangani permintaan, kami mengambil permintaan HTTP yang akan kami kirim, mengubahnya menjadi string (yaitu string atau tanda), dan kemudian menggunakan kunci rahasia, kami menandatangani string itu dengan kunci rahasia (melewati beberapa detail di sini). Jadi masalah apa pun dengan string yang akan ditandatangani akan terpisah dari masalah ini.

Bisakah Anda membuka masalah lain dan memberikan output --debug (atau menyertakan permintaan lengkap dan pesan kesalahan dari layanan)? Kami akan dengan senang hati memeriksanya untuk Anda.

Terima kasih jamesls - Saya telah membuka masalah terpisah di:
https://github.com/aws/aws-cli/issues/2474

Setiap wawasan sangat dihargai.

Jika waktu sistem Anda mati lebih dari 5 menit, Anda tidak akan dapat menggunakan CLI

jalankan saja... sudo ntpdate -s time.nist.gov

lalu coba lagi

Saya memiliki masalah yang sama, kunci rahasia saya berisi tanda "+". Saya telah menghapus file .aws/credentials saya dan menjalankan kembali konfigurasi aws. Setelah itu permintaan saya ke antrian persegi untuk menerima pesan berfungsi.

Terima kasih @AlexParra03 . Saya memiliki masalah yang sama dan komentar Anda membantu saya menyelesaikannya .... :-)

@robotzero apakah Anda ingat bagaimana Anda memasukkan kredensial Anda? Apakah Anda menjalankan aws configure lalu menyalin/menempelkan nilainya dari konsol web?

Ya, saya menjalankan aws configure dan copy paste nilainya.

Ya, saya memiliki + dalam rahasia saya, yang masih menyebabkan kesalahan ini. Membuat kunci baru tanpa karakter khusus memperbaiki masalah.

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

Memiliki + dan / dalam rahasia saya. Rahasia tanpa ini memecahkan masalah bagi saya.

Juga memiliki masalah ini.

$ 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

Memiliki "+" di kredensial. Diselesaikan dengan membuat ulang kunci akses tanpa mereka. Sebagai catatan: "/" adalah karakter yang bagus untuk dimiliki.

@adityanatraj @shwetapurushe @damienrj dapatkah kalian semua menjawab pertanyaan ini di sini ? Pada titik ini kami mencoba untuk mendapatkan lebih banyak informasi tentang lingkungan Anda dan bagaimana Anda memasukkan kredensial. Seperti yang disebutkan dalam komentar itu, membuat kunci rahasia dengan + tidak menimbulkan masalah bagi kami, jadi ini mungkin terkait dengan kombinasi lingkungan Anda dan/atau cara Anda memasukkan kredensial.

Dengan kata lain, kami membutuhkan lebih banyak informasi dari orang-orang sehingga dapat memecahkan masalah yang terjadi.

@jamesls

  1. Bagaimana saya mendapatkan kredensial?

Saya mendapatkan kredensial dengan menyalinnya dari konsol web.

  1. Bagaimana cara mengkonfigurasi CLI untuk menggunakannya?

Saya secara manual membuat dua file:

~/.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

Maaf, saya tidak dapat membantu dengan pertanyaan bonus karena saya telah menghapus kunci akses saya yang berisi tanda '+', sehingga masalah tidak muncul.

@adityanatraj terima kasih, setiap bit membantu.

Langkah selanjutnya yang akan membantu kami memecahkan masalah adalah mencari tahu apakah ini masalah hanya dengan CLI atau masalah dengan kredensial itu sendiri. Bagi siapa pun yang masih mengalami masalah ini, akan sangat membantu jika Anda dapat mencoba kredensial ini di AWS SDK lain. Untuk membantu dengan ini, saya telah mengumpulkan contoh repo/skrip yang memudahkan ini jika Anda tidak ingin mengaturnya sendiri: https://github.com/jamesls/aws-creds-test . Cukup klon repo dan jalankan make install , make 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.

Untuk orang yang mengalami masalah ini, jalankan skrip pengujian dan bagikan hasilnya.

Pengecualian yang sama ini terjadi pada saya pada permintaan PutObject (C#), setiap kali metadata objek memiliki karakter Unicode.

Saya memiliki masalah yang sama. Kunci rahasia baru dengan + dan / tidak berfungsi. Saya membuat kunci baru tanpa karakter itu dan mereka berfungsi dengan baik.
Skrip pengujian Anda untuk linux dan saya menjalankan windows.
Saya menempelkan kredensial saya menggunakan Control-C dan Control-V menggunakan windows Shell dan _aws configure_
dan saya hanya menggunakan _aws cp_

Menguji ini juga, dan berfungsi dengan baik selama kunci rahasia tidak memiliki simbol, seperti yang disebutkan di atas.

Berharap untuk melihat ini segera diselesaikan, sangat sulit untuk terus membuat kredensial sampai saya mendapatkan yang berfungsi!

Saya menaikkan tiket dukungan ke AWS kemarin, dan hari ini tampaknya telah diselesaikan

Saya telah menguji beberapa kali dan + dan/keduanya sekarang tampaknya berfungsi? Saya tidak dapat lagi mereproduksi bug ini.

Saya memiliki masalah yang sama pada Pi saya.
Dengan awscli terbaru (aws-cli/1.11.85 Python/3.4.2 Linux/4.9.24-v7+ botocore/1.5.48) saya masih mengalami masalah:

root@pi :~# aws s3 ls s3://
Terjadi kesalahan (SignatureDoesNotMatch) saat memanggil operasi ListBuckets: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan.
Periksa Kunci Akses Rahasia dan metode penandatanganan Anda. Untuk informasi selengkapnya, lihat Otentikasi REST dan Otentikasi SOAP untuk detailnya.

Bahkan dengan kunci rahasia yang tidak memiliki karakter khusus (+ atau /), aksesnya tidak berfungsi. Waktu selalu sinkron, sayangnya ini juga bukan masalahnya.

Dalam file ".aws/config" saya menambahkan wilayah yang valid (hanya untuk pengujian..) dan tiba-tiba berhasil. Karena saya menggunakan penyimpanan s3 yang kompatibel (bukan s3 dari Amazon)

[bawaan]
aws_secret_access_key = MYKEY
aws_access_key_id = ID SAYA
region = us-east-1 <-- ada nilai "dummy" sebelumnya.

Seperti yang terlihat, wilayah tersebut harus memiliki nilai yang "benar". Ketika saya mengubahnya kembali ke sesuatu yang berbeda seperti "dummyvalue" saya mendapatkan kesalahan yang sama seperti yang disebutkan di atas.
Sekarang dengan nilai "us-timur-1" berfungsi!
Semoga ini bisa membantu seseorang.

Saya baru saja mengalami ini juga. Juga tampaknya menjadi masalah dengan '+' di kunci rahasia. Jika saya memiliki kepercayaan dalam variabel lingkungan, saya mendapatkan kesalahan. Jika saya meletakkannya di file ~/.aws/credentials (dengan mengedit dengan tangan) saya tidak mendapatkan kesalahan.

[ sunting ] Baru saja perhatikan variabel lingkungan berada dalam file yang diformat untuk dos (ff=dos di vim). Ini karena saya baru saja mengambil file .csv saat diunduh dan mengeditnya untuk mengubah entri menjadi variabel lingkungan. Ketika saya memformat ulang file menjadi 'ff=unix', saya tidak lagi mendapatkan kesalahan. Satu-satunya perbedaan antara 2 adalah pengembalian baris, dos menggunakan "CR-NL" sementara unix hanya "NL". Dugaan saya adalah bahwa sebenarnya karakter "CR" itulah masalahnya.

saya juga, dan juga mengkonfirmasi masalah "+"

Jika Anda mengalami ini saat menggunakan Docker untuk Mac, cukup restart Docker akan memperbaiki perbedaan waktu sistem.

Saya menghadapi masalah yang sama.
Memeriksa rahasianya, dan ada +/ di dalamnya.
Harus membuat pasangan id baru tanpa karakter khusus untuk membuatnya berfungsi

Membuat pasangan kunci baru sampai saya mendapatkannya tanpa karakter khusus juga menyelesaikannya untuk saya; karakter khusus (khusus +) tidak berfungsi di ~/.aws/credentials.

Kunci yang dibuat tanpa karakter khusus (khususnya + ) memperbaiki masalah saya juga.

Memformat file sesuai komentar @eikenb juga berhasil.

Menghapus Kunci dan membuat yang baru berhasil untuk saya.

Baru saja menerima kesalahan ini. Waktu sistem yang diperbarui yang tampaknya lebih dari 6 menit dari GMT. Memperbaiki masalah segera.

Itu sangat aneh dan rumit bagi saya.
Saya berjuang dengan masalah ini dan saya mencoba berkali-kali untuk menyelesaikannya.
Saat ini tiba-tiba berhasil! Saya terkejut jadi saya membuat ember baru tetapi tidak berhasil. Karena saya tidak melakukan apa-apa selain mengubah kode, saya hanya menunggu berjam-jam. Akhirnya, itu bekerja dengan baik meskipun saya tidak melakukan apa-apa. Aku tidak percaya itu...

Menggunakan aws configure di bash Shell di Windows 7, saya menemukan bahwa saya memiliki dua baris aws_secret_access_key di .aws/credentials dan baris kedua adalah tempat saya salah mengetik banyak sampah . Menghapus baris kedua dan semuanya berhasil.

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

Melihat masalah ini di Linux Mint di sini, tanpa + di kunci atau rahasia saya.

Keluaran dari skrip pengujian:

/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

Setelah memutakhirkan awscli ke 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

Saya baru saja membuat ulang kunci saya - Kunci baru saya masih berisi '+', tetapi sekarang dapat menggunakan cli

Bisa semudah itu

@DanAbbz92 memang, saya kebetulan menemukan solusi yang sama sekarang. Tidak tahu mengapa kunci lama tidak pernah berfungsi, tetapi yang baru baik-baik saja menggunakan proses yang sama.

Saya memiliki ^V di kunci Rahasia saya dari upaya tempel yang buruk. Mungkin bijaksana untuk memberikan peringatan yang lebih kuat untuk memeriksa karakter buruk di tombol. Akan mencegah eskalasi lebih lanjut yang tidak diperlukan.

Masalah ini dilaporkan pada tahun 2014. Hari ini 26 Oktober 2017. Saya mengalami masalah ini, rahasia saya memiliki "+" di dalamnya. Saya membuat kunci baru dan memasukkannya ke dalam ~/.aws/configure
Ayo Amazon, apakah Anda pernah berencana untuk memperbaiki bug ini

Saya mengalami masalah ini hari ini setelah menginstal cli dan menjalankan aws configure . Kunci saya tidak memiliki karakter khusus di dalamnya tetapi yang berikut ini memperbaiki masalah saya:

  • rm -r ~/.aws/
  • membuat ulang folder .aws dan file credentials dan menambahkan kredensial kembali secara manual

tl;dr mematikannya dan menghidupkannya kembali bekerja untuk saya _(ツ)_/¯

Untuk orang yang menggunakan Hadoop berakhir di sini: Bug terkait telah diperbaiki untuk Hadoop 2.8.0:
URL "

Hai, hari ini saya telah menangkap masalah yang sama.
Kotak itu memiliki waktu yang salah di atasnya. Setelah memperbarui waktu semuanya berfungsi.

Menambahkan "aku juga" yang lain

Saya memiliki kunci Rahasia yang memiliki dua karakter '+' di dalamnya, dan itu berfungsi dari file .aws/credentials saya di Windows VM saya (ketika digunakan oleh aplikasi .NET), tetapi ketika saya menginstal awscli dari brew di MacBook Pro saya , dan menyalin file .aws (menguji penyandian file, format akhir baris, dll.) gagal dengan SignatureDoesNotMatch.

Saya mencoba membuat ulang kredensial sampai saya mendapatkan kunci rahasia tanpa non alfanumerik, dan sekarang berfungsi dari awscli di Mac saya. Menyalin kredensial itu kembali ke mesin Windows saya dan menjalankan aplikasi .NET, yang masih berfungsi.

Saya tidak membuat perubahan apa pun pada waktu di kedua mesin (Mac sudah menggunakan NTP, dan Windows VM sepertinya berjalan sekitar 12 menit di belakang waktu sebenarnya)

Saya menginstal awscli dengan: brew install awscli

dan aws --version kembali: aws-cli/1.14.30 Python/3.6.4 Darwin/16.7.0 botocore/1.8.34

Yah, saya mendorong kode ke lambdas sore ini (2018-02-01 15:48 EST dengan lambda di us-east-1).
Sekarang jam 6 sore, saya mendapatkan kesalahan tanda tangan di setiap sistem di kantor.
Melihat kembali melalui utas ini: waktu saya benar, tidak ada yang berubah, kredensial berusia di bawah satu tahun, telah berfungsi sejak hari dibuat, menggunakan versi homebrew aws-cli/1.14.30 Python/3.6.4 Darwin/17.4.0 botocore/1.8.34 (coba turunkan versi ke 1.14. versi 2x, tanpa cinta)

Ini beberapa malarky

Memiliki masalah yang sama dan diselesaikan menghasilkan kunci baru tanpa karakter khusus (seperti /, + dan seterusnya).

Terima kasih kepada @hellais atas masukannya!

Baru saja mengalami masalah yang sama, selesaikan dengan memperbaiki jam laptop saya. Rupanya saya ketinggalan waktu.

Saya baru saja mengalami masalah ini dan tampaknya klien ntp saya tertinggal 10 menit. Saya melakukan ntpdatedan semua sekarang sudah diperbaiki.

Saya dapat mengonfirmasi bahwa membuat ulang kunci akses saya sampai saya mendapatkannya tanpa karakter khusus di dalamnya, berhasil. Sungguh bug yang konyol, wow.

Melihat ini adalah masalah yang sudah berjalan lama, bukankah cerdas untuk memperbarui pesan kesalahan untuk memberi pengguna tautan ke perbaikan potensial, seperti membangun kembali kunci Anda? Alih-alih sesuatu yang menunjukkan bahwa masalahnya jauh lebih kompleks daripada "ya, kami salah ketika kunci Anda memiliki karakter khusus di dalamnya, maaf!".

masalah yang sama dengar:

Versi:

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

Memerintah:

aws s3 ls
mendapat kesalahan berikut:
Unknown Signature Version: s3v3.

tidak ada solusi:

saya memperbarui jubah saya dan saya menghasilkan Rahasia tanpa Karakter khusus

perbarui - diperbaiki dengan mengikuti

aws configure set default.s3.signature_version s3v4

Ya ini masih menjadi masalah - kunci rahasia saya diakhiri dengan karakter + dan tidak ada perbaikan yang saya temukan berhasil. Kunci baru yang dibuat ulang tanpa + di akhir kunci rahasia dan itu berfungsi dengan baik.

Bagaimana ini masih menjadi masalah?

Terjadi kesalahan (SignatureDoesNotMatch) saat memanggil operasi CreateMultipartUpload: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa kunci dan metode penandatanganan Anda.
tolong bantu.

Rahasia saya dimulai dengan tanda + dan saya bahkan tidak tahu ada masalah ini sampai hari ini. Saya menggunakan boto3 python untuk mengakses s3 saya. Itu tidak berfungsi ketika saya meneruskan kredensial sebagai string mentah tetapi berfungsi dengan baik jika saya memuatnya dari config.ini sebagai variabel menggunakan configparser.RawConfigParser() . Tentu saja, membuat rahasia baru tanpa tanda + di akhir atau di awal akan menyelesaikan masalah ini juga.

Meskipun demikian, jika ini (karena alasan tertentu) tidak dapat diperbaiki, mungkin ubah pesan pengecualian menjadi sesuatu seperti "kami tidak mengizinkan tanda +, buat yang baru jika Anda ingin mengaksesnya seperti yang Anda lakukan".

Saya menggunakan aws cli di osx dan saya juga memiliki rahasia yang tampaknya tidak benar. Yang asli saya memiliki + dan = di dalamnya dan saya menerima kesalahan SignatureDoesNotMatch ketika mencoba file cp ke s3. Saya membuat ulang kunci dan rahasia baru saya sekarang adalah string alfanumerik. Hanya menambahkan konfirmasi lain bahwa regenerasi berfungsi. :lega:

Dengan harapan ini dapat memberikan wawasan, masalah ini (tidak menangani + dalam kunci rahasia) memaparkan dirinya dengan versi ini di 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

tetapi tidak terjadi dengan versi ini di Ubuntu

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

Mulai Januari 2014 dan sekarang Juni 2018, lebih dari 4 tahun dan saya memiliki masalah yang sama dengan kesalahan SignatureDoesNotMatch . Solusi bagi saya sama dengan semua solusi mayoritas di sini, dapatkan Kunci Rahasia baru tanpa karakter khusus apa pun karena kunci saya sebelumnya memiliki titik dua : , mencoba menyinkronkan waktu, tetapi tidak berfungsi untuk saya. Saya menggunakan WSL.

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

Hanya memperbarui apa yang dikatakan @gchiu pada April 2017: masih terjadi pada Juni 2018 bahwa rahasia yang memiliki karakter garis miring (/) di dalamnya dapat membuat klien PHP tidak berfungsi (PHP 7 pada Windows 10 dalam kasus saya), mengembalikan _tanda tangan tidak cocok_ kesalahan. Dalam situasi ini, buat saja sepasang kunci lain yang lebih aman.

Saya bingung dengan ini selama sekitar 30 menit.

Mengikuti masalah ini dan memeriksa waktu setempat, dll. - semuanya baik-baik saja.

Dalam keputusasaan, nuked file ~/.aws/credentials dan masuk lagi (pada dasarnya membuat ulang file) dan voila, hanya berfungsi.

Bertanya-tanya mengapa itu melempar kesalahan ini sama sekali!

EDIT:
Tampaknya tidak terkait dengan kunci rahasia dalam kasus saya; mereka semua kebanyakan string sederhana.

Memberi +1 pada masalah ini, kunci saya dimulai dengan = . Membuat ulang kunci yang hanya memiliki / di dalamnya dan semuanya baik-baik saja. Mencoba membungkus kunci dalam tanda " , tetapi tidak berhasil.

Bukan sesuatu yang saya harapkan untuk dilihat dari AWS CLI.

Menambah masalah yang sama di sini, saya tidak percaya bahwa / di kunci saya akan menyebabkan ini. Terima kasih untuk waktu yang terbuang!

Saya punya masalah ini. Saya percaya itu adalah hasil dari menginstal aws cli sebagai pengguna root pada awalnya. Resolusi tampaknya menghapus instalan aws cli, menghapus folder .aws di folder beranda pengguna saat ini serta di folder root, dan kemudian menjalankan 'aws configure' lagi sebagai pengguna saat ini.

Saya mengalami masalah ini ketika menjalankan skrip bash menggunakan pengatur waktu systemd di Ubuntu. Saat menjalankan skrip secara manual dengan pengguna saya, semuanya berfungsi dengan baik. Namun, pengatur waktu akan terus memunculkan kesalahan (SignatureDoesNotMatch). Saya kemudian memperhatikan bahwa (SignatureDoesNotMatch) diproduksi untuk setiap perintah aws yang berjalan sebagai root dan bahwa 'aws configure' tidak menyimpan nilai baru yang diberikan.

Untuk mengatasi masalah saya masuk sebagai root 'su -i', berubah menjadi 'cd ~/.aws/' dan menghapus konfigurasi dengan 'sudo rm -r kredensial', menjalankan 'aws configure' lagi dan kali ini nilai baru diselamatkan. Dari sana semuanya bekerja kembali seperti yang diharapkan!

Dapat mengonfirmasi bahwa masalah ini masih ada di 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.

Dan ternyata ada + dalam rahasia saya. Saya regenerasi dan semuanya baik-baik saja sekarang. Kapan kami dapat mengharapkan perbaikan untuk @jamesls ini? Atau ada yang bisa saya bantu?

Menghadapi hal yang sama pada cli aws saya karena kunci rahasia berisi + ...(seperti yang dijelaskan oleh di atas) Setelah membuat ulang kunci baru..(seperti yang saya lihat dari komentar delmartechdude di atas).... masalahnya telah dipecahkan.

dua sen saya. Itu memberi saya kesalahan ini karena saya mencoba mengunggah konten ke s3 dengan transfer yang dipercepat dengan cara ini (dulu berfungsi di masa lalu): --endpoint-url http://imaat.s3-accelerate.amazonaws.com ( --endpoint-url http://<bucket-name>.s3-accelerate.amazonaws.com ) sebagaimana ditentukan dalam properti titik akhir akselerasi :
screenshot-s3 console aws amazon com-2019 01 09-17-58-00

Mengikuti instruksi dalam dokumen resmi: https://docs.aws.amazon.com/es_es/AmazonS3/latest/dev/transfer-acceleration-examples.html Saya mengganti bagian terakhir itu dengan: --endpoint-url http://s3-accelerate.amazonaws.com dan jalankan perintah aws configure set s3.addressing_style virtual untuk membangun nama host secara dinamis. Periksa: https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#addressing -style

Saya tidak tahu mengapa, tetapi sekarang berhasil. Nama bucket saya ("imaat") tidak memiliki karakter khusus yang dapat menyebabkan kegagalan DNS, tetapi gagal karena beberapa alasan dengan pembaruan cli terbaru.

Menambahkan profil melalui edit teks dan mendapatkan kegagalan ini. Memperbarui id dan rahasia akses profil melalui set konfigurasi aws dan berhasil. Ini untuk rahasia dengan '+' di dalamnya dan aws-cli/1.16.23 Python/2.7.15 Windows/10 botocore/1.12.13

@dave-miles Anda sedang mengerjakan sesuatu, terima kasih telah berkomentar! Saya memperluas temuan Anda di bawah ini:

Saya mengalami masalah ini dengan beberapa gambar buruh pelabuhan. Awalnya saya menggunakan ADD di dockerfile untuk menambahkan file ~/.aws/credentials ke dalam wadah.

Jika kami melakukan ini, kami akan mengalami kesalahan SignatureDoesNotMatch saat mencoba mengunduh dari s3.

Saya menghapus baris ADD di dockerfile, membangun kembali dan meluncurkan wadah buruh pelabuhan baru. Dalam wadah baru ini, saya menjalankan aws configure set aws_access_key_id <access key id goes here> dan aws configure set aws_secret_access_key <secret access key goes here> secara manual Ini adalah pertama kalinya memasukkan informasi kredensial dalam wadah ini (yaitu wadah adalah gambar centos "segar").

Setelah menggunakan perintah aws configure set , saya berhasil mengunduh dari s3.

Bagi siapa pun yang menggunakan ini dengan dockerfile, Anda bisa menggunakan pernyataan RUN di dockerfile untuk menjalankan dua perintah atau Anda bisa menggunakan pernyataan ADD untuk mendorong skrip ke wadah buruh pelabuhan Anda:

#!/bin/sh

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

Saya memiliki masalah yang sama dengan @villasenor - + dalam kunci rahasia akan menyebabkan kesalahan saat mengonfigurasi awscli menggunakan env vars di buruh pelabuhan. memutar kunci memperbaiki masalah.

Ditto di sini, tetapi tidak ada karakter khusus di kunci akses atau kunci rahasia.
Membuat ulang set baru untuk pengguna IAM yang sama, dan yang baru dapat mencantumkan ember, yang lama tidak bisa.

Ini terjadi dengan panggilan AWS cli dan Java SDK. Menyarankan kesalahan bukan pada klien...

Kedua set masih hidup. Jika ada orang di Amazon yang menginginkan detail lebih lanjut, silakan hubungi.

Rekan kerja saya baru saja mengalami ini juga. Saya mencoba men-debug dengan membuat kunci akses sampai saya mendapatkannya dengan + atau / di awal. Tidak bisa repro sekalipun.

Saya punya rekan kerja yang mengalami hal ini. Kami menentukan bahwa ini terjadi secara khusus Ubuntu 18.04 dengan + atau / di kunci rahasia.

Mendapat kesalahan yang sama hari ini, saat ini menggunakan Windows 10. Namun, ketika saya menggunakan kunci akses yang sama di laptop lain (mac), itu berfungsi dengan baik untuk saya. Kemudian saya mencoba kunci akses di dalam WSL, yang juga baik-baik saja. Tidak yakin alasannya, dan tidak ada karakter khusus di kunci aws.

Saya mengalami kesalahan ini dengan satu set kunci akses dan bukan yang lain.
Seperti yang disebutkan dalam beberapa posting lain di sini kunci saya sebagai '/' di dalamnya. Bagi saya masalah ini tampak seperti masalah sederhana baik server atau klien encoding/decoding menggunakan standar encoding RFC URI dan yang lainnya tidak menggunakannya.
Saya berencana untuk menjalankan skrip pengujian yang disebutkan dan mencoba mereproduksi kesalahan.

Untuk orang lain di sini, saya mengalami kesalahan, tetapi saya memiliki kredensial yang salah yang di-cache di folder ~/.aws saya. Itu terlihat di sana pertama dan ke variabel lingkungan kedua.

Saya mengalami ini di Windows 10 menggunakan Git Bash. Ini berfungsi dengan baik dengan Powershell. Doa Python obv berbeda, tetapi modul Python dan Python yang sama. Saya juga memiliki + dan / di kunci saya.

Saya baru saja mengalami masalah ini dan bagi saya, perbaikannya adalah menghapus spasi. contoh.
alih-alih default:
[profilename]
aws_access_key_id = MYAWSACCESSKEYID
aws_secret_access_key = MYAWSSECRETACCESKEY
Saya mengubahnya menjadi:
[profilename]
aws_access_key_id=MYAWSACCESSKEYID
aws_secret_access_key=MYAWSSECRETACCESKEY

perhatikan kurangnya spasi di sekitar =. Ini memperbaikinya untuk saya dan saya memiliki + dan / di kunci saya juga btw.

Semua, ada beberapa tip pemecahan masalah yang luar biasa di sini. Saya akan mengubahnya menjadi halaman di bagian Pemecahan Masalah di Panduan Pengguna CLI. Terima kasih atas kontribusinya!

Halo semua,

Saya dapat melihat ada banyak jawaban di sini, tetapi bagi saya itu adalah karakter khusus di AWS Secret Access Key. Milik saya dimulai dengan "=+", tetapi ketika saya membuat yang baru tanpa karakter khusus dari konsol web, itu segera mulai berfungsi.

Saya menjalankan awscli di shell Zsh di Ubuntu di Windows:

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

Saya harap ini bermanfaat bagi orang lain.

Terima kasih
jonathan

Baru saja menenggelamkan 4 jam debugging ke dalam ini sampai saya menemukan utas ini. Saya dapat menggunakan s3 cli secara lokal tanpa masalah, tetapi ketika menjalankannya di circleci saya mendapatkan kesalahan ini: SignatureDoesNotMatch ..

Seperti yang disarankan orang lain, kunci akses rahasia saya berisi karakter + , dan setelah membuat kunci baru semuanya mulai berfungsi.

Hampir tidak mungkin untuk men-debug tanpa utas ini

Terima kasih @blbradley . Itu persis masalah yang saya miliki.

memiliki masalah yang sama - solusinya adalah menghapus variabel lingkungan Windows dengan kredensial AWS yang usang

Saya punya masalah juga di Python3 boto3.
Milik saya dimulai dengan =/

Saya menggunakan mesin virtual yang membuat Host Time&Region mirip dengan tamu Time&Region memecahkan masalah.

Hanya ingin berpadu bahwa ini memukul saya hari ini juga pada kunci yang baru dibuat - dan setelah banyak frustrasi, mendarat di sini dan melihat penyebutan / di kunci. Benar saja, itulah masalahnya - kunci baru tanpa itu berfungsi. Apa?!

Saya tidak percaya masalah ini dibuka pada tahun 2014 dan masih belum ada perbaikan untuk itu, bug ini memaksa saya untuk membuat satu set kredensial AWS baru untuk diri saya sendiri, saya bahkan mencoba menyandikan '/' tetapi tidak berhasil :(

Menghilangkan kredensial dengan "/" memperbaiki masalah bagi saya. Terima kasih kepada semua orang untuk menunjukkan ini.

Pukul saja ini di tahun 2020 sekarang. Kunci rahasia memiliki '+'.

aws-cli — dikembangkan oleh proyek aws — gagal dengan kunci aws yang valid... selama 6 tahun?

Masalah yang sama pada Januari 2020. Kunci rahasia memiliki karakter garis miring "/".

Saya membuat set kredensial baru, menggunakan konsol AWS IAM, dan memastikan bahwa kunci rahasia semuanya alfanumerik, tidak ada "/" tidak "+" dan seterusnya. Saya mengganti kunci rahasia lama saya dengan kunci rahasia baru, di file ~/.aws/credentials saya, lalu mencoba lagi.

Ini menyelesaikannya.

Masalah yang sama di sini pada tahun 2020. Tetapi saya tidak dapat menghapus karakter alfanumerik karena mereka adalah bagian dari kredensial saya sendiri, dan saya tidak mengendalikannya

Cukup buat ulang kredensial sampai Anda menyingkirkan karakter. Biasanya hanya perlu satu atau dua kali percobaan lagi.

Maurice

Dari: columb1a [email protected]
Dikirim: Selasa, 21 Januari 2020 13:47
Kepada: aws/aws-cli [email protected]
Cc: Maurice Bizzarri [email protected] ; Komentar [email protected]
Subjek: Re: [aws/aws-cli] kesalahan SignatureDoesNotMatch (#602)

Masalah yang sama di sini pada tahun 2020. Tetapi saya tidak dapat menghapus karakter alfanumerik karena mereka adalah bagian dari kredensial saya sendiri, dan saya tidak mengendalikannya


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di 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-576.897.684 & data = 02% 7C01% 7Cmaurice% 40bizzarrisoftware.com% 7Cf6f2e8a571954134b76b08d79ebb6bee% 7C9aa15552370449f5ac56c2850c165d32% 7C1% 7C0% 7C637152400117352225 & SDATA = 2Z6PQRSvKD0P8Eu0yrs15Ypi6GgtFvaDi7qewAq5yH4% 3D & dicadangkan = 0 , atau berhenti berlangganan 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 .

Saya pertama kali mengalami masalah batas waktu dan setelah memperbarui awscli saya mengalami masalah ini. Anda pikir 6 tahun sudah cukup untuk membuatnya bekerja...

saya juga memiliki aplikasi Vue.js yang menyebarkan ini melalui gitlab ke ember AWS S3 dapatkah seseorang memberi tahu saya apa yang harus dilakukan
msg: fatal error: Terjadi kesalahan (SignatureDoesNotMatch) saat memanggil operasi ListObjectsV2: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa kunci dan metode penandatanganan Anda.

Saya tidak memiliki karakter non-alfanumerik, tetapi bekerja dengan yang diprofilkan tidak berfungsi, untuk satu profil. Saya membuat ulang kredensial menggunakan konsol dan yang baru baru saja berfungsi.

Mendapatkan kesalahan seperti itu juga hari ini, dan membuat ulang kredensial tanpa karakter khusus ('+' atau '/') berfungsi untuk saya.

Saya masih memiliki masalah yang sama, tetapi itu terjadi tiba-tiba, saya bekerja dengan operasi Get and Put dan yang satu berfungsi, yang lain tidak. dan ya kunci rahasia saya tidak mengandung karakter khusus. ada bantuan? Saya pertama kali memanggil getIntent (Amazon lex model API) untuk mengambil checksum maksud, lalu memanggil putIntent untuk memperbarui maksud itu. Metode Get berfungsi (Tidak setiap saat) tetapi metode put muncul dengan masalah tanda tangan yang sama, sedangkan jika saya menghapus API metode Get dari kode, metode Put berfungsi 2 kali dari tiga.

Saya mengalami masalah ini, saya sarankan Anda untuk membuat kunci baru
dan konfigurasi ulang profil aws Anda

konfigurasi aws

ID Kunci Akses AWS [ * * * * QD5E]: AWS_ACCESS_KEY_ID
Kunci Akses Rahasia AWS [ * * * * ANjA]: AWS_SECRET_ACCESS_KEY
Nama wilayah default [eu-west-3]: AWS_REGION
Format keluaran default [json]: OUTPUT_FORMAT

Hai !

Saya mendapatkan masalah yang sama saat menggunakan URL yang telah ditandatangani sebelumnya yang dikembalikan ke klien saya
URL dibuat di server (untuk waktu terbatas). Servernya adalah python dan saya tidak melihat kesalahan apa pun di sana, tetapi kliennya adalah JS - hanya mendapatkan URL dan membukanya. Bagian dari URL adalah kredensial yang dihasilkan untuk sumber daya ini)

Kesalahannya hidup dan mati, jadi saya pikir ini terkait dengan apa yang dikatakan di sini tentang kunci khusus dalam kredensial, tetapi karena saya menggunakan kredensial yang dihasilkan di server - saya tidak dapat mengubahnya!

Adakah cara untuk menangani ini dalam kode? mengurai kunci spesial entah bagaimana?

Hai !

Saya mendapatkan masalah yang sama saat menggunakan URL yang telah ditandatangani sebelumnya yang dikembalikan ke klien saya
URL dibuat di server (untuk waktu terbatas). Servernya adalah python dan saya tidak melihat kesalahan apa pun di sana, tetapi kliennya adalah JS - hanya mendapatkan URL dan membukanya. Bagian dari URL adalah kredensial yang dihasilkan untuk sumber daya ini)

Kesalahannya hidup dan mati, jadi saya pikir ini terkait dengan apa yang dikatakan di sini tentang kunci khusus dalam kredensial, tetapi karena saya menggunakan kredensial yang dihasilkan di server - saya tidak dapat mengubahnya!

Adakah cara untuk menangani ini dalam kode? mengurai kunci spesial entah bagaimana?

@maya-harel Anda dapat mengubah kredensial dari IAM -> pengguna memilih pengguna yang telah Anda buat dan membuat kembali tab kredensial keamanan kunci rahasia.

juga waktu dalam kode sangat fatal, untuk setiap permintaan yang Anda buat di back-end, dapatkan waktu saat ini untuk menggunakannya di header untuk menghasilkan tanda tangan.

Selain itu, ada banyak saran buta "buat ulang kredensial IAM Anda" kepada pengguna yang secara eksplisit mengatakan itu bukan pilihan bagi mereka.

Ini tidak membantu pengguna, dan mengalihkan perhatian dari fakta bahwa ini adalah bug yang diketahui yang terus memengaruhi pengguna aws-cli yang mencoba menggunakan kredensial IAM yang valid.

Berlari ke dalam ini juga.
$aws --versi
aws-cli/1.16.300 Python/2.7.16 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.13.36

Kunci saya sepenuhnya alfa-numerik, tidak ada karakter khusus.

Kunci bekerja dari shell, namun ketika digunakan melalui Jenkins dalam target Makefile, kesalahan ini terjadi. Tidak yakin apa yang terjadi di sini.

Kunci rahasia saya memiliki / dan + di dalamnya. Mengalami masalah ini dan telah mencoba:

  • Melalui aws-cli > aws iam get-user (menggunakan file ~/.aws/credentials )
  • boto3 (melalui python 3.6.8)

    • Kunci yang di-hardcode

    • Variabel Lingkungan

    • Argumen boto3.Session(profile_name=PROFILE) (yang diambil dari ~/.aws/credentials)

Semua ini menghasilkan kesalahan SignatureDoesNotMatch .

Saat ini saya tidak dapat membuat ulang kunci.

Yang tidak saya mengerti adalah saya dapat menggunakan Protokol S3 di Cyberduck (https://cyberduck.io/) dan berfungsi seperti yang diharapkan. Bagaimana bisa?

Ini pasti salah satu bug paling membuat frustrasi yang pernah saya temui dan sangat disayangkan bahwa itu belum diperbaiki. Mendapatkan kredit tanpa "+" berhasil untuk saya di CircleCI.

Apakah masih macet? menghadapi masalah yang sama, wow saya tidak mungkin ...

Ya, itu membuat frustrasi. Kunci rahasia saya yang memiliki + tidak berfungsi di pipa Jenkins, tetapi ketika saya membuat yang baru, yang hanya memiliki beberapa / , berfungsi dengan baik.

Saya mengalami masalah ini pada versi paket awscli yang diinstal di Ubuntu 16.04. Saya memperbaikinya dengan menginstal awscli sebagai paket python pip.
Untuk instruksi, ikuti tautan ini di bawah bagian Menginstal AWS CLI menggunakan Python PIP

_ Masalah yang Dihadapi _

1) Menemukan kesalahan InvalidSignatureException setelah membuat ulang Kunci Akses
2) Log Kesalahan Sebagian seperti yang disediakan di bawah ini.

$ python SetupAWS.py list_things
Traceback (panggilan terakhir terakhir):
File "SetupAWS.py", baris 222, di
daftar_hal()
File "SetupAWS.py", baris 182, di list_things
hal = client.list_things()['hal']
File "c:Program Files (x86)Python38-32libsite-packagesbotocore-1.16.6-py3.8.eggbotocoreclient.py", baris 316, di _api_call
kembalikan diri._make_api_call(nama_operasi, kwargs)
File "c:Program Files (x86)Python38-32libsite-packagesbotocore-1.16.6-py3.8.eggbotocoreclient.py", baris 626, di _make_api_call
naikkan error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: Terjadi kesalahan (InvalidSignatureException) saat memanggil operasi ListThings: Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa Kunci Akses Rahasia AWS dan metode penandatanganan Anda. Lihat dokumentasi layanan untuk detailnya.

_ Analisis Akar Penyebab _

1) Seperti yang disarankan oleh banyak orang di komentar mereka di atas, kehadiran "+" di Kunci Akses Rahasia saya menghasilkan kesalahan di atas.

_ Resolusi _

1) Membuat Kunci Akses baru sebagai Pengguna IAM dan memverifikasi bahwa Kunci Akses Rahasia baru tidak berisi "+" di dalam string.
2) Jalankan perintah
3) Jalankan perintah

$ python SetupAWS.py list_things
[{'thingName': 'myThingName', 'thingArn': 'myThingArn', 'attributes': {}, 'version': 1}]

Masalah ini telah terbuka selama enam tahun, dan saya berterima kasih atas kesabaran, ketekunan, dan informasi yang Anda berikan. Beberapa penyebab mendasar telah diidentifikasi melalui komentar Anda (https://github.com/aws/aws-cli/issues/602#issuecomment-520469209) dan dikompilasi ke dalam bab Kesalahan Pemecahan Masalah Panduan Pengguna Baris Perintah . Penyebab ini termasuk clock skew dan beberapa sistem operasi yang salah menangani kunci dengan karakter khusus.

Saya mencoba untuk mereproduksi ini menggunakan sejumlah lingkungan yang berbeda. Saya menggunakan Ubuntu 16.04, Ubuntu 18.04, dan Amazon Linux 2, dengan Python 3.6.8 dan 3.8.3. Sementara banyak komentator menggunakan Python 2, saya tidak mencoba mereproduksi karena tidak lagi didukung. Saya menggunakan aws-cli v1 terbaru (1.18.80 pada saat penulisan) serta versi yang lebih lama (1.11.78) yang dirujuk dalam masalah ini. Saya menggunakan skrip yang disediakan (https://github.com/aws/aws-cli/issues/602#issuecomment-281866173) oleh @jamesls yang membuat pasangan kredensial baru hingga menemukan satu dengan karakter khusus dan membiarkannya berjalan hingga masing-masing satu jam. Saya tidak mengalami kesalahan SignatureDoesNotMatch . Saya sesekali menerima kesalahan AuthFailure pada perintah explain-instances, tetapi percobaan ulang perintah dengan kredensial yang sama berhasil.

Banyaknya komentar menyulitkan pengguna baru yang datang ke masalah ini untuk menemukan permintaan dari tim pengembang kami untuk saran pemecahan masalah. Untuk membantu tim kami dan komunitas dalam menentukan penyebab kesalahan ini, saya menutup masalah ini dan membuat template masalah GitHub khusus yang menyertakan persyaratan panduan dan komentar untuk pengguna yang mengalami kesalahan ini.

Jika Anda mengalami kesalahan ini, buka tab masalah, klik tombol “Masalah Baru”, dan gunakan template untuk laporan kesalahan SignatureDoesNotMatch (atau gunakan tautan di bawah).

Karena variasi lingkungan pengguna tempat kesalahan ini terjadi, harap ajukan masalah terpisah alih-alih mengomentari yang sudah ada.

Klik di sini untuk mengajukan laporan kesalahan SignatureDoesNotMatch

Apakah halaman ini membantu?
0 / 5 - 0 peringkat