参考
S3 bucketに紐付いたIAMユーザ作成について
middleman build 後のS3との同期(およびconfig.rb記述)について
S3 - Bucket
- blog.ngsw.jp
- Enable website hosting
- Index Document: index.html
- Error Document: index.html
とした。
S3 bucket policy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{
"Version": "2008-10-17",
"Id": "PolicyXXXXXXXXXXXXX",
"Statement": [
{
"Sid": "StmtXXXXXXXXXXXXX",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::blog.ngsw.jp/*"
}
]
}
|
IAM
当該S3Bucket専用ユーザを作成した
Users
- middleman-user (作成した後に削除した)
- Access Key ID: AKIAIPY2CC2TIZYBK2TQ
- Secret Access Key:
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
Groups
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::blog.ngsw.jp"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::blog.ngsw.jp/*"
]
}
]
}
|
当初上半分の
1
2
3
4
5
6
7
8
9
|
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::blog.ngsw.jp"
]
}
|
の設定はしていたのだけれど、
下半分である、
1
2
3
4
5
6
7
8
9
|
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::blog.ngsw.jp/*"
]
}
|
の設定がなかったので、
当該S3 bucketにアクセスできずはまっていた
うまく行かなかった場合には確認してみていただきたい
middleman-sync 設定
config.rb
1
2
3
4
5
6
7
8
9
10
|
activate :sync do |sync|
sync.fog_provider = 'AWS'
sync.fog_directory = 'blog.ngsw.jp'
sync.fog_region = 'ap-northeast-1'
sync.aws_access_key_id = 'AKIAITLPF4IIJYZSTHCA'
sync.aws_secret_access_key = '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'
sync.existing_remote_files = 'keep'
sync.gzip_compression = false
sync.after_build = false
end
|
fog のエラーがでた
1
|
fog: the specified s3 bucket name(blog.ngsw.jp) contains a '.' so is not accessible over https as a virtual hosted bucket, which will negatively impact performance. For details see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html
|
middleman-sync は S3 bucket name が FQDN ドメイン名形式してるとこけるらしい。うける
さらに参考にした
middleman s3_sync 設定
config.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
|
activate :s3_sync do |s3_sync|
s3_sync.bucket = 'blog.ngsw.jp'
s3_sync.region = 'ap-northeast-1’
s3_sync.aws_access_key_id = 'AKIAIPY2CC2TIZYBK2TQ'
s3_sync.aws_secret_access_key = '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'
s3_sync.delete = false
s3_sync.after_build = false
s3_sync.prefer_gzip = true
s3_sync.path_style = true
s3_sync.reduced_redundancy_storage = false
s3_sync.acl = 'public-read'
s3_sync.encryption = false
end
|
で見事差分だけアップロードしてくれて大変うれしい