2017-03-03 7 views
0

Ich nicht ganz herausfinden, wie man this aws cookbook verwenden. Mein Ziel ist es, eine Datei aus meinem S3-Bucket herunterzuladen. Nach documentation habe ich diesen Inhalt in meinem Rezepte gesetzt:Chef aws Client

aws = data_bag_item('aws', 'dev') 

aws_s3_file '/tmp/authz.war' do 
    bucket 'living-artifacts-dev' 
    remote_path '/authz/authz.war' 
    aws_access_key aws['aws_access_key_id'] 
    aws_secret_access_key aws['aws_secret_access_key'] 
    region 'eu-central-1' 
end 

Alle Werte korrekt aufgefüllt werden, und ich habe auch versucht, sie zu testen aws-cli verwenden. Dennoch erhält der Chef-Client diese Meldung:

========================================================================= 
Error executing action `create` on resource 'aws_s3_file[/tmp/authz.war]' 
========================================================================= 

Net::HTTPServerException 
------------------------ 
remote_file[/tmp/authz.war] (/var/chef/cache/cookbooks/aws/providers/s3_file.rb line 40) had an error: Net::HTTPServerException: 403 "Forbidden" 

Wie kann ich dies debuggen?

EDIT

ich es mit aws Befehl Client getestet haben. Ich habe zuerst Anmeldeinformationen mit aws configure festgelegt und ich habe angeforderte Werte bereitgestellt. Also, dieser Befehl:

aws s3 cp s3://living-artifacts-dev/authz/authz.war authz.war 

korrekt ausgeführt und Datei heruntergeladen wird.

EDIT

Detailliertere Fehlermeldung:

==> default: * aws_s3_file[/tmp/authz.war] action create 
==> default: 
==> default:  * chef_gem[aws-sdk] action install 
==> default: [2017-03-03T11:25:16+00:00] INFO: chef_gem[aws-sdk] installed aws-sdk at ~> 2.2 
==> default: 
==> default:  - install version ~> 2.2 of package aws-sdk 
==> default: [2017-03-03T11:25:16+00:00] INFO: Remote and local files do not match, running create operation. 
==> default:  * chef_gem[aws-sdk] action install (up to date) 
==> default:  * remote_file[/tmp/authz.war] action create 
==> default: [2017-03-03T11:25:16+00:00] INFO: HTTP Request Returned 403 Forbidden: 
==> default: [2017-03-03T11:25:16+00:00] WARN: remote_file[/tmp/authz.war] cannot be downloaded from https://living-artifacts-dev.s3.e 
u-central-1.amazonaws.com/authz/authz.war?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=sFo6JjohgYi%2BYi4Ut7pTy9EGVDCG89IROX%2Bw7E 
RR%2F20170303%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20170303T112516Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signatur 
e=f3c2b371ad4e1fe24745459adf0463c708e0363a139b598b04e40789c43ded7d: 403 "Forbidden" 
+0

Der Fehler besagt, dass Sie keinen Zugriff auf den Bucket haben. Überprüfen Sie Ihre aws-Schlüssel und Berechtigungen für das Konto. –

+0

Ich habe es mit 'aws-cli' getestet. Ich habe den Beitrag mit Verhalten bearbeitet. Es scheint, alles ist richtig ... – Jordi

+0

remote_path 'artifacts/authz/authz.war' ist anders –

Antwort

0

Entfernen Sie den ersten Schrägstrich von remote_path '/authz/authz.war'

Hier ist das Beispiel aus dem AWS cookbook documentation:

aws_s3_file '/tmp/foo' do 
    bucket 'i_haz_an_s3_buckit' 
    remote_path 'path/in/s3/bukket/to/foo' 
    aws_access_key aws['aws_access_key_id'] 
    aws_secret_access_key aws['aws_secret_access_key'] 
    region 'us-west-1' 
end 
+0

Ich habe es auch versucht. Der Fehler bleibt dennoch bestehen. – Jordi

0

Sie haben einen Fehler verboten

403 "Forbidden" 

Sie müssen Ihr System, um sicherzustellen, wenn auf AWS eine entsprechende IAM Politik zu ihm angebracht hat, die an der Schaufel mindestens GELESEN und speziell die Datei, die Sie benötigen.

Verwandte Themen