2017-03-03 9 views
0

this aws cookbookの使い方はよく分かりません。私の目標は、s3バケットからファイルをダウンロードすることです。 documentationによると、私は私のレシピでこのコンテンツを設定しました: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 

すべての値が正しく装着されていると私はまた、AWS-CLIを使用してそれらをテストしようとしました。それにもかかわらず、シェフのクライアントは次のメッセージを受け取ります。

========================================================================= 
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" 

これをどのようにデバッグできますか?

EDIT

私は、AWSコマンドクライアントを使用してそれをテストしてみました。最初にaws configureを使用して資格情報を設定しました。要求された値を提供しました。したがって、このコマンド:

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

が正しく実行され、ファイルがダウンロードされます。

EDIT

より詳細なエラーメッセージ:

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

エラーは、あなたはバケットにアクセスできないと言います。アカウントのawsキーと権限を再度確認してください。 –

+0

私はaws-cliでテストしました。私は行動で投稿を編集しました。すべてが正しいと思われます... – Jordi

+0

remote_path 'artifacts/authz/authz.war'が違う –

答えて

0

ここremote_path '/authz/authz.war'

から最初のスラッシュを削除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

私も試しました。それにもかかわらず、エラーは残ります。 – Jordi

0

あなたは、あなたがAWS上で、少なくともバケットとあなたが必要とする特別のファイルに読んだそれに接続されている適切なIAMポリシーを持っている場合は、あなたのシステムを確保する必要が禁止されたエラーに

403 "Forbidden" 

を持っています。

関連する問題