GCP(Google Cloud Platform)のStorageをS3モードでWinScpでつないで操作する


はじめに

Google Cloud Storage(以下GCS)はブラウザから簡単に操作ができましたが、GUIソフトで操作した方が慣れてますよね。
実はGCSはS3互換モードが存在して、それを使えば簡単にアクセスできるのですが、あまり知られてないかも、ということで紹介します。

クラウド側でS3アクセスを有効化

まず、GCP側でS3用のアクセスキーを作成します。

GCPの管理画面のCloud Storageページを開いてください。
「設定」-> 「相互運用性」を開きます。

下にスクロールして、
「相互運用のデフォルトプロジェクト」で、デフォルトプロジェクトに設定します。

「ユーザーアカウントのアクセスキー」の「鍵を作成」ボタンを押すと、 アクセスキーシークレットキー を発行できました。
このページでいつでもキーを確認することができます。

(アクセスキーの発行は、これ以外に同じページにある「サービスアカウントのアクセスキー」でも発行できます。
こちらを使えば、権限をコントロールできます。)

迷うところはなかったかなと思います。

WinScpでアクセスする

WinScpの「ホスト名」にリクエストエンドポイント、つまり
https://storage.googleapis.com
のURLを入れます。

最新のWinScpでは、転送プロトコルが自動でS3になります。
上で発行した、 アクセスキーシークレットキーを入れてログインするとバケットの一覧が表示されます。

おまけ:Cyberduckでアクセスする

新規接続で、

これで、接続できます。

ファイルアップロードエラー(Cannot insert legacy ACL)が出たら

Status code: 400, reason phrase: Invalid argument. Cannot insert legacy ACL for an object when uniform bucket-level access is enabled. Read more at...

CyberduckがACLの変更をしようとして拒否されている。
変更を行わない設定にすることで、対応可能。

メニューの編集 -> 環境設定
S3 の Default ACL を "なし" にする。

終わりに

S3互換モードはいろいろなツールの連携に役立ちそうです。
また、簡単にキーの発行と削除ができるので、デザイナさんなどシステムに関わない人にストレージを見てもらうときにも便利ですね。

以上です。