期間を指定した限定公開

バケットポリシーに以下の設定を追加すれば、

public/ のファイルにアクセスできるようになる。


{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"AWS": "*"},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/public/*",
"Condition": {
"IpAddress": {"aws:SourceIp": [
"xxx.xxx.xxx.xxx/32",
"192.168.1.0/24" <- VPC内からS3へのアクセスを想定しているらしい
]},
"Bool":{
"aws:SecureTransport":"true"
},
"DateGreaterThanEquals":{
"aws:CurrentTime":"2014-04-13T12:17:00+09:00"
},
"DateLessThan":{
"aws:CurrentTime":"2014-04-13T12:30:00+09:00"
}
}
}
]
}

ちなみに、バケットポリシーとIAMユーザのPermissionと同じようなことができるけど、

  • ユーザに関連した設定はユーザPermission
  • ファイルに関連した設定はバケットポリシー

というように分けておくと自分でも後々混乱しないような気がする。