/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

February 22, 2021

BigQuery part2
■BQタイムアウトは6時間

■マテリアライズドビュー
実体データを保持しリフレッシュ更新で早いため集計等に向く
ベーステーブルは一つ、カウントができない、使用できない関数がある等の制約がある
またマテビューはビューを元に作成できずテーブルからである必要がある
ストレージコストは掛かるが、通常ビューで時間掛かる計算を頻繁にする場合は早く安くなる可能性がある
BigQueryのMaterialized Viewを使う #データ分析 - Qiita

■BQ同時実行数
オンデマンドでは使用可能なスロット数に基づき自動的に同時実行数が決定され超えるとスロットに 空きがでるまでキューに保管される
プロジェクトごとにクエリの最大同時実行数は動的に決まる
同時実行数の最大値は指定できるが、大きくしても実行数が増えることはなく、あくまで自動決定 内の方が優先される
Editionsが割り当てられているプロジェクトでは最大同時実行数を明示的に設定できる
他に、インタラクティブクエリ、バッチクエリ、クエリ順序や上限など

■BigQueryの列レベル・行レベルのセキュリティ
個人情報や機微情報を隠す
BigQuery の行レベルのセキュリティの概要  |  Google Cloud
行レベルなら同じテーブルを使うので同じダッシュボード/Appが使える(AuthorizedViewの方が柔軟だが)
データ マスキングの概要  |  BigQuery  |  Google Cloud
列レベルアクセス権以外にもマスクの種類があり、ハッシュだったり先頭4文字や末尾4文字等で共通文字化としてマスク化できる
BQ画面>左ナビのポリシータグ
 ポリシータグを作成(組織単位で一括一覧表示)
  タグは階層化できるので、全ユーザタグ>管理者タグ>社長タグ
 スキーマ>Addポリシータグ
  タグが付いていればプレビューで見れない
  select * except(tag_column)にする必要がある
  メタデータは見れる(カラム名、型
 ポリシータグ画面>対象ポリシー選択>情報パネルで権限者一覧
  fine-grained readerを付与するとselect *ができるようになる
   社長タグに社長だけ権限付ける等
※APIを有効にし、ポリシーを有効にする必要がある

■承認済みビュー authorized view
authorized viewを設定するとそのviewを対象とする権限だけ必要で権限をさかのぼり付与しなくていい(通常のviewは参照元の権限も必要)
 この権限移譲は閲覧権限のみで編集権限等は含まない
被参照の元テーブル側に許可するview名を設定する
 参照権限は緩くなるが、編集権限は厳しくなる(設定するビューは変更しない前提で承認する形)
authorized viewを付与すると玄関となったビューはdataEditorではビュー更新ができなくなる
 玄関ビューにも、ソーステーブルにもEditor権限が必要
 基本の安全策はauthorized view設定を外す>ビュー変更>AV再設定がいい
  対象のAVは管理者を立て一元管理するのが良さそう
  (テーブルやビューを作って権限付与してバッチだとdata ownerが必要なのは注意)

■Authorized系にはメリットとデメリット
1) Authorized viewを設定するメリット
一度設定してしまえばソース側への権限付与依頼が不要となりビューの権限管理が省力化できる
ビューにて閲覧対象を絞ることができソース全体は閲覧させないことができる、絞れる
 普通のビューは元データへの権限が必要で見せたくないデータへも権限が必要になる場合がある

2) Authorized viewを設定するデメリット
一度設定してしまえばソース側での権限付与依頼が不要となり被参照側で許可不許可の判断ができなくなる、誰にデータ閲覧権限を付与しているか把握できず管理が機能しなくなる一面がある
将来に置かれるソース側のデータの閲覧も許可することになり不用意に閲覧が可能となってしまう
terraformでAuthorized view設定が剥がれてしまう危険性
ビューを編集するにあたりAuthorized viewを外す必要がある、あるいはソースにもEditor権限
 すぐにビューを変更することができなくなる(ビューを一旦削除することはできる)
Authorized viewはビューを削除して、再度作り直すと生きている場合がある、ダメな場合も多いが
 これで漏洩させたくない情報を一時含められる危険性がある
3)authorized datasetを設定するデメリット
設定時は良いかもしれないが、将来的に意図しないデータがDS入った場合も閲覧を許してしまう

データセットは細かく作成してアクセスレベル設定し普通のビューを使う
ソース全体を閲覧させられない場合にAVを使うメリットがでる
 情報漏洩リスクはどちらも多段ビューで同じ感じ、だがビュー作成でAV設定が生きているバグがデカい

■BQクリーンルーム
データ準備側でパブリックし、使う側でサブスクする (BQ exploreでペインでAddする)
スプシ保存できない、開覧数のレポートが見れる(使用者名は見えない) 実はパブ側でサブスクし公開すれば、閲覧とJobUserだけで使用できるようになる
GAでなく、またオンデマンドしか無理、コピペやデータコネクタは可能で残念

■ロール割り当て者の出力
カスタムロールのProject_Admin、Project_Managerが誰に割り当てられているか
Asset inventoryをBQにダンプしたデータからクエリする
WITH
  projects AS (
    SELECT
      resource.data AS rsc,
      ancestor_path
    FROM
      prj.cloud_asset_inventory.cloud_asset_inventory_org_resource_now
    WHERE
      asset_type = 'cloudresourcemanager.googleapis.com/Project'
  ),
  projects_info AS (
    SELECT
      JSON_EXTRACT_SCALAR(rsc, '$.projectId') AS projectid,
      JSON_EXTRACT_SCALAR(rsc, '$.lifecycleState') AS lifecycleState,
      ancestor_path
    FROM
      projects
  ),
  projects_efficient AS (
    SELECT
      *
    FROM
      projects_info
    WHERE
      NOT REGEXP_CONTAINS(ancestor_path, "folders/apps-script")
  ),
  projects_num_adm_mgr AS (
    SELECT
      REPLACE(name, '//cloudresourcemanager.googleapis.com/projects/', '') AS project_num,
      REPLACE(b.role, 'organizations/1234567/roles/', '') AS role_value,
      STRING_AGG(REPLACE(m, 'user:', ''), ', ') AS member_value
    FROM
      prj.cloud_asset_inventory.cloud_asset_inventory_org_iam_policy_now,
      UNNEST(iam_policy.bindings) AS b,
      UNNEST(b.members) AS m
    WHERE
      asset_type = 'cloudresourcemanager.googleapis.com/Project'
      AND (role LIKE '%Project_Admin%' OR role LIKE '%Project_Manager%')
    GROUP BY
      project_num,
      role_value
  ),
  projects_adm_mgr AS (
    SELECT
      JSON_EXTRACT_SCALAR(resource.data, '$.projectId') AS project,
      projects_num_adm_mgr.role_value,
      projects_num_adm_mgr.member_value
    FROM
      projects_num_adm_mgr
    LEFT JOIN
      prj.cloud_asset_inventory.cloud_asset_inventory_org_resource_now AS res
    ON
      projects_num_adm_mgr.project_num = REPLACE(res.name, '//cloudresourcemanager.googleapis.com/projects/', '')
  )
SELECT
  projects_efficient.projectid,
  projects_efficient.lifecycleState,
  CONCAT(projects_efficient.projectid, ', ', projects_adm_mgr.role_value) AS role_value,
  projects_adm_mgr.member_value
FROM
  projects_efficient
LEFT OUTER JOIN
  projects_adm_mgr
ON
  projects_efficient.projectid = projects_adm_mgr.project
ORDER BY
  lifecycleState DESC,
  projectid;


■IAM(Identity and Access Management)

前回
/// BANGBOO BLOG /// - BigQuery
twitter
Hatena
Google Buzz
newsing
Yahoo!
Buzzurl
Technorati
del.icio.us
Choix
Iza!
Livedoor Clip
Facebook
Evernote
 

Posted by funa : 12:00 AM | Web | Comment (0) | Trackback (0)


PhotoGallery


TWITTER
Search

Mobile
QR for cellphone  QR for smart phone
For mobile click here
For smart phone click here
Popular Page
#1Web
#2Hiace 200
#3Gadget
#4The beginning of CSSレイアウト
#5Column
#6Web font test
#7Ora Ora Ora Ora Ora
#8Wifi cam
#9みたらし団子
#10Arcade Controller
#11G Suite
#12PC SPEC 2012.8
#13Javascript
#14REMIX DTM DAW - Acid
#15RSS Radio
#16Optimost
#17通話SIM
#18Attachment
#19Summer time blues
#20Enigma
#21Git
#22Warning!! Page Expired.
#23Speaker
#24Darwinian Theory Of Evolution
#25AV首相
#26htaccess mod_rewite
#27/// BANGBOO BLOG /// From 2016-01-01 To 2016-01-31
#28竹書房
#29F☆ck CSS
#30Automobile Inspection
#31No ID
#32Win7 / Win10 Insco
#33Speaker
#34Arcade Controller
#35Agile
#36G Suite
#37Personal Information Privacy Act
#38Europe
#39Warning!! Page Expired.
#40GoogleMap Moblile
#41CSS Selectors
#42MySQL DB Database
#43Ant
#44☆od damnit
#45Teeth Teeth
#46Itinerary with a eurail pass
#47PHP Developer
#48Affiliate
#49/// BANGBOO BLOG /// From 2019-01-01 To 2019-01-31
#50/// BANGBOO BLOG /// From 2019-09-01 To 2019-09-30
#51/// BANGBOO BLOG /// On 2020-03-01
#52/// BANGBOO BLOG /// On 2020-04-01
#53Windows env tips
#54恐慌からの脱出方法
#55MARUTAI
#56A Rainbow Between Clouds‏
#57ER
#58PDF in cellphone with microSD
#59DJ
#60ICOCA
#61Departures
#62Update your home page
#63CSS Grid
#64恐慌からの脱出方法
#65ハチロクカフェ
#66/// BANGBOO BLOG /// On 2016-03-31
#67/// BANGBOO BLOG /// From 2017-02-01 To 2017-02-28
#68/// BANGBOO BLOG /// From 2019-07-01 To 2019-07-31
#69/// BANGBOO BLOG /// From 2019-10-01 To 2019-10-31
#70/// BANGBOO BLOG /// On 2020-01-21
#71Bike
#72Where Hiphop lives!!
#73The team that always wins
#74Tora Tora Tora
#75Blog Ping
#76無料ストレージ
#77jQuery - write less, do more.
#78Adobe Premire6.0 (Guru R.I.P.)
#79PC SPEC 2007.7
#80Google Sitemap
#81Information privacy & antispam law
#82Wifi security camera with solar panel & small battery
#83Hope get back to normal
#84Vice versa
#85ハイエースのメンテ
#86Camoufla
#87α7Ⅱ
#88Jack up Hiace
#89Fucking tire
#90Big D
#914 Pole Plug
#925-year-old shit
#93Emancipation Proclamation
#94Windows env tips
#95Meritocracy
#96Focus zone
#97Raspberry Pi
#98Mind Control
#99Interview
#100Branding Excellent
Category
Recent Entry
Trackback
Comment
Archive
<     February 2025     >
Sun Mon Tue Wed Thi Fri Sat
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Link