承認済みビューを作成および管理する
このドキュメントでは、Google Cloud CLI またはGoogle Cloud コンソールを使用して、承認済みビューを定義、作成し、その他の管理オペレーションを実行する方法について説明します。このドキュメントを読む前に、承認済みビューの概要をよく理解しておく必要があります。
必要なロール
承認済みビューに対して管理オペレーションを実行するために必要な権限を取得するには、基盤となるテーブルに対する Bigtable 管理者 (roles/bigtable.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、承認済みビューに対する管理オペレーションを実行するために必要な権限が含まれています。 必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
承認済みビューで管理オペレーションを実行するには、次の権限が必要です。
-
bigtable.authorizedViews.get
-
bigtable.authorizedViews.list
-
bigtable.authorizedViews.create
-
bigtable.authorizedViews.update
-
bigtable.authorizedViews.delete
-
bigtable.authorizedViews.getIamPolicy
-
bigtable.authorizedViews.setIamPolicy
-
bigtable.authorizedViews.readRows
-
bigtable.authorizedViews.sampleRowKeys
-
bigtable.authorizedViews.mutateRows
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
承認済みビュー レベルで Bigtable IAM ロールを管理する方法については、承認済みビュー レベルの IAM 管理をご覧ください。
承認済みビューを作成する
承認済みビューを作成するときは、ビューに対して実行されるクエリを考慮してください。承認済みビューに送信される読み取り、書き込み、削除リクエストでは、承認済みビュー内のデータのみを参照する必要があります。つまり、たとえば、承認済みビューにないテーブル内の列を含む行の読み取り、書き込み、削除を試行すると、リクエストは失敗することを意味します。
承認済みビューにない列がテーブルに追加されたことで承認済みビューへのデータ リクエストが失敗する状況を回避するには、列ファミリーに空の列修飾子接頭辞の接頭辞 "" を指定します。
承認済みビューごとに、最大 100 個の定義パラメータを指定できます。
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
承認済みビューを作成するテーブルを含むインスタンスをクリックします。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
[ビルダー] をクリックして、クエリビルダーを開きます。
承認済みビューを作成するテーブルを選択します。
句を追加して、承認済みビューのユーザーがアクセスできるデータのみを返すクエリを作成します。
- 承認済みビューで使用できる句は、行キー接頭辞と列(列修飾子)です。
- 列修飾子の接頭辞を指定するには、接頭辞の後にアスタリスクを追加します。たとえば、「data」で始まるすべての列を含めるには、列ファミリー名の後に [列] フィールドに
data*
と入力します。 - 承認済みビューが保存されると、Limit 句は無視されます。
- クエリビルダーの使用方法の詳細については、コンソールでクエリを作成するをご覧ください。
[実行] をクリックします。
結果ペインに承認済みビューに含めるデータが表示されていることを確認したら、[ビューとして保存] をクリックします。
テーブルですでに使用されていない承認済みビューの永続識別子を入力します。
省略可: アクセス権を付与せずに保存するには、[保存] をクリックします。
省略可: 承認済みビューを保存してアクセス権を構成するには、[保存してアクセス権を付与] をクリックします。アクセス制御の詳細については、IAM による Bigtable のアクセス制御をご覧ください。
- 1 つ以上のプリンシパルを追加し、そのプリンシパルまたはプリンシパルのグループに割り当てるロールを選択します。
- 省略可: 追加のロールのアクセス権を付与するには、[別のロールを追加] をクリックし、追加のロールごとにプリンシパルとロールを入力します。
- [保存] をクリックします。
gcloud
bigtable authorized-views create
コマンドを実行します。詳細については、gcloud bigtable authorized-views create のリファレンス ドキュメントをご覧ください。
gcloud bigtable authorized-views create AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID \
--definition-file=DEFINITION_FILE_PATH
次のように置き換えます。
AUTHORIZED_VIEW_ID
: テーブルですでに使用されていない承認済みビューの永続的な識別子INSTANCE_ID
: テーブルを含むインスタンスの永続的な識別子TABLE_ID
: 承認済みビューを作成するテーブルの永続的な識別子DEFINITION_FILE_PATH
: 承認済みビューの有効な JSON 形式の表現へのパス。正しくフォーマットされた定義ファイルの例については、定義ファイルの例をご覧ください。
定義ファイルを指定せずにコマンドを実行することもできます。この場合、gcloud CLI でエディタが開き、値の入力を求められます。
承認済みビューが作成されたことを確認するには、テーブルの承認済みビューのリストを取得します。
Java
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
承認済みビューを変更する
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
承認済みビューを含むインスタンスをクリックします。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
エクスプローラで、テーブルと承認済みビューを開きます。
変更する承認済みビューの横にある more_vert アクション メニューをクリックし、[開く] をクリックします。
句を変更または追加して、承認済みビューのユーザーがアクセスできるようにするデータのみを返すクエリを作成します。
- 承認済みビューで使用できる句は、行キー接頭辞と列(列修飾子)です。
- 列修飾子の接頭辞を指定するには、接頭辞の後にアスタリスクを追加します。たとえば、「data」で始まるすべての列を含めるには、列ファミリー名の後に [列] フィールドに
data*
と入力します。 - 承認済みビューが保存されると、Limit 句は無視されます。
- クエリビルダーの使用方法の詳細については、コンソールでクエリを作成するをご覧ください。
[実行] をクリックします。
結果ペインに承認済みビューに含めるデータが表示されていることを確認したら、[ビューとして保存] をクリックします。
ダイアログで、変更した承認済みビューの ID を入力します。
既存の承認済みビューを上書きする旨の警告メッセージがダイアログに表示されます。
省略可: アクセス権を付与せずに保存するには、[保存] をクリックします。
省略可: 承認済みビューを保存してアクセス権を構成するには、[保存してアクセス権を付与] をクリックします。アクセス制御の詳細については、IAM による Bigtable のアクセス制御をご覧ください。
- 1 つ以上のプリンシパルを追加し、そのプリンシパルまたはプリンシパルのグループに割り当てるロールを選択します。
- 省略可: 追加のロールのアクセス権を付与するには、[別のロールを追加] をクリックし、追加のロールごとにプリンシパルとロールを入力します。
- [保存] をクリックします。
gcloud
bigtable authorized-views
update
コマンドを使用して、承認済みビューを変更します。詳細については、gcloud bigtable authorized-views update のリファレンス ドキュメントをご覧ください。
gcloud bigtable authorized-views update AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID \
--definition-file=DEFINITION_FILE_PATH
次のように置き換えます。
AUTHORIZED_VIEW_ID
: 承認済みビューの永続的な識別子INSTANCE_ID
: インスタンスの永続的な識別子TABLE_ID
: ソーステーブルの永続的な識別子DEFINITION_FILE_PATH
: 承認済みビューの有効な JSON 形式の表現へのパス。正しくフォーマットされた定義ファイルの例については、定義ファイルの例をご覧ください。
定義ファイルを指定せずにコマンドを実行することもできます。この場合、gcloud CLI でエディタが開き、値の入力を求められます。
省略可: 現在の承認済みビューの構造と、更新が commit された後の違いを示す確認プロンプトが gcloud CLI に表示されないようにするには、コマンドに --no-interactive
フラグを追加します。
Java
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
削除保護を有効または無効にする
承認済みビューの削除保護を有効にするには、承認済みビューを定義する JSON ファイルを変更して、deletionProtection
フラグを true
に設定します。
削除の保護を無効にするには、deletionProtection
フラグを false
に設定して、承認済みビューを定義する JSON ファイルを変更します。
更新された JSON ファイルの名前を指定して bigtable
authorized-views update
コマンドを実行し、承認済みビューの変更を確定します。詳細については、gcloud bigtable authorized-views update のリファレンス ドキュメントをご覧ください。
承認済みビューを削除する
テーブルを削除すると、そのテーブルのすべての承認済みビューも削除されます。
承認済みビューを削除すると、削除を取り消すことはできません。ただし、テーブルを削除してから削除を取り消すと、テーブルのすべての承認済みビューがテーブルとともに復元されます。その後、承認済みビューとテーブルの IAM を再構成する必要があります。詳細については、テーブルの削除を取り消すをご覧ください。
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
承認済みビューを含むインスタンスをクリックします。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
エクスプローラで、テーブルと承認済みビューを開きます。
削除する承認済みビューの横にある more_vert アクション メニューをクリックし、[削除] をクリックします。
gcloud
bigtable instances tables
authorized-views delete
コマンドを使用して、承認済みビューを削除します。詳細については、gcloud bigtable authorized-views delete のリファレンス ドキュメントをご覧ください。
gcloud bigtable authorized-views delete AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID
次のように置き換えます。
AUTHORIZED_VIEW_ID
: 承認済みビューの永続的な識別子INSTANCE_ID
: インスタンスの永続的な識別子TABLE_ID
: ソーステーブルの永続的な識別子
省略可: 削除の確認またはキャンセルを求める確認プロンプトが gcloud CLI に表示されないようにするには、コマンドに --nointeractive
フラグを追加します。
Java
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
テーブルの承認済みビューのリストを取得する
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
承認済みビューを含むインスタンスをクリックします。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
エクスプローラで、テーブルと承認済みビューを開きます。
gcloud
bigtable authorized-views list
コマンドを実行します。詳細については、gcloud bigtable authorized-views list のリファレンス ドキュメントをご覧ください。
gcloud bigtable authorized-views list \
--instance=INSTANCE_ID \
--table=TABLE_ID
次のように置き換えます。
INSTANCE_ID
: インスタンスの永続的な識別子TABLE_ID
: テーブルの永続的な識別子
Java
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
承認済みビューの詳細を表示する
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
承認済みビューを含むインスタンスをクリックします。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
エクスプローラで、テーブルと承認済みビューを開きます。
表示する承認済みビューの横にある more_vert アクション メニューをクリックし、[開く] をクリックします。
gcloud
承認済みビューの詳細を取得するには、bigtable instances
tables authorized-views describe
コマンドを実行します。詳細については、gcloud bigtable authorized-views describe のリファレンス ドキュメントをご覧ください。
gcloud bigtable authorized-views describe \
–-instance=INSTANCE_ID \
–-table=TABLE_ID \
AUTHORIZED_VIEW_ID
次のように置き換えます。
INSTANCE_ID
: インスタンスの永続的な識別子TABLE_ID
: テーブルの永続的な識別子AUTHORIZED_VIEW_ID
: 承認済みビューの永続的な識別子
Java
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
承認済みビューへのアクセス権を付与する
アクセス制御の詳細については、IAM による Bigtable のアクセス制御をご覧ください。
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
承認済みビューを含むインスタンスをクリックします。
ナビゲーション パネルで [Bigtable Studio] をクリックします。
エクスプローラ ペインで、テーブルと承認済みビューを開きます。
承認済みビューの名前の横にある more_vert アクション メニューをクリックし、[アクセス権を付与] をクリックします。
1 つ以上のプリンシパルを追加し、そのプリンシパルまたはプリンシパルのグループに割り当てるロールを選択します。
省略可: 追加のロールのアクセス権を付与するには、[別のロールを追加] をクリックし、追加のロールごとにプリンシパルとロールを入力します。
[保存] をクリックします。
gcloud
承認済みビューへのアクセス権を付与するには、bigtable
authorized-views add-iam-policy-binding
コマンドを使用します。詳細については、gcloud bigtable authorized-views add-iam-policy-binding のリファレンス ドキュメントをご覧ください。
gcloud bigtable authorized-views add-iam-policy-binding AUTH_VIEW_ID \
--instance=INSTANCE_ID --table=TABLE_ID \
--member=PRINCIPAL --role=ROLE
次のように置き換えます。
AUTH_VIEW_ID
: 承認済みビューの IDTABLE_ID
: 承認済みビューのテーブルの IDINSTANCE_ID
: テーブルを含むインスタンスPRINCIPAL
: アクセス権を付与するプリンシパル(ユーザー)(user:222larabrown@gmail.com
など)ROLE
: 付与するロール(roles/bigtable.reader
など)。