Google Cloud Storage のGUIクライアント Cyberduck でアップロード

クラウド
クラウド
スポンサーリンク

Cyberduck(サイバーダック)は、FTP、SFTP、WebDAV、AWS S3、Google Cloud Storage などさまざまなプロトコルやストレージサービスに対応したクライアントソフトです。macOS と Windows に対応しています。黄色いアヒルのアイコンが印象的ですね。

Google Cloud Storage を GUI(グラフィカルユーザインターフェース)で使えるクライアントソフトを探していたのですが、現在(2017年7月14日)のところこの Cyberduck くらいしか無いようです。そこで今回は、Cyberduck で Google Cloud Storage に接続するまでの手順と、他のユーザーとバケットを共有するための権限「アクセス制御リスト(ACL)」の設定方法をまとめてみました。

Cyberduck のインストール

Cyberduck のインストーラーは公式のWEBサイトからダウンロードできます。Cyberduck は基本的には無料で使うことができますが、Microsoftストアまたは MacAppストアから購入することもできますので、セキュリティ的にも安心して利用できます。

Cyberduckの公式WEBサイト

macOS の場合は、ダウンロードして解凍すると Cyberduckアプリそのものになりますので、アプリケーションフォルダに移動すればインストール完了です。

Cyberduckアプリをアプリケーションフォルダに移動

下は Cyberduck(バージョン6.1.0)が対応しているプロトコルやストレージサービスです。よく使われているサービスにはほぼ対応していますね。

Cyberduckが対応しているプロトコルやストレージサービス

Cyberduck で Google Cloud Storage に接続

Google Cloud Storage は OAuth 2.0 を使って認証と承認を行いますので、アクセスキーなどを発行する必要はありません。Cyberduckに「x-goog-project-id」とよばれる番号を入力するだけでOKです。

接続のテスト用に「sample-20170713」というバケットを1つ作成しています。

Google Cloud Storageに作成されているバケット

まず Google Cloud Platform のコンソールで「x-goog-project-id」を確認します。コンソール左上の「≡」メニューから「Storage」→「設定」を選択してください。

「Storage」→「設定」を選択

「プロジェクトアクセス」タブを選択すると「x-goog-project-id」が確認できますので、この番号を控えておきます。

x-goog-project-idを確認

Cyberduck を起動して「ブックマーク」→「新規ブックマーク」を選択します。(「新規接続」でも接続できますが詳細設定ができませんので、ブックマークからの接続をオススメします)

「Google Cloud Storage」を選択して、先ほど控えた x-goog-project-id の番号を「Project ID or Number」に入力したら、このウィンドウを閉じます。

Google Cloud Storageへの接続設定

Google Cloud Storage への接続ブックマークが作成されますので、クリックして接続します。

Google Cloud Storage への接続ブックマークをクリック

ブラウザが開き OAuth 2.0 認証処理が行われます。複数のアカウントが表示されている場合は Google Cloud Platform で使っているのと同じ Googleアカウントを選択します。

OAuth2.0認証に使うGoogleアカウントを選択

Cyberduckからの権限リクエストを許可しますので「許可」をクリックします。

Cyberduckからの権限リクエストを許可

認証コードが表示されますので、コピーします。

認証コードの表示

Cyberduckに戻って「Authorization code」に先ほどコピーした認証コードをペーストして「ログイン」をクリックします。

Authorization codeをペーストしてログイン

Google Cloud Storage のバケットが表示されていればログイン完了です。これで Cyberduck からファイルのアップロードやダウンロードなどを行うことができます。

Google Cloud Storage にログインしバケットが表示

Google Cloud Storage のアクセス制御リスト(ACL)の設定

複数のユーザーで Google Cloud Storage のバケットを共有する場合は、バッケットのアクセス制御リスト(ACL)を設定します。アクセスを許可するユーザーは、Googleアカウントや Googleグループなどの色々な方法で指定することができます。(アクセスを許可するユーザーは、Googleアカウントを持っている必要があります)

今回は Googleグループで、バッケットのアクセス制御リスト(ACL)を設定してみます。

Googleグループの作成

適当な Googleグループを作成します。グループのメールアドレスをアクセス制御リストに設定しますのでメモしておきましょう。

Googleグループの作成

右上の設定メニューから「グループ設定」を選択します。

グループ設定を選択

「メンパー」→「メンバーを直接追加」を選択し、バケットへのアクセスを許可する Googleアカウントのメールアドレスと簡単な招待メッセージを入力して「追加」をクリックします。

メンバーを直接追加

Googleグループの作成は以上です。Google Cloud Platform のコンソールに戻ります。

バケットのアクセス制御リスト(ACL)の設定

バケットのアクセス制御リスト(ACL)の設定は、コンソールの「バケットの権限を設定」でできるのですが、デフォルトオブジェクトACLの設定はコンソールからはできないため、gsutil コマンドでバケットのアクセス制御リストを設定します。

コンソールのメニューバーから Google Cloud Shell を開きます。

Google Cloud Shell を開く

はじめに gcloud コマンドで、プロジェクトを Google Cloud Storage バケットを作成したプロジェクトに切り替えます。

gcloud config set project <プロジェクトID>

先ほど作成した Googleグループのメールアドレス(sample-20170713@googlegroups.com)にバケットの所有者権限(OWNER)を追加します。

gsutil acl ch -g sample-20170713@googlegroups.com:OWNER gs://sample-20170713
gsutil defacl ch -g sample-20170713@googlegroups.com:OWNER gs://sample-20170713

(参考)権限を削除する場合は、次のようなコマンドになります。

gsutil acl ch -d sample-20170713@googlegroups.com gs://sample-20170713
gsutil defacl ch -d sample-20170713@googlegroups.com gs://sample-20170713

Cyberduck の接続設定にバケット名を指定

Cyberduckからアクセス制御リストに設定したユーザーでバケットに接続する場合は、必ず接続先のバケット名をパスに指定してください。

Cyberduck の接続設定にバケット名を指定

バケット名を指定しない場合、Google Cloud Storage のルートに接続する権限はないため、下のようなエラーが発生します。

Cyberduck のエラーメッセージ

おわりに

Google Cloud Storage は AWS S3 のように静的ウェブサイトをホスティングすることもできます。もし興味がありましたら「Google Cloud Storage 独自ドメインで静的ウェブサイトをホストする」の記事も読んでみてくださいね。

コメント

タイトルとURLをコピーしました