Dokumen ini menunjukkan cara melakukan hal berikut di Dataform:
- Memberikan akses yang diperlukan Dataform.
- Mengontrol akses ke Dataform dengan IAM.
- Mengontrol akses ke setiap tabel dengan IAM.
Sebelum memulai
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Di tingkat repositori, untuk menjalankan semua alur kerja dalam repositori tertentu.
Satu per satu untuk setiap konfigurasi alur kerja.
- BigQuery Data Editor di project yang memerlukan akses baca dan tulis Dataform. Project ini biasanya mencakup project yang menghosting repositori Dataform Anda.
- BigQuery Data Viewer di project yang memerlukan akses hanya baca Dataform.
- BigQuery Job User di project yang menghosting repositori Dataform Anda.
- Pemilik Data BigQuery jika Anda ingin membuat kueri set data BigQuery.
- Peran BigQuery untuk kontrol akses tingkat kolom jika Anda ingin menggunakan tag kebijakan BigQuery.
Akun layanan yang diberi peran yang diperlukan dapat memperoleh akses ke BigQuery atau Secret Manager di project tempat akun layanan tersebut berada, terlepas dari Kontrol Layanan VPC.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Kontrol Layanan VPC untuk Dataform.
Setiap pengguna yang memiliki izin IAM
dataform.repositories.create
dapat menjalankan kode menggunakan akun layanan Dataform default dan semua izin yang diberikan ke akun layanan tersebut.Untuk mengetahui informasi selengkapnya, lihat Pertimbangan keamanan untuk izin Dataform.
- Untuk mengubah konfigurasi alur kerja dengan kredensial pengguna Akun Google lain yang terlampir, Anda harus melampirkan kredensial pengguna Akun Google Anda sendiri ke konfigurasi alur kerja atau mengubah konfigurasi alur kerja untuk melakukan autentikasi dengan akun layanan.
- Anda tidak dapat mengubah hasil kompilasi untuk konfigurasi rilis jika ada konfigurasi alur kerja yang mereferensikan konfigurasi rilis yang memiliki kredensial pengguna Akun Google lain yang dilampirkan.
Anda tidak dapat menyetel konfigurasi alur kerja untuk melakukan autentikasi dengan kredensial pengguna Akun Google dan mereferensikan konfigurasi rilis dengan jadwal. Batasan ini memiliki konsekuensi berikut:
- Anda tidak dapat memperbarui konfigurasi rilis untuk menggunakan jadwal jika ada konfigurasi alur kerja yang mereferensikan konfigurasi rilis yang ditetapkan untuk melakukan autentikasi dengan kredensial pengguna Akun Google.
- Anda tidak dapat membuat konfigurasi alur kerja yang melakukan autentikasi dengan kredensial pengguna Akun Google dan mengarah ke konfigurasi rilis dengan jadwal.
- Anda tidak dapat membuat atau memperbarui konfigurasi alur kerja untuk menggunakan kredensial pengguna Akun Google dan mengarah ke konfigurasi rilis dengan jadwal.
Di konsol Google Cloud , buka halaman Dataform.
Pilih atau buat repositori.
Di konsol Google Cloud , buka halaman IAM.
Klik Grant Access.
Di kolom New principals, masukkan ID akun layanan atau email Akun Google pengguna (Pratinjau).
Di daftar Select a role, pilih peran BigQuery Job User.
Klik Add another role, lalu di daftar Select a role, pilih peran BigQuery Data Editor.
Klik Add another role, lalu di daftar Select a role, pilih peran BigQuery Data Viewer.
Klik Simpan.
Di konsol Google Cloud , buka IAM > Service accounts.
Pilih project.
Di halaman Service accounts for project "PROJECT_NAME", pilih akun layanan Dataform kustom Anda.
Buka Izin, lalu klik Berikan Akses.
Di kolom New principals, masukkan ID akun layanan Dataform default Anda.
ID akun layanan Dataform default Anda memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Dalam daftar Select a role, pilih peran Service Account Token Creator.
Klik Simpan.
dataform.commentThreads.create
dataform.commentThreads.delete
dataform.commentThreads.get
dataform.commentThreads.list
dataform.commentThreads.update
dataform.comments.create
dataform.comments.delete
dataform.comments.get
dataform.comments.list
dataform.comments.update
dataform.
compilationResults. create dataform.
compilationResults. get dataform.
compilationResults. list dataform.
compilationResults. query dataform.config.get
dataform.config.update
dataform.locations.get
dataform.locations.list
dataform.releaseConfigs.create
dataform.releaseConfigs.delete
dataform.releaseConfigs.get
dataform.releaseConfigs.list
dataform.releaseConfigs.update
dataform.repositories.commit
dataform.
repositories. computeAccessTokenStatus dataform.repositories.create
dataform.repositories.delete
dataform.
repositories. fetchHistory dataform.
repositories. fetchRemoteBranches dataform.repositories.get
dataform.
repositories. getIamPolicy dataform.repositories.list
dataform.
repositories. queryDirectoryContents dataform.repositories.readFile
dataform.
repositories. setIamPolicy dataform.repositories.update
dataform.
workflowConfigs. create dataform.
workflowConfigs. delete dataform.workflowConfigs.get
dataform.workflowConfigs.list
dataform.
workflowConfigs. update dataform.
workflowInvocations. cancel dataform.
workflowInvocations. create dataform.
workflowInvocations. delete dataform.
workflowInvocations. get dataform.
workflowInvocations. list dataform.
workflowInvocations. query dataform.workspaces.commit
dataform.workspaces.create
dataform.workspaces.delete
dataform.
workspaces. fetchFileDiff dataform.
workspaces. fetchFileGitStatuses dataform.
workspaces. fetchGitAheadBehind dataform.workspaces.get
dataform.
workspaces. getIamPolicy dataform.
workspaces. installNpmPackages dataform.workspaces.list
dataform.
workspaces. makeDirectory dataform.
workspaces. moveDirectory dataform.workspaces.moveFile
dataform.workspaces.pull
dataform.workspaces.push
dataform.
workspaces. queryDirectoryContents dataform.workspaces.readFile
dataform.
workspaces. removeDirectory dataform.workspaces.removeFile
dataform.workspaces.reset
dataform.
workspaces. searchFiles dataform.
workspaces. setIamPolicy dataform.workspaces.writeFile
dataform.commentThreads.create
dataform.commentThreads.delete
dataform.commentThreads.get
dataform.commentThreads.list
dataform.commentThreads.update
dataform.comments.create
dataform.comments.delete
dataform.comments.get
dataform.comments.list
dataform.comments.update
dataform.locations.get
dataform.locations.list
dataform.commentThreads.create
dataform.commentThreads.delete
dataform.commentThreads.get
dataform.commentThreads.list
dataform.commentThreads.update
dataform.comments.create
dataform.comments.delete
dataform.comments.get
dataform.comments.list
dataform.comments.update
dataform.
compilationResults. create dataform.
compilationResults. get dataform.
compilationResults. list dataform.
compilationResults. query dataform.locations.get
dataform.locations.list
dataform.commentThreads.create
dataform.commentThreads.delete
dataform.commentThreads.get
dataform.commentThreads.list
dataform.commentThreads.update
dataform.comments.create
dataform.comments.delete
dataform.comments.get
dataform.comments.list
dataform.comments.update
dataform.
compilationResults. create dataform.
compilationResults. get dataform.
compilationResults. list dataform.
compilationResults. query dataform.locations.get
dataform.locations.list
dataform.repositories.commit
dataform.
repositories. computeAccessTokenStatus dataform.repositories.create
dataform.repositories.delete
dataform.
repositories. fetchHistory dataform.
repositories. fetchRemoteBranches dataform.repositories.get
dataform.
repositories. getIamPolicy dataform.repositories.list
dataform.
repositories. queryDirectoryContents dataform.repositories.readFile
dataform.
repositories. setIamPolicy dataform.repositories.update
dataform.workspaces.commit
dataform.workspaces.create
dataform.workspaces.delete
dataform.
workspaces. fetchFileDiff dataform.
workspaces. fetchFileGitStatuses dataform.
workspaces. fetchGitAheadBehind dataform.workspaces.get
dataform.
workspaces. getIamPolicy dataform.
workspaces. installNpmPackages dataform.workspaces.list
dataform.
workspaces. makeDirectory dataform.
workspaces. moveDirectory dataform.workspaces.moveFile
dataform.workspaces.pull
dataform.workspaces.push
dataform.
workspaces. queryDirectoryContents dataform.workspaces.readFile
dataform.
workspaces. removeDirectory dataform.workspaces.removeFile
dataform.workspaces.reset
dataform.
workspaces. searchFiles dataform.
workspaces. setIamPolicy dataform.workspaces.writeFile
dataform.
compilationResults. create dataform.
compilationResults. get dataform.
compilationResults. list dataform.
compilationResults. query dataform.locations.get
dataform.locations.list
dataform.
compilationResults. create dataform.
compilationResults. get dataform.
compilationResults. list dataform.
compilationResults. query dataform.locations.get
dataform.locations.list
dataform.
workflowInvocations. cancel dataform.
workflowInvocations. create dataform.
workflowInvocations. delete dataform.
workflowInvocations. get dataform.
workflowInvocations. list dataform.
workflowInvocations. query dataform.locations.get
dataform.locations.list
- Admin BigQuery (
roles/bigquery.admin
) - BigQuery Job User (
roles/bigquery.jobUser
) - Pengguna BigQuery Studio (
roles/bigquery.studioUser
) - Pengguna BigQuery (
roles/bigquery.user
) - Pembuat Kode (
roles/dataform.codeCreator
) - Editor Kode (
roles/dataform.codeEditor
) - Pemilik Kode (
roles/dataform.codeOwner
) - Pengguna Colab Enterprise (
roles/aiplatform.colabEnterpriseUser
) - Dataform Admin (
roles/dataform.admin
) Buka halaman IAM & Admin > Roles.
Di kolom Filter, pilih Digunakan di, ketik
Dataform
, lalu tekan Enter.Klik salah satu peran yang tercantum untuk melihat izin peran di panel kanan.
Misalnya, peran Admin Dataform memiliki akses penuh ke semua resource Dataform.
Di terminal, teruskan permintaan
repositories.setIamPolicy
Dataform API dengan kebijakan akses.Dalam kebijakan, ikat pengguna, grup, domain, atau akun layanan ke peran yang dipilih dalam format berikut:
{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "TYPE:IDENTIFIER", ] }, ], } }
Ganti kode berikut:
ROLE
: peran IAM Dataform yang ingin Anda berikan di repositori.TYPE
:user
,group
,domain
, atauserviceAccount
.IDENTIFIER
: pengguna, grup, domain, atau akun layanan yang ingin Anda beri peran.
Di halaman IAM, pastikan semua pengguna dapat melihat daftar lengkap repositori Dataform melalui peran Dataform dengan izin
dataform.repositories.list
.Di IAM, pastikan hanya pengguna yang memerlukan akses penuh ke semua repositori Dataform yang diberi peran Dataform Admin di semua repositori.
Di terminal, teruskan permintaan
repositories.setIamPolicy
Dataform API dengan kebijakan akses.Dalam kebijakan, ikat akun utama
allAuthenticatedUsers
ke peran yang dipilih dalam format berikut:{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "allAuthenticatedUsers", ] }, ], } }
Ganti
ROLE
dengan peran IAM Dataform yang ingin Anda berikan kepada semua pengguna yang diautentikasi.Di konsol Google Cloud , buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, luaskan direktori
definitions/
.Pilih file definisi
.sqlx
dari tabel atau tampilan yang ingin Anda beri akses.Di file tersebut, masukkan cuplikan kode berikut:
post_operations { GRANT "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST" }
Ganti kode berikut:
ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan.
RESOURCE_TYPE:
TABLE
atauVIEW
.USER_LIST: daftar pengguna yang dipisahkan koma yang diberi peran.
Untuk mengetahui daftar format yang valid, lihat user_list.
Opsional: Klik Format.
Jalankan tabel atau tampilan.
Jika Anda memberikan akses pada tabel inkremental, hapus pernyataan
GRANT
dari file definisi tabel setelah eksekusi pertama.Di konsol Google Cloud , buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, luaskan direktori
definitions/
.Pilih file definisi
.sqlx
tabel atau tampilan yang aksesnya ingin Anda batalkan.Di blok
post_operations
, masukkan pernyataanREVOKE
berikut:REVOKE "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} FROM "USER_LIST"
Ganti kode berikut:
- ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda batalkan.
- RESOURCE_TYPE:
TABLE
atauVIEW
. - USER_LIST: daftar pengguna yang dipisahkan koma yang perannya dicabut. Untuk mengetahui daftar format yang valid, lihat user_list.
Untuk mencabut akses yang diberikan dalam pernyataan
GRANT
dalam file, ganti pernyataanGRANT
dengan pernyataanREVOKE
.Opsional: Klik Format.
Jalankan tabel atau tampilan.
Jika Anda mencabut akses ke tabel inkremental, hapus pernyataan
REVOKE
dari file definisi tabel setelah eksekusi pertama.Di konsol Google Cloud , buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, di samping
definitions/
, klik menuMore.
Klik Create file.
Di kolom Tambahkan jalur file, masukkan nama file yang diikuti dengan
.sqlx
setelahdefinitions/
. Contohnya,definitions/table-access.sqlx
Nama file hanya boleh berisi angka, huruf, tanda hubung, dan garis bawah.
Klik Create file.
Di panel Files, luaskan direktori
definitions/
, lalu pilih file yang baru dibuat.Di file tersebut, masukkan cuplikan kode berikut:
config { type: "operations" } GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST" REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Ganti kode berikut:
- ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan atau batalkan.
- RESOURCE_TYPE:
TABLE
atauVIEW
. - RESOURCE_NAME: nama tabel atau tampilan.
- USER_LIST: daftar pengguna yang dipisahkan koma yang diberi atau dicabut perannya. Untuk mengetahui daftar format yang valid, lihat user_list.
Tambahkan pernyataan
GRANT
danREVOKE
sesuai kebutuhan.Untuk mencabut akses yang diberikan dalam pernyataan
GRANT
di file, ganti pernyataanGRANT
dengan pernyataanREVOKE
.Menghapus pernyataan
GRANT
tanpa menambahkan pernyataanREVOKE
tidak akan mencabut akses.
Opsional: Klik Format.
Jalankan file setelah setiap update.
- Jika Anda memberikan atau mencabut akses pada tabel inkremental, hapus pernyataan
GRANT
atauREVOKE
dari file setelah eksekusi pertama pernyataan.
- Jika Anda memberikan atau mencabut akses pada tabel inkremental, hapus pernyataan
- Untuk mempelajari IAM lebih lanjut, lihat Ringkasan IAM.
- Untuk mempelajari lebih lanjut cara mengelola akses ke resource, lihat Mengelola akses ke project, folder, dan organisasi
- Untuk mempelajari lebih lanjut konsep utama workforce identity federation, lihat Workforce identity federation.
- Untuk mempelajari lebih lanjut peran dan izin IAM BigQuery, lihat Kontrol akses dengan IAM.
- Untuk mempelajari lebih lanjut cara memberikan izin terperinci ke set data BigQuery, lihat Mengontrol akses ke set data.
Memberikan akses yang diperlukan Dataform
Bagian ini menunjukkan cara memberikan peran Identity and Access Management (IAM) yang diperlukan akun layanan Dataform untuk menjalankan alur kerja di BigQuery.
Tentang akun layanan di Dataform
Saat Anda membuat repositori Dataform pertama, Dataform akan otomatis membuat akun layanan default. Dataform menggunakan akun layanan default untuk berinteraksi dengan BigQuery atas nama Anda. Akun layanan Dataform default tidak diberi peran atau izin BigQuery apa pun secara default. Anda harus memberikan akses yang diperlukan ke akun layanan Dataform default.
ID akun layanan Dataform default Anda memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Ganti PROJECT_NUMBER dengan ID angka project Anda.Google Cloud Anda dapat menemukan Google Cloud project ID di dasbor konsolGoogle Cloud . Untuk mengetahui informasi selengkapnya, lihat Mengidentifikasi project.
Selain akun layanan Dataform default, Anda dapat menggunakan akun layanan lain untuk menjalankan alur kerja atas nama Anda. Anda dapat mengonfigurasi akun layanan kustom dengan cara berikut:
Saat membuat konfigurasi repositori atau alur kerja Dataform, Anda dapat memilih akun layanan apa pun yang terkait dengan project Google Cloud Anda yang dapat Anda akses. Anda harus mengonfigurasi izin yang diperlukan untuk semua akun layanan yang terkait dengan resource Dataform Anda.
Akun layanan kustom yang terkait dengan repositori Dataform hanya digunakan untuk menjalankan alur kerja dari repositori tersebut. Semua operasi repositori lainnya masih dilakukan oleh akun layanan Dataform default.
Peran yang diperlukan untuk akun layanan Dataform dan Akun Google
Akun layanan default dan kustom serta kredensial pengguna Akun Google (Pratinjau) yang digunakan untuk mengautentikasi di Dataform memerlukan peran IAM BigQuery berikut agar dapat menjalankan alur kerja di BigQuery:
Selain itu, Anda perlu memberikan
peran Service Account Token Creator
(roles/iam.serviceAccountTokenCreator
) kepada akun layanan Dataform default
agar akun tersebut dapat mengakses akun layanan kustom
yang ingin Anda gunakan di Dataform.
Jika Anda mengaktifkan mode bertindak sebagai yang ketat
(Pratinjau) dan mengonfigurasi setelan Frekuensi
untuk
konfigurasi alur kerja,
berikan peran
Pengguna Akun Layanan (roles/iam.serviceAccountUser
) kepada akun layanan Dataform default di akun layanan yang berlaku untuk konfigurasi alur kerja.
Pertimbangan keamanan untuk akun layanan Dataform dan Akun Google
Memberikan peran yang diperlukan oleh Dataform ke akun layanan atau Akun Google pengguna (Pratinjau) disertai pertimbangan keamanan berikut:
Untuk membatasi data yang dapat dibaca atau ditulis oleh pengguna atau akun layanan di BigQuery, Anda dapat memberikan izin IAM BigQuery terperinci ke set data atau tabel BigQuery tertentu. Untuk mengetahui informasi selengkapnya, lihat Mengontrol akses ke set data dan Mengontrol akses ke tabel dan tabel virtual.
Untuk mencegah pengguna melakukan tindakan saat menggunakan kredensial pengguna Akun Google milik pengguna lain, batasan berikut diberlakukan:
Memberikan peran BigQuery yang diperlukan ke akun layanan atau Akun Google yang digunakan di Dataform
Untuk memberikan peran IAM BigQuery yang diperlukan ke akun layanan Dataform default, akun layanan kustom yang ingin Anda gunakan di Dataform, atau Akun Google pengguna yang ingin Anda gunakan untuk melakukan autentikasi di Dataform (Pratinjau), ikuti langkah-langkah berikut:
Memberikan akses pembuatan token ke akun layanan kustom
Untuk menggunakan akun layanan kustom di Dataform, akun layanan Dataform default harus dapat mengakses akun layanan kustom. Untuk memberikan akses ini, Anda perlu menambahkan akun layanan Dataform default sebagai akun utama ke akun layanan kustom dengan peran Service Account Token Creator.
Untuk memberikan akses akun layanan Dataform default ke akun layanan kustom, ikuti langkah-langkah berikut:
Mengontrol akses ke Dataform dengan IAM
Bagian ini menjelaskan opsi kontrol akses untuk Dataform dan menunjukkan cara melihat serta memberikan peran Dataform. Dataform menggunakan Identity and Access Management (IAM) untuk kontrol akses. Untuk mengetahui informasi selengkapnya tentang peran dan izin di IAM, lihat Memahami peran dan izin.
Peran Dataform yang telah ditetapkan
Tabel berikut mencantumkan peran bawaan yang memberi Anda akses ke resource Dataform:
Role | Permissions |
---|---|
Dataform Admin( Full access to all Dataform resources. |
|
Code Commenter Beta( Permissions to comment, at the repository level. Grants CRUD access over commentThread and comment resources. |
|
Code Creator( Access only to private and shared code resources. The permissions in the Code Creator let you create and list code in Dataform, and access only the code that you created and code that was explicitly shared with you. |
|
Code Editor( Edit access code resources. |
|
Code Owner( Full access to code resources. |
|
Code Viewer( Read-only access to all code resources. |
|
Dataform Editor( Edit access to Workspaces and Read-only access to Repositories. |
|
Dataform Service Agent( Gives permission for the Dataform API to access a secret from Secret Manager |
|
Dataform Viewer( Read-only access to all Dataform resources. |
|
Peran Dataform kustom
Peran khusus dapat mencakup izin apa pun yang Anda tentukan. Anda dapat membuat peran kustom yang mencakup izin untuk melakukan operasi administratif tertentu, seperti membuat ruang kerja pengembangan atau membuat file dan direktori dalam ruang kerja pengembangan. Untuk membuat peran khusus, lihat Membuat dan mengelola peran khusus.
Pertimbangan keamanan untuk izin Dataform
Setiap pengguna yang memiliki izin dataform.repositories.create
dapat menjalankan kode di BigQuery menggunakan akun layanan Dataform default dan semua izin yang diberikan ke akun layanan tersebut. Hal ini mencakup
eksekusi alur kerja Dataform.
Izin dataform.repositories.create
disertakan dalam peran IAM berikut:
Untuk membatasi data yang dapat dibaca atau ditulis oleh pengguna atau akun layanan di BigQuery, Anda dapat memberikan izin IAM BigQuery terperinci ke set data atau tabel BigQuery tertentu. Untuk mengetahui informasi selengkapnya, lihat Mengontrol akses ke set data dan Mengontrol akses ke tabel dan tabel virtual.
Untuk mengetahui informasi selengkapnya tentang akun layanan Dataform default serta peran dan izin yang diperlukan, lihat Memberikan akses yang diperlukan Dataform.
Melihat peran Dataform
Di konsol Google Cloud , lakukan langkah-langkah berikut:
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran pada project, lihat Memberikan peran. Anda dapat memberikan peran standar atau khusus dengan cara ini.
Mengontrol akses ke repositori tertentu
Untuk mengontrol akses ke Dataform dengan izin terperinci, Anda dapat menetapkan peran IAM Dataform di setiap repositori menggunakan permintaan Dataform API repositories.setIamPolicy
.
Untuk menetapkan peran IAM Dataform di setiap repositori Dataform, ikuti langkah-langkah berikut:
Perintah berikut meneruskan permintaan repositories.setIamPolicy
Dataform API
yang memberikan peran Editor Dataform di repositori sales
kepada satu pengguna:
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.editor", "members": ["user:sasha@examplepetstore.com"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
Memberikan akses publik ke repositori
Anda dapat memberikan akses publik ke repositori Dataform dengan memberikan
peran IAM di repositori kepada akun utama allAuthenticatedUsers
.
Saat Anda menetapkan peran IAM ke akun utama allAuthenticatedUsers
, akun layanan dan semua pengguna di internet yang telah diautentikasi dengan Akun Google akan diberi peran tersebut. Hal ini mencakup akun yang tidak terhubung ke akun Google Workspace atau domain Cloud Identity, seperti akun Gmail pribadi. Pengguna yang tidak diautentikasi,
seperti pengunjung anonim, tidak akan disertakan. Untuk mengetahui informasi selengkapnya, lihat
Semua pengguna yang diautentikasi.
Misalnya, saat Anda memberikan peran Pelihat Dataform kepada
allAuthenticatedUsers
di repositori sales
, semua akun layanan dan
pengguna di internet yang telah diautentikasi dengan Akun Google memiliki
akses hanya baca ke semua resource kode sales
.
Untuk memberikan akses publik ke repositori Dataform, ikuti langkah-langkah berikut:
Perintah berikut meneruskan permintaan repositories.setIamPolicy
Dataform API
yang memberikan peran Dataform Viewer di repositori sales
kepada allAuthenticatedUsers
:
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.viewer", "members": ["allAuthenticatedUsers"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
Mencegah akses publik ke repositori
Untuk memastikan tidak ada akses yang diberikan kepada publik di repositori Dataform mana pun, Anda dapat membatasi prinsipal allAuthenticatedUsers
di project Anda.
Untuk membatasi allAuthenticatedUsers
di project Anda, Anda dapat
menetapkan kebijakan iam.allowedPolicyMemberDomains
,
dan menghapus allAuthenticatedUsers
dari daftar allowed_values
.
Saat Anda membatasi allAuthenticatedUsers
dalam kebijakan iam.allowedPolicyMemberDomains
, akun utama allAuthenticatedUsers
tidak dapat digunakan dalam kebijakan IAM apa pun di project Anda, yang mencegah pemberian akses publik ke semua resource, termasuk repositori Dataform.
Untuk mengetahui informasi selengkapnya tentang kebijakan iam.allowedPolicyMemberDomains
dan petunjuk untuk menyetelnya, lihat Membatasi identitas berdasarkan domain.
Workforce identity federation di Dataform
Workforce identity federation memungkinkan Anda menggunakan penyedia identitas (IdP) eksternal untuk mengautentikasi dan memberi otorisasi kepada pengguna untuk Google Cloud layanan dengan IAM.
Dataform mendukung workforce identity federation tanpa batasan yang diketahui.
Mengontrol akses ke setiap tabel dengan IAM
Bagian ini menunjukkan cara memberikan dan mencabut peran IAM BigQuery untuk setiap tabel dan tampilan Dataform.
Saat menjalankan tabel atau tampilan, Dataform akan membuat resource di BigQuery. Selama pengembangan di Dataform, Anda dapat memberikan peran BigQuery ke tabel dan tampilan tertentu untuk mengontrol aksesnya di BigQuery setelah eksekusi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan dan mencabut akses ke resource, lihat Memberikan akses ke resource.
Memberikan peran BigQuery ke tabel atau tampilan
Anda dapat memberikan peran BigQuery ke tabel atau tampilan di
Dataform dengan menambahkan blok post_operations
dengan
pernyataan DCL GRANT
ke file definisi .sqlx
dari tabel atau tampilan yang dipilih.
Untuk memberikan peran BigQuery ke tabel atau tampilan yang dipilih, ikuti langkah-langkah berikut:
Contoh kode berikut menunjukkan peran Pelihat BigQuery yang diberikan pada tabel kepada pengguna:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON TABLE ${self()}
TO "user:222larabrown@gmail.com"
}
Mencabut peran BigQuery dari tabel atau tampilan
Anda dapat mencabut peran BigQuery dari tabel atau tampilan dengan menambahkan blok
post_operations
dengan
pernyataan DCL REVOKE
ke file definisi .sqlx
dari tabel atau tampilan yang dipilih.
Untuk mencabut peran BigQuery dari tabel atau tampilan yang dipilih, ikuti langkah-langkah berikut:
Contoh kode berikut menunjukkan peran Pelihat BigQuery yang dicabut dari pengguna pada tabel:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer`
ON TABLE ${self()}
FROM "user:222larabrown@gmail.com"
}
Mengelola peran BigQuery untuk tabel dan tampilan secara kolektif
Untuk mengontrol akses BigQuery ke setiap tabel dan tampilan di satu lokasi, Anda dapat membuat file type: "operations"
khusus dengan pernyataan DCL
GRANT
dan
REVOKE
.
Untuk mengelola akses tabel BigQuery dalam satu file type: "operations"
, ikuti langkah-langkah berikut: