こちらはMagiqをBigQueryに接続し利用開始するための初期設定手順です。
操作説明動画の下に文章での説明が続くので、双方を参照しながら作業を進めてください。
※一連の作業はBigQueryの管理者権限を持つユーザー(アカウント)で実施してください。
ステップ1:ロールの作成
Google Cloudの各種機能に特定の操作を許可するする権限を束ねたものを「ロール」といい、ユーザーが独自に権限を選択してロールを作成できます。
まず、MagiqがBigQueryを操作するのに必要な権限を束ねたロールを作成します。
Magiqの権限構成には以下の2つのアプローチがあります。
- 特定のデータセットに対して必要最低限の権限のみを付与する。
- プロジェクト全体にMagiqで必要な権限を付与する。
1番の場合は、以下のステップ1-1と1-2に従ってください。
2番の場合は1-3のみ実施してください。
1-1: プロジェクト用権限を作成
特定のデータセットに対して必要最低限の権限を付与する場合でも、プロジェクト全体に関わる権限付与が必要です。以下の手順に従って進めてください。
これから紹介する権限は一例です。最低限、以下の権限があれば動作するものとしていますが、お使いの環境やポリシーに合わせて調整してください。
- ナビゲーションメニューから「IAMと管理」を選択し、「ロール」をクリック
- 画面上部の「+CREATE ROLE」をクリックし、ロール作成画面へ進む
- タイトルに「magiq_プロジェクト用」と入力
- 「+ADD PERMISSIONS」をクリックし、以下の権限にチェックを入れ、追加をクリック
※「プロパティ名または値を入力」に下記文字列を入力するとフィルタされて表示されます。- bigquery.jobs.create
- bigquery.transfers.get
- bigquery.tables.delete
- 「作成」をクリック
サービスアカウント一覧画面が戻り、今作成したロールが一覧に表示されていれば成功です。
ここまでの操作でロールが1つ作成されました。次に、Magiqで操作するデータセットに適用するロールを作成します。
1-2: データセット用権限を作成
1-1と同様に、ロールの一覧画面から画面上部の「+CREATE ROLE」をクリックし、ロール作成画面へ進みます。
1-1はタイトルと権限の設定が異なります。
- タイトル:
- magiq_データセット用
- 権限:
- bigquery.datasets.get
- bigquery.tables.create
- bigquery.tables.get
- bigquery.tables.getData
- bigquery.tables.list
- bigquery.tables.update
- bigquery.tables.updateData
- bigquery.transfers.update
1-1と同じように「作成」をクリックし、一覧画面に戻った際に作成したロールが表示されていれば成功です。
1-3: プロジェクト用とデータセット用を分けない場合
プロジェクト全体にMagiqの権限を適用する場合には、以下の手順を実施してください。
- ナビゲーションメニューから「IAMと管理」を選択し、「ロール」をクリック
- 画面上部の「+CREATE ROLE」をクリックし、ロール作成画面へ進む
- タイトルに「magiq_プロジェクト用」と入力
- 「+ADD PERMISSIONS」をクリックし、以下の権限にチェックを入れ、追加をクリック
※「プロパティ名または値を入力」に下記文字列を入力するとフィルタされて表示されます。- bigquery.jobs.create
- bigquery.transfers.get
- bigquery.datasets.get
- bigquery.tables.create
- bigquery.tables.get
- bigquery.tables.getData
- bigquery.tables.list
- bigquery.tables.update
- bigquery.tables.updateData
- bigquery.transfers.update
- 「作成」をクリック
一覧画面に戻り、今作成したロールが表示されていれば成功です。
ステップ2: サービスアカウントの作成
ステップ1で作成したロードを付与するアカウントを作成します。
- ナビゲーションメニューから「IAMと管理」を選択し、「サービスアカウント」をクリック
- 画面上部の「+CREATE SERVICE ACCOUNT」をクリックし、アカウント作成画面へ進む
- サービスアカウント名に「magiq」と入力(他の名称も可)
- 「作成して続行」をクリック
- 「このサービスアカウントにプロジェクトのアクセスを許可する」の「ロールを選択」をクリックし、1-1または1-3で作成したロールを選択
以上でサービスアカウントの作成は完了です。
サービスアカウント一覧に今作成したアカウントが表示されていれば成功です。
※作成したサービスアカウントのメールアドレスをコピーしてメモ帳などに保存してください。
ステップ3: サービスアカウントにロールを適用
ステップ2で作成したサービスアカウントにステップ1で作成したロールを適用していきます。
プロジェクト全体に1つのロールをを適用する場合、ステップ2のサービスアカウント作成時に必要なロールを付与した際にはこのステップは不要です。
3-1: データセットの権限設定
個別のデータセットにMagiqの権限を付与する手順は以下の通りです。
- ナビゲーションメニューから「BigQuery」を選択し、「SQLワークスペース」をクリック
- 権限を付与したいデータセットを選択
- 画面右上部の「共有」から「権限」をクリック
- 「プリンシパルを追加」をクリックし、アクセス権設定画面を表示
- 「新しいプリンシパル」に、2で作成したMagiqのサービスアカウントを入力
※ 通常、入力欄にアカウント名の一部を入力すればサジェストされますが、サジェストされなければ先程作成したサービスアカウントのメールアドレスを入力してください。 - 「ロールを選択」でステップ2-2で作成したデータセット用ロールを選択
- 「保存」をクリック
権限の共有の一覧に設定したロールとサービスアカウントが表示されていれば成功です。
この手順を必要なデータセットすべてに行ってください。
3-2: プロジェクトの権限設定
ステップ2のサービスアカウント作成時にロールを付与している場合には不要ですが、ロールを付与するだけの方法も記載しておきます。
- ナビゲーションメニューから「IAMと管理」を選択し、「IAM」をクリック
- 「アクセス権を付与」をクリック
- 「新しいプリンシパル」に、2で作成したmagiqのサービスアカウントを入力
※ 通常、入力欄にアカウント名の一部を入力すればサジェストされますが、サジェストされなければ、先程作成したサービスアカウントのメールアドレスを入力してください。 - 「ロールを選択」でステップ2-1またはステップ2-3で作成したプロジェクト用ロールを選択
- 「保存」をクリック
一覧画面に設定したロールとサービスアカウントが表示されていれば成功です。
ステップ4: JSONキー発行
ここまで作成してきたサービスアカウントとロールをMagiqに紐づけるために、サービスアカウントのJSONキーをMagiqに入力します。
4-1: JSONキーの作成
- ナビゲーションメニューから「IAMと管理」を選択し、「サービスアカウント」をクリック
- 今回作成したサービスアカウントをクリック
- 画面上部の「キー」をクリック
- 「鍵を追加」をクリックし、「新しい鍵を作成」をクリック
- 「JSON」が選択されている状態で「作成」をクリック
- JSONキーがPCにダウンロードされるので、テキストエディタで開いておいてください。
4-2: Magiqに適用
ここからはBigQueryを離れて、Magiqを操作します。
- Magiqの管理画面にログイン
- 画面上部の「基本設定」をクリック
- BigQueryの接続情報の入力欄に、先程作成したJSONキーのテキストを貼り付け
- 「登録」をクリック
接続先にデータソース名が表示されたら成功です。
ステップ5: スケジュールクエリの有効化
最後に、BigQueryのスケジュールクエリを有効化します。
- BigQueryに画面を戻し、ナビゲーションメニューから「BigQuery」を選択し、「スケジュールされたクエリ」をクリック
- BigQuery Data Transfer APIの説明画面が開いたら「有効」をクリック
読み込みが完了し、表示が「有効」から「管理」に変わったら成功です。
以上で、Magiqの初期設定は完了です。