はじめに
Google Cloud Storage(以下GCS)はブラウザから簡単に操作ができましたが、GUIソフトで操作した方が慣れてますよね。
実はGCSはS3互換モードが存在して、それを使えば簡単にアクセスできるのですが、あまり知られてないかも、ということで紹介します。
23/4/8 追記
こちらの記事がより詳細です
https://zenn.dev/google_cloud_jp/articles/winscp-for-google-cloud-storage
クラウド側でS3アクセスを有効化
まず、GCP側でS3用のアクセスキーを作成します。
アクセスキーは2通りの方法で払い出すことができます。
方法1: IAMからStorageアクセス専用のユーザを作成し、紐づける(<=おすすめ)
方法2:デフォルトプロジェクトにしてキーを払い出す
どちらの方法でも、まずGCPの管理画面のCloud Storageページを開いてください。
「設定」-> 「相互運用性」を開きます。
方法1: IAMからStorageアクセス専用のユーザを作成の場合
AWSなどでもおなじみの専用ユーザを作成する方法です。
「サービスアカウントHMAC」の「サービスアカウント用にキーを作成」=>「新しいアカウントを作成」をクリック
適当にサーバアカウント名を付けます。
図では、"s3-full-access"です。
権限は、「ストレージ管理者」を割り振ります。
ユーザを作成し、「アクセスキー」「シークレット」を忘れずに、メモしましょう。
これで、作成は完了です。
方法2:デフォルトプロジェクトにしてキーを払い出す
そのまま下にスクロールして、
「相互運用のデフォルトプロジェクト」で、デフォルトプロジェクトに設定します。
「ユーザーアカウントのアクセスキー」の「鍵を作成」ボタンを押すと、 アクセスキー
と シークレットキー
を発行できました。
このページでいつでもキーを確認することができます。
(アクセスキーの発行は、これ以外に同じページにある「サービスアカウントのアクセスキー」でも発行できます。
こちらを使えば、権限をコントロールできます。)
迷うところはなかったかなと思います。
WinScpでアクセスする
WinScpの「ホスト名」にリクエストエンドポイント、つまり
https://storage.googleapis.com
のURLを入れます。
最新のWinScpでは、転送プロトコルが自動でS3になります。
上で発行した、 アクセスキー
と シークレットキー
を入れてログインするとバケットの一覧が表示されます。
おまけ:Cyberduckでアクセスする
新規接続で、
-
Amazon S3
を選択 - サーバに、
storage.googleapis.com
を入れる。(ここで、https://から入力するとS3でないサーバに切り替わってしまう) - アクセスID に アクセスキー を入力
- シークレットアクセスキー に シークレット を入力
これで、接続できます。
ファイルアップロードエラー(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
を "なし" にする。
おまけ2:S3 Browserでアクセスする
メニューの「Accounts」->「Add new account」
1.接続先の名前(適当に自分がわるものを入れる)
2.「S3 Compatible Storage」を選択
3. https://storage.googleapis.com
を入力
4. アクセスキー を入力
5. シークレット を入力
全部、入力したら"6"を押して、接続先を作る。
メニューの「Accounts」から、先ほど追加したメニューに切り替えれば接続完了
終わりに
S3互換モードはいろいろなツールの連携に役立ちそうです。
また、簡単にキーの発行と削除ができるので、デザイナさんなどシステムに関わない人にストレージを見てもらうときにも便利ですね。
以上です。