Bigtable に対して認証を行う

このドキュメントでは、Cloud Bigtable に対する認証をプログラムで行う方法について説明します。

Google Cloud の認証の詳細については、認証の概要をご覧ください。

API アクセス

Bigtable はプログラムによるアクセスをサポートしています。Bigtable に対する認証方法は、API へのアクセス方法によって異なります。次の方法で API にアクセスできます。

クライアント ライブラリ

Bigtable クライアント ライブラリでは、Bigtable の認証をプログラムで行うための高レベルの言語サポートが提供されます。クライアント ライブラリはアプリケーションのデフォルト認証情報(ADC)をサポートしています。ライブラリは、定義された一連の場所で認証情報を探し、その認証情報を使用して API へのリクエストを認証します。ADC を使用すると、アプリケーション コードを変更することなく、ローカルでの開発や本番環境など、さまざまな環境のアプリケーションで認証情報を使用できるようになります。

Google Cloud CLI

gcloud CLI を使用して Bigtable にアクセスする場合は、gcloud CLI コマンドで使用される認証情報を提供する Google アカウントで gcloud CLI にログインします。

組織のセキュリティ ポリシーで、ユーザー アカウントに必要な権限の付与が許可されない場合は、impersonate_service_account プロパティを使用するか、使用するコマンドのみに影響する --impersonate-service-account フラグを使用して、サービス アカウントの権限を借用します。

Bigtable で gcloud CLI を使用する詳しい方法については、gcloud CLI のリファレンス ページをご覧ください。

Bigtable の認証を設定する

認証の設定方法は、コードが実行されている環境によって異なります。

認証の設定には、次のオプションが最も一般的に使用されます。認証のその他のオプションと詳細については、Google での認証をご覧ください。

これらの手順を完了する前に、API の有効化や gcloud CLI のインストールなど、Bigtable の基本設定を完了しておく必要があります。

ローカル開発環境の場合

クライアント ライブラリの使用、コードサンプルの実行、ローカル開発環境での Terraform などのサードパーティ ツールの使用を計画する場合は、その環境でアプリケーションのデフォルト認証情報(ADC)を設定する必要があります。コマンドラインから REST リクエストを行うには、gcloud CLI 認証情報を使用します。

ローカル ADC 認証情報と gcloud CLI 認証情報の違いについては、ADC と gcloud CLI の認証情報をご覧ください。

クライアント ライブラリまたはサードパーティ ツール

ローカル環境でアプリケーションのデフォルト認証情報(ADC)を設定します。

  1. Google アカウントの認証情報を作成します。

    gcloud auth application-default login

ログイン画面が表示されます。ログインすると、ADC で使用されるローカル認証情報ファイルに認証情報が保存されます。

ローカル環境での ADC 操作の詳細については、ローカル開発環境をご覧ください。

Google Cloud

Google Cloud で実行されているワークロードを認証するには、コードが実行されているコンピューティング リソースに関連付けられているサービス アカウントの認証情報を使用します。たとえば、サービス アカウントを Compute Engine 仮想マシン(VM)インスタンスCloud Run サービス、または Dataflow ジョブに関連付けることができます。このアプローチは、Google Cloud コンピューティング リソースで実行されているコードの推奨認証方法です。

ほとんどのサービスでは、コードを実行するリソースの作成時にサービス アカウントを関連付ける必要があります。サービス アカウントを後から追加または置換することはできません。Compute Engine は例外です。これにより、サービス アカウントをいつでも VM インスタンスに関連付けることができます。

  1. 認証を設定します。

    1. サービス アカウントを作成します。

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME をサービス アカウントの名前に置き換えます。

    2. プロジェクトとリソースへのアクセス権を付与するには、サービス アカウントにロールを付与します。

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

      次のように置き換えます。

      • SERVICE_ACCOUNT_NAME: サービス アカウントの名前
      • PROJECT_ID: サービス アカウントを作成したプロジェクト ID
      • ROLE: 付与するロール
    3. サービス アカウントに別のロールを付与するには、前の手順で行ったようにコマンドを実行します。
    4. サービス アカウントのロールを使用して、そのサービス アカウントを他のリソースに関連付けることができるロールを Google アカウントに付与します。

      gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

      次のように置き換えます。

      • SERVICE_ACCOUNT_NAME: サービス アカウントの名前
      • PROJECT_ID: サービス アカウントを作成したプロジェクト ID
      • USER_EMAIL: Google アカウントのメールアドレス
  2. コードを実行するリソースを作成し、そのリソースにサービス アカウントを関連付けます。たとえば、Compute Engine を使用する場合は次のようになります。

    Compute Engine インスタンスを作成します。インスタンスを次のように構成します。
    • INSTANCE_NAME を必要なインスタンス名に置き換えます。
    • インスタンスを作成するゾーン--zone フラグを設定します。
    • --service-account フラグに、作成したサービス アカウントのメールアドレスを設定します。
    gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL

オンプレミスまたは別のクラウド プロバイダ

Google Cloud の外部から認証を設定する際の推奨方法は、Workload Identity 連携の使用です。詳細については、認証ドキュメントのオンプレミスまたは他のクラウド プロバイダをご覧ください。

Bigtable でのアクセス制御

Bigtable への認証後、Google Cloud リソースへのアクセスが認可される必要があります。Bigtable では Identity and Access Management(IAM)を使用して認可を行います。

Bigtable のロールの詳細については、IAM によるアクセス制御をご覧ください。IAM と認可の詳細については、IAM の概要をご覧ください。

次のステップ