#はじめに
VPC Service Control(VPC SC)でGCSを制限するサービスに追加した時の、公開バケットに対するアクセス制限について確認してみました。
#結論
gsutilなどのAPIを使ったアクセスは、VPC SCで制限されます。
curlなどで、直接オブジェクトにアクセスした場合は、VPC SCのアクセス制御は適用されず、ファイルの取得が可能です。
#理由
VPC SCは、指定した制限付きのGCPサービスにアクセスする時にアクセス制御されます。つまり、認可時の制御となります。
Google Cloud Consoleにログインするときは、認証には影響がありません。
gsutilなどのAPIを使ったアクセスは、認可設定が確認されますが、
公開バケットに対して、curlなどで、直接オブジェクトにアクセスした場合は、認可設定が確認されないため、対象のファイルにアクセス可能となります。
#試してみる
VPC SCを設定して、VPCとTrusted network外からのアクセスが拒否されることを確認する。
$ gsutil ls
AccessDeniedException: 403 Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: 14455679eb6241a0
curlでファイルを取得してみる。
$ curl -X GET -o "/home/atsum/istio.png" "https://storage.googleapis.com/storage/v1/b/my-pubic-bucket-*****/o/istio.png?alt=media"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1550 100 1550 0 0 151k 0 --:--:-- --:--:-- --:--:-- 151k
$ ls istio.png
istio.png