XML API + 署名付きURLで使用する、サービスアカウントキーの取得方法の説明です。
おしながき
サービスアカウントキーの取得.
概要.
署名付きURLをサービスアカウント取得するためには、まずサービスアカウントキーを取得します。サービスアカウントキーは、取得してしまえば削除するまで有効です。
このサービスアカウントキーの取得手順は、アップロード/ダウンロードで共通ですので、このページで説明します。
キーの取得手順.
最初に準備として、サービスアカウントキーを取得します。GCPコンソールのメニューから「APIとサービス」-「認証情報」とたどって、「認証情報」のページを表示します。設定済みの認証情報があれば、そのリストが表示され、画面上部に「認証情報を作成」のボタンが表示されます。。何も認証情報がない場合は、作成を案内するメッセージが表示されます。
「認証情報を作成」のボタンを押すと...
右の様にドロップダウンリストが表示されるので、「サービスアカウントキー」を選択します。
「サービスアカウントキーの作成」画面になります。
「サービスアカウント」のドロップダウンリストは、デフォルトのサービスアカウントを使用する場合は、署名付きURLの生成を実装するフロントエンドに応じて、GAEまたはGCEを選択します。
デフォルトのサービスアカウントではなく、新規にサービスアカウントを作っても構いません。その場合は「新しいサービスアカウント」を選択します。
すると右の様に入力項目が増えます。入力が必須なのは、「サービスアカウント名」と「サービスアカウントID」の2つです。このアカウントの目的を表す名称などが良いと思います。
「サービスアカウント名」は日本語も入力可能でした。
「サービスアカウント名」を入力すると勝手に「サービスアカウントID」も候補を入力してくれますが、自分で入力しなおすこともできます。
さらに、GAE/GCEのデフォルトサービスアカウントと違って、役割を指定することもできます。役割を限定できるので、デフォルトサービスアカウントを使用するより安全かもしれません。署名付きURLは期限と認証情報の範囲内で何でもできてしまうので、役割ベースで権限を限定するほうが、望ましいと思います。
役割は1つのサービスアカウントに複数設定できます。
アップロード/ダウンロードのみ許可するなら、「ストレージ」-「ストレージオブジェクト管理者」のみでいいと思います。
「キーのタイプ」は、推奨されているJSONで十分と思います。これはJSON APIとは関係なく、保存される秘密鍵のファイルフォーマットです。
以上の入力が終わったら、「作成」ボタンを押します。数秒で右の様に完了のメッセージが表示されます。同時にキーを保存したファイルが、ブラウザによってダウンロードされています。このファイルは2度と作成することができないようなので、なくさないようにローカルの開発環境に保存してください。
アプリケーションへの配置.
取得したサービスアカウントキーは、署名付きURLの生成を実装するアプリケーションから読み出せるように、アプリケーションのリソースにします。
Eclipseを使用している場合は、WEB-INFディレクトの下に配置します。複数のキーをまとめるサブディレクトリを作っておくといいと思います。読み出すときのパスは、以下の様に「WEB-INF」から相対パスで指定します。
WEB-INF/サブディレクトリ名(作るのなら)/保存したサービスアカウントキーのファイル名
Copyright 2005-2023, yosshie.