
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Creating and Managing Service Account
/ 50
Use the Client Libraries to Access BigQuery from a Service Account
/ 50
サービス アカウントは、個々のエンドユーザーではなく、仮想マシンに権限を付与する特種な Google アカウントです。サービス アカウントは主に、API と Google Cloud サービスへの安全で管理された接続を確立するために使用されます。信頼できる接続へのアクセスを許可し、悪意のある接続を拒否することは、どの Google Cloud プロジェクトでも不可欠なセキュリティ機能です。
このラボでは、次の方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
サービス アカウントは、個々のエンドユーザーではなく、アプリケーションや仮想マシン(VM)に属している特別な Google アカウントです。アプリケーションはサービス アカウントを使用して、サービスの Google API を呼び出します。ユーザーが関与する必要はありません。
たとえば、あるサービス アカウントで Compute Engine VM が実行される場合、必要なリソースへのアクセス権をそのアカウントに付与することができます。こうしてサービス アカウントはサービスの ID となり、サービス アカウントの権限によって、サービスがアクセスできるリソースが制御されます。
サービス アカウントは、アカウント固有のメールアドレスで識別されます。
Cloud コンソールを使用して新しい Cloud プロジェクトを作成するとき、Compute Engine API がプロジェクトで有効になっている場合は、デフォルトで Compute Engine サービス アカウントが作成されます。これは次のメールアドレスで識別できます:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
プロジェクトに App Engine アプリケーションが含まれている場合、デフォルトの App Engine サービス アカウントがプロジェクトにデフォルトで作成されます。これは次のメールアドレスで識別できます:
PROJECT_ID@appspot.gserviceaccount.com
プロジェクトの IAM ポリシーや Cloud コンソールには、ユーザー管理のサービス アカウントに加えて、その他のサービス アカウントが表示される場合があります。これらのサービス アカウントは Google が作成し所有しているもので、さまざまな Google サービスを表します。各アカウントには Google Cloud プロジェクトにアクセスするための IAM のロールが自動的に付与されます。
Google が管理するサービス アカウントの一例として、次のようなメールアドレスで識別できる Google API サービス アカウントがあります:
PROJECT_NUMBER@cloudservices.gserviceaccount.com
このサービス アカウントは、自動的に内部 Google プロセスを実行するように設計されており、Cloud コンソールの [サービス アカウント] セクションには一覧表示されません。デフォルトでは、このアカウントには自動的にそのプロジェクトの編集者のロールが付与され、Cloud コンソールの [IAM] セクションに表示されます。
このサービス アカウントは、プロジェクトが削除された場合にのみ削除されます。Google サービスはプロジェクトにアクセスできるアカウントに依存しているため、プロジェクトでサービス アカウントのロールを削除したり変更したりしないでください。
このタスクでは、サービス アカウントを作成して管理します。
デフォルトでは、1 つのプロジェクトに最大 100 個のユーザー管理サービス アカウントを作成できます。この割り当てがニーズを満たしていない場合は、Cloud コンソールを使用して割り当ての増加をリクエストできます。
サービス アカウントの作成はプロジェクトへのメンバーの追加に似ていますが、サービス アカウントは個々のエンドユーザーではなくアプリケーションに属します。
コマンドの出力にはサービス アカウントが表示されます。たとえば、以下のようになります。
出力:
IAM のロールを付与する際には、サービス アカウントをリソースまたは ID として扱うことができます。
アプリケーションでは、Google Cloud サービスに対する認証のためにサービス アカウントを ID として使用します。たとえば、Compute Engine 仮想マシン(VM)をサービス アカウントとして実行している場合は、プロジェクト(リソース)のサービス アカウント(ID)に編集者のロールを付与できます。
それに加えて、誰が VM を起動できるかを制御することもできます。そのためには、サービス アカウント(リソース)に対する serviceAccountUser のロールをユーザー(ID)に付与します。
サービス アカウントにロールを付与すると、Google Cloud プロジェクトのリソースに対して特定の操作を行う権限が付与されます。たとえば、storage.admin
のロールが付与されたサービス アカウントでは、Cloud Storage のオブジェクトやバケットを管理できます。
出力には、サービス アカウントに現時点で付与されているロールの一覧が表示されます。
出力:
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ID を使って Google Cloud API を呼び出す場合、Cloud Identity and Access Management(Cloud IAM)によって、その ID がリソースを使用するために必要な権限を持っていることが求められます。権限を付与するには、ユーザー、グループ、またはサービス アカウントにロールを付与します。
Cloud IAM には、次の 3 種類のロールがあります。
詳しくは、IAM ロールのリファレンス ドキュメントをご覧ください。
このタスクでは、必要なロールを持つサービス アカウントを使用して、インスタンスから BigQuery の一般公開データセットに対してクエリを実行します。
最初に、Cloud コンソールで新しいサービス アカウントを作成します。
bigquery-qwiklab
」を指定します。Cloud コンソールには次のように表示されます。
構成 |
値 |
名前 |
|
リージョン |
|
ゾーン |
|
シリーズ |
|
マシンタイプ |
|
ブートディスク |
|
サービス アカウント |
|
アクセス スコープ |
|
bigquery-qwiklab
サービス アカウントがプルダウン リストに表示されない場合は、[フィルタ] セクションに名前を入力してください。次に、Shielded VM をサポートするブートディスクを選択して追加されたオプションを確認します。
ページの下のほうにある [ネットワーク、ディスク、セキュリティ、管理、単一テナンシー] リンクをクリックします。
[セキュリティ] タブをクリックします。タブの上部に、Shielded VM のオプションが表示されます。Shielded VM 機能を含むブートディスクを選択しなかった場合は、これらのオプションは表示されません。これらのオプションの一部は、デフォルトで選択されています。
[セキュアブートをオンにする] チェックボックスをオンにします。
Compute Engine は、デフォルトでこのオプションを有効にしません。これは、署名されていないドライバやその他の低レベルのソフトウェアには互換性がない場合があるためです。それでも、可能であればセキュアブートを有効にすることをおすすめします。
bigquery-instance
に SSH 接続します。[接続] をクリックします。echo
コマンドを使用して、query.py
を作成します。このファイルは Python で作成されており、クエリを実行する際に使用します。query.py
に追加します。sed
コマンドによりファイル内のプロジェクト ID が正しく変更されたことを確認します。出力例(実際のものとは異なります):
query.py
に追加します。sed
コマンドによりファイル内のサービス アカウント メールが正しく変更されたことを確認します。出力例(実際のものとは異なります):
これでアプリケーションは、このサービス アカウントに関連付けられている権限を使用できるようになります。
pyarrow
ライブラリをインストールします。db-dtypes
ライブラリをインストールします。query.py
を実行します。次のような出力が表示されます。
出力:
bigquery-qwiklab
サービス アカウントを使用して BigQuery の一般公開データセットにリクエストが送信されました。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このラボでは、以下の操作について学習しました。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください