2016-05-18 10 views
0

S3の指定されたバケットにウェブサイトの作成/アップロードを自動化しようとしています。awscliを使用して静的なウェブサイトポリシーをバケットに追加/修正することはできますか?

言ってやる例えば、私は、このポリシーテンプレートがあります。

{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
    "Sid":"PublicReadGetObject", 
     "Effect":"Allow", 
     "Principal": "*", 
     "Action":["s3:GetObject"], 
     "Resource":["arn:aws:s3:::example-bucket/*" 
     ] 
    } 
    ] 
} 

私が使用してバケットを作成します。私は上記のようなJSON文字列からこのバケットにポリシーを適用するにはどうすればよい

aws s3api create-bucket --bucket $bucket --region eu-central-1 --create-bucket-configuration LocationConstraint=eu-central-1 

また、どのようにenable website hostingに - すべてこれawscliアマゾンGUIを使用してですか?

答えて

1

aws s3api下のコマンドを参照してください。

$ aws s3api help | egrep -i "website|policy" 
     o delete-bucket-policy 
     o delete-bucket-website 
     o get-bucket-policy 
     o get-bucket-website 
     o put-bucket-policy 
     o put-bucket-website 

自動化するために、私は言語に落下お勧めします。 Pythonのboto3は素晴らしく、RubyとJavaのSDKも非常に優れています。

+0

ありがとう!私は宿題をうまくやっていないことが分かりました:-) – fips

1

誰もが、このアプローチに興味を持っている場合は、私は(今のところ)を使用して終わった次のコマンドを実行します。

bucket=$1 
region=$2 

# Create bucket 
aws s3api create-bucket --bucket $bucket --region $region --create-bucket-configuration LocationConstraint=$region 

# Apply policy to allow get access to public 
policy=$(cat /tmp/policy) 
aws s3api put-bucket-policy --bucket $bucket --policy "$policy" 

# Enable static hosting 
aws s3 website s3://$bucket/ --index-document index.html 

# Deploy app production distribution to new bucket 
aws s3 cp dist/prod/ s3://$bucket --recursive 

# See the results 
open "http://$bucket.s3-website.$region.amazonaws.com" 

しかし、これは多くのために非常に複雑に成長することができますので、私は他の答えを受け入れますよ高度な要件 - パラメータの異なる組み合わせを簡単に受け入れるPythonスクリプトでboto3を使用するのと比べてバケットの作成をスキップし、設定からデフォルト領域を読み込みます。

関連する問題