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

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

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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] をクリックします。

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