ポリシータグを使用して BigQuery の列アクセスを制御する

ポリシータグを使用すると、BigQuery テーブル内の機密列を表示できるユーザーを制御できます。Data Catalog では、テーブルエントリの詳細ページで、列に直接ポリシータグを追加または削除できます。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Data Catalog and BigQuery API を有効にします。

    API を有効にする

  4. プロジェクトに次のロールがあることを確認します。 Data Catalog > Policy Tag Admin, BigQuery > Data Viewer

    ロールを確認する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [プリンシパル] 列で、自分のメールアドレスを含む行を見つけます。

      自分のメールアドレスがその列にない場合、ロールは割り当てられていません。

    4. 自分のメールアドレスを含む行の [ロール] 列で、ロールのリストに必要なロールが含まれているかどうかを確認します。

    ロールを付与する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、自分のメールアドレスを入力します。
    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。
  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Data Catalog and BigQuery API を有効にします。

    API を有効にする

  7. プロジェクトに次のロールがあることを確認します。 Data Catalog > Policy Tag Admin, BigQuery > Data Viewer

    ロールを確認する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [プリンシパル] 列で、自分のメールアドレスを含む行を見つけます。

      自分のメールアドレスがその列にない場合、ロールは割り当てられていません。

    4. 自分のメールアドレスを含む行の [ロール] 列で、ロールのリストに必要なロールが含まれているかどうかを確認します。

    ロールを付与する

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、自分のメールアドレスを入力します。
    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。

ロールと権限

ユーザーまたはサービス アカウントのポリシータグに関連するロールがいくつかあります。このページでは、Data Catalog ポリシータグ管理者きめ細かい読み取りのロールについて説明します。

  • ポリシータグを管理するユーザーまたはサービス アカウントには、Data Catalog ポリシータグ管理者のロールが必要です。このロールは分類とポリシータグを管理し、ACL ポリシーを付与または削除できます。

  • ポリシータグで保護されているデータをクエリするユーザーまたはサービス アカウントには、ポリシータグごとにきめ細かい読み取りのロールが必要があります。

ポリシータグ関連のロールの詳細については、列レベルのセキュリティで使用するロールをご覧ください。

ポリシータグ管理者のロール

Data Catalog ポリシータグ管理者のロールは、データポリシー タグを作成、管理できます。

Data Catalog ポリシータグ管理者のロールを付与するには、ポリシータグ管理者のロールをユーザーに付与するプロジェクトについて resourcemanager.projects.setIamPolicy 権限が必要です。resourcemanager.projects.setIamPolicy 権限がない場合は、この権限を付与してもらうか、自分の代わりに次の手順を実行してもらうようプロジェクト オーナーに依頼してください。

  1. Google Cloud Console の [IAM] ページに移動します。

    [IAM] ページを開く

  2. ロールを付与するユーザーのメールアドレスがリストにある場合は、そのメールアドレスを選択して [編集](鉛筆アイコン)をクリックします。[別のロールを追加] をクリックします。

    ユーザーのメールアドレスがリストにない場合は、[追加] をクリックし、[新しいプリンシパル] ボックスにメールアドレスを入力します。

  3. [ロールを選択] プルダウン リストをクリックします。

  4. [データカタログ] をクリックし、[ポリシータグ管理者] をクリックします。

  5. [保存] をクリックします。

このロールの詳細については、列レベルのセキュリティで使用されるロールをご覧ください。

分類を作成する

Data Catalog を使用して分類を作成し、データのポリシータグを追加します。

次の手順を行うユーザー アカウントには、Data Catalog ポリシータグ管理者のロールが必要です。

  1. Google Cloud コンソールで Dataplex 分類ページを開きます。

    [分類] ページを開く

  2. [分類の作成] をクリックします。

  3. [新しい分類] ページで次の操作を行います。

    1. [分類名] に、作成する分類の名前を入力します。
    2. [説明] に、説明を入力します。
    3. 必要に応じて、[プロジェクト] に表示されているプロジェクトを変更します。
    4. 必要に応じて、[場所] に表示されている場所を変更します。
    5. [ポリシータグ] に、ポリシータグの名前と説明を入力します。
    6. ポリシータグの子ポリシータグを追加するには、[子ポリシータグの追加] をクリックします。
    7. 新しいポリシータグを別のポリシータグと同じレベルで追加するには、[+] アイコンをクリックします。

      以下に、[新しい分類] ページの例を示します。

      分類の作成ページ

    8. 必要に応じて、分類にポリシータグと子ポリシータグをさらに追加します。

    9. ポリシータグの階層の作成が完了したら、[保存] をクリックします。

    10. [ポリシータグの分類] ページで、[アクセス制御を適用] スライダーをオンにします。

ポリシータグでタグ付けされた列を表示するユーザーには、データセットに対する完全な権限とポリシータグが必要です。詳細なチュートリアルについては、BigQuery の列レベルのセキュリティ ガイドをご覧ください。

きめ細かい読み取りのロールを付与する

ポリシータグで保護されている列へのアクセスが必要なユーザーには、きめ細かい読み取りのロールが必要です。このロールは、ポリシータグごとに個別に割り当てられます。

次の手順を実行するには、きめ細かい読み取りのロールをユーザーに付与するプロジェクトに対する resourcemanager.projects.setIamPolicy 権限が必要です。resourcemanager.projects.setIamPolicy 権限がない場合は、この権限を付与してもらうか、自分の代わりに次の手順を実行してもらうようプロジェクト オーナーに依頼してください。

  1. [Dataplex] > [ポリシータグ] ページに移動します。

    Dataplex の [ポリシータグ] に移動

  2. ロールを付与するポリシータグの分類を選択します。

  3. [ポリシータグ] セクションで、特定のポリシータグを選択します。

  4. ポリシータグの情報ペインで、[プリンシパルを追加] をクリックします。

    情報ペインが表示されない場合は、[情報パネルを表示] をクリックします。

  5. [プリンシパルを追加] ペインで次の操作を行います。

    1. [新しいプリンシパル] ボックスに、ロールを付与するユーザーのメールアドレスを入力します。
    2. [ロールを選択] メニューから [Data Catalog] > [きめ細かい読み取り] を選択します。
    3. [保存] をクリックします。

このユーザー アカウントは、その特定のポリシータグで保護されているすべての列を表示できるようになりました。

このロールの詳細については、列レベルのセキュリティで使用されるロールをご覧ください。

列にポリシータグを追加する

Data Catalog では、1 度に 1 つのポリシータグのみを 1 つの列に添付できます。1 回のオペレーションで複数の列にポリシータグを添付する場合は、BigQuery でテーブル スキーマを編集します。BigQuery の列にポリシータグを設定するをご覧ください。

  1. Dataplex の検索ページを開き、列にポリシータグを添付する BigQuery テーブルを見つけます。

    Dataplex の検索ページを開く

    詳細については、データアセットを検索する方法をご覧ください。

  2. アセットページで [スキーマと列のタグ] タブを選択します。

  3. [スキーマ] テーブルで、BigQuery テーブルの列を表す行を見つけ、[ポリシータグ] で [+] をクリックします。

  4. [ポリシータグを追加] パネルで、列に適用するポリシータグを選択します。

  5. パネルの下部にある [選択] をクリックします。画面は次のようになります。

    Data Catalog に添付されたポリシータグ。

これで、列はポリシータグで保護されます。ユーザーがこのデータにアクセスできるようにするには、このポリシータグに対するきめ細かい読み取りのロールを付与します。きめ細かい読み取りのロールをご覧ください。

列からポリシータグを消去する

  1. Dataplex の検索ページを開き、列からポリシータグを消去する BigQuery テーブルを見つけます。

    Dataplex の検索ページを開く

    データアセットを検索する方法をご覧ください。

  2. アセットページで [スキーマと列のタグ] タブを選択します。

  3. [スキーマ] テーブルで、BigQuery 列を表す行を見つけ、[ポリシータグ] セルで [X] をクリックします。

    ポリシータグを消去します。