VPCエンドポイントポリシーでVPC内からアクセス可能なバケットを制限する場合、ls するには バケットの指定が必要で、Put/Get をするには "/*" の指定が必要。
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": [ "arn:aws:s3:::20190331-az-test", "arn:aws:s3:::20190331-az-test/*" ] } ] }
検証結果
バケットのみ指定
- VPCエンドポイントポリシー
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "arn:aws:s3:::20190331-az-test" } ] }
- ls はできる
$ aws s3 ls s3://20190331-az-test PRE dir1/ 2021-08-24 16:26:04 10485760 10mb.dat 2020-04-30 11:08:55 7687 cfn_glue_pandas.yaml 2020-04-30 11:08:55 79 glue_pandas.py
- cp はできない
$ aws s3 cp 10mb.dat s3://20190331-az-test/ upload failed: ./10mb.dat to s3://20190331-az-test/10mb.dat An error occurred (AccessDenied) when calling the CreateMultipartUpload operation:Access Denied
"/*" のみ指定
- VPCエンドポイントポリシー
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "arn:aws:s3:::20190331-az-test/*" } ] }
- ls はできない
$ aws s3 ls s3://20190331-az-test An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
- cp はできる
$ aws s3 cp 10mb.dat s3://20190331-az-test/ upload: ./10mb.dat to s3://20190331-az-test/10mb.dat
両方指定
- VPCエンドポイントポリシー
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": [ "arn:aws:s3:::20190331-az-test", "arn:aws:s3:::20190331-az-test/*" ] } ] }
- ls はできる
$ aws s3 ls s3://20190331-az-test PRE dir1/ 2021-08-24 16:37:31 10485760 10mb.dat 2020-04-30 11:08:55 7687 cfn_glue_pandas.yaml 2020-04-30 11:08:55 79 glue_pandas.py
- cp はできる
$ aws s3 cp 10mb.dat s3://20190331-az-test/ upload: ./10mb.dat to s3://20190331-az-test/10mb.dat
おまけ
- プレフィックスまで指定したら、
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "arn:aws:s3:::20190331-az-test/dir1" } ] }
- それ以下を ls できるわけではない
$ aws s3 ls s3://20190331-az-test/dir1 An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied