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
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
Memberikan akses yang diperlukan ke Dataform
Bagian ini menunjukkan cara memberikan peran Identity and Access Management (IAM) yang diperlukan oleh agen layanan Dataform dan akun layanan kustom untuk menjalankan alur kerja di BigQuery.
Tentang akun layanan kustom dan agen layanan Dataform
Anda dapat mengonfigurasi akun layanan kustom untuk menjalankan alur kerja atas nama Anda dengan cara berikut:
- Di tingkat repositori, untuk menjalankan semua alur kerja dalam repositori tertentu.
- Satu per satu untuk setiap konfigurasi alur kerja.
Saat membuat konfigurasi alur kerja atau repositori Dataform, Anda dapat memilih akun layanan apa pun yang memiliki izin bertindak sebagai untuk akun tersebut. Anda harus mengonfigurasi izin bertindak sebagai yang diperlukan untuk semua akun layanan yang terkait dengan resource Dataform Anda.
Saat Anda membuat repositori Dataform pertama, Dataform akan otomatis membuat agen layanan. Dataform menggunakan agen layanan untuk berinteraksi dengan BigQuery atas nama Anda.
ID agen layanan Dataform Anda dalam format berikut:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Ganti PROJECT_NUMBER dengan ID angka project Google Cloud Anda. Anda dapat menemukan ID project di dasbor konsol Google Cloud .Google Cloud Untuk mengetahui informasi selengkapnya, lihat Menemukan nama, nomor, dan ID project.
Peran yang diperlukan untuk agen layanan Dataform, akun layanan kustom, dan Akun Google
Agen layanan Dataform, akun layanan kustom, dan kredensial pengguna untuk Akun Google (Pratinjau) yang digunakan untuk mengautentikasi di Dataform memerlukan peran IAM BigQuery berikut agar dapat menjalankan alur kerja di BigQuery:
- BigQuery Data Editor
(
roles/bigquery.dataEditor) di project yang memerlukan akses baca dan tulis Dataform. Hal ini biasanya mencakup project yang menghosting repositori Dataform Anda. - BigQuery Data Viewer
(
roles/bigquery.dataViewer) di project yang memerlukan akses hanya baca Dataform. - BigQuery Job User
(
roles/bigquery.jobUser) di project yang menghosting repositori Dataform Anda. - BigQuery Data Owner
(
roles/bigquery.dataOwner) jika Anda ingin membuat kueri set data BigQuery. - Peran BigQuery untuk kontrol akses tingkat kolom jika Anda ingin menggunakan tag kebijakan BigQuery.
Selain itu, berikan peran berikut kepada agen layanan Dataform di akun layanan efektif untuk konfigurasi alur kerja. Peran ini diperlukan agar mode berperan sebagai (act-as) ketat berfungsi.
- Service Account User
(
roles/iam.serviceAccountUser) - Service Account Token Creator
(
roles/iam.serviceAccountTokenCreator)
Untuk rilis repositori otomatis dan eksekusi alur kerja otomatis, berikan izin iam.serviceAccounts.actAs kepada agen layanan Dataform di akun layanan efektif.
Pertimbangan keamanan
Memberikan peran yang diperlukan oleh Dataform kepada agen layanan Dataform, akun layanan kustom, atau Akun Google pengguna (Pratinjau) disertai pertimbangan keamanan berikut:
Akun layanan kustom 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. Saat Dataform menggunakan akun layanan kustom untuk mengeksekusi alur kerja, permintaan Dataform diperlakukan seolah-olah berasal dari dalam perimeter Kontrol Layanan VPC project yang berisi repositori Anda. Oleh karena itu, Kontrol Layanan VPC tidak memblokir komunikasi antara Dataform dan layanan lain, seperti BigQuery atau Secret Manager, jika resource tersebut berada dalam perimeter layanan yang sama.
Untuk mengetahui detail selengkapnya tentang cara mengelola batas keamanan ini, lihat Mengonfigurasi Kontrol Layanan VPC.
Setiap pengguna yang memiliki izin IAM
dataform.repositories.createdapat menjalankan kode menggunakan agen layanan Dataform dan semua izin yang diberikan ke agen layanan atau akun layanan tersebut.Untuk mengetahui informasi selengkapnya, lihat Pertimbangan keamanan untuk izin Dataform.
Untuk mempertahankan model izin yang aman, audit pengikatan peran agen layanan Dataform secara rutin. Untuk petunjuk pemantauan mendetail, lihat Memantau izin agen layanan dengan Security Command Center.
Untuk membatasi data yang dapat dibaca atau ditulis oleh pengguna, agen layanan, 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 untuk Akun Google pengguna lain, batasan berikut diterapkan:
- Untuk mengubah konfigurasi alur kerja dengan kredensial pengguna Akun Google lain yang dilampirkan ke konfigurasi tersebut, Anda harus melampirkan kredensial pengguna untuk Akun Google Anda sendiri ke konfigurasi alur kerja atau mengubah konfigurasi alur kerja untuk melakukan autentikasi dengan akun layanan kustom.
- 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 terlampir.
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.
Memberikan peran BigQuery yang diperlukan
Untuk memberikan peran IAM BigQuery yang diperlukan kepada agen layanan Dataform, 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:
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 agen layanan, ID akun layanan, atau email Akun Google pengguna (Pratinjau).
Pada 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.
Memberikan peran yang diperlukan untuk alur kerja otomatis
Untuk menggunakan akun layanan kustom di Dataform, agen layanan Dataform harus dapat mengakses akun layanan kustom. Hal ini memungkinkan Dataform menjalankan alur kerja Anda menggunakan izin yang ditentukan di akun layanan kustom Anda, bukan di akun agen layanan.
Untuk memberikan akses ini, Anda perlu memberikan
peran Service Account Token Creator
(roles/iam.serviceAccountTokenCreator) kepada agen layanan
Dataform sebagai akun utama. Hal ini memungkinkan agen layanan Dataform
meniru identitas akun layanan dengan membuat kredensial berjangka pendek
yang dikenal sebagai token. Token ini diperlukan agar Dataform dapat menjalankan alur kerja menggunakan identitas akun layanan kustom.
Anda juga perlu memberikan
peran Pengguna Akun Layanan
(roles/iam.serviceAccountUser) kepada agen
layanan Dataform. Hal ini memungkinkan agen layanan Dataform memulai
jalankan alur kerja otomatis baru untuk konfigurasi alur kerja yang dijalankan oleh akun layanan kustom.
Untuk memberikan akses agen layanan Dataform ke akun layanan kustom, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka IAM > Service accounts.
Pilih project Google Cloud tempat akun layanan kustom Anda berada.
Di halaman Service accounts for project "PROJECT_NAME", pilih akun layanan kustom Anda.
Buka Principals with access, lalu klik Grant Access.
Di kolom New principals, masukkan ID agen layanan Dataform Anda.
ID agen layanan Dataform Anda dalam format berikut:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comDi daftar Select a role, pilih peran Service Account Token Creator dan peran Service Account User.
Klik Simpan.
Akun layanan kustom kini siap dikonfigurasi dalam repositori Dataform Anda.
Mengaudit konfigurasi akun layanan
Bagian ini menunjukkan cara mengaudit resource Dataform untuk memastikan penggunaan akun layanan dan pemberian izin yang tepat. Audit sangat penting saat menggunakan akun layanan kustom, karena akun tersebut memerlukan izin tertentu agar agen layanan Dataform dapat beroperasi.
Saat menggunakan akun layanan kustom untuk konfigurasi repositori atau alur kerja Dataform, Anda harus memverifikasi bahwa agen layanan Dataform memiliki peran Pengguna Akun Layanan (roles/iam.serviceAccountUser) di akun layanan kustom. Peran ini memberikan izin iam.serviceAccounts.actAs, yang memungkinkan eksekusi terjadwal, yang dimulai oleh agen layanan Dataform, meniru identitas akun layanan kustom. Selain itu, pastikan agen layanan Dataform memiliki
peran Service Account Token Creator
(roles/iam.serviceAccountTokenCreator)
di akun layanan yang berlaku.
Memverifikasi akun layanan repositori
Pertama, identifikasi aset dataform.Repository yang termasuk dalam cakupan penjadwalan dan eksekusi Dataform. Kemudian, verifikasi konfigurasi akun layanan untuk repositori dalam cakupan tersebut.
Gunakan Inventaris Aset Cloud untuk mencantumkan semua resource jenis
dataform.Repository. Untuk mengetahui informasi selengkapnya, lihat artikel Melihat aset Anda.Untuk setiap repositori dalam output Inventaris Aset Cloud, periksa kolom
resource.data.labelsuntuk menentukan apakah repositori tersebut termasuk dalam cakupan. Jalur yang tepat mungkin sedikit berbeda berdasarkan format ekspor Anda.Identifikasi repositori di luar cakupan dengan memeriksa peta label untuk kunci
single-file-asset-type. Keberadaan kunci ini menunjukkan bahwa repositori digunakan oleh fitur BigQuery. Jika nilainya adalahsqlataudata_canvas, repositori dapat dikecualikan dari pemeriksaan izin akun layanan.Repositori yang tersisa yang tidak memiliki kunci atau nilai ini berada dalam cakupan pemeriksaan izin akun layanan.
Untuk setiap repositori dalam cakupan, periksa kolom
resource.data.serviceAccountdalam output Inventaris Aset Cloud untuk menentukan apakah akun layanan kustom dikonfigurasi:- Jika kolom
resource.data.serviceAccountada dan nilainya berbeda dengan alamat email agen layanan Dataform project, repositori akan menggunakan akun layanan kustom. Jika kolom
resource.data.serviceAccounttidak ada, atau jika nilai kolom cocok dengan agen layanan Dataform project, repositori akan menggunakan agen layanan.
- Jika kolom
Jika akun layanan kustom digunakan, pastikan agen layanan Dataform memiliki peran Pengguna Akun Layanan (
roles/iam.serviceAccountUser) dan peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator) di akun layanan kustom tersebut.
Memverifikasi akun layanan konfigurasi alur kerja
Menggunakan akun layanan kustom khusus untuk konfigurasi alur kerja Dataform adalah praktik terbaik keamanan, yang selaras dengan prinsip hak istimewa terendah.
Untuk memverifikasi penggunaan akun layanan untuk dataform.WorkflowConfig resources, lakukan hal berikut:
Gunakan Inventaris Aset Cloud untuk mencantumkan semua resource jenis
dataform.WorkflowConfig.Untuk setiap konfigurasi alur kerja, periksa output Inventaris Aset Cloud untuk menentukan akun layanan yang efektif:
- Jika kolom
resource.data.serviceAccountada, nilai ini adalah alamat email akun layanan yang ditetapkan secara eksplisit pada konfigurasi alur kerja. - Jika kolom
resource.data.serviceAccounttidak ada, konfigurasi alur kerja akan mewarisi akun layanan dari repositori induknya. Periksa konfigurasi repositori induk untuk menemukan akun layanan yang efektif.
- Jika kolom
Identifikasi apakah akun layanan kustom sedang digunakan dengan membandingkan alamat email akun layanan efektif dengan alamat email agen layanan Dataform project. Jika berbeda, akun layanan kustom sedang digunakan.
Jika akun layanan kustom sedang digunakan, pastikan agen layanan Dataform memiliki peran Pengguna Akun Layanan (
roles/iam.serviceAccountUser) dan peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator) yang diberikan di akun layanan kustom tersebut. Dengan izin ini, agen layanan Dataform dapat memulai eksekusi alur kerja dengan meniru identitas akun layanan kustom.
Memantau izin agen layanan dengan Security Command Center
Untuk memastikan kepatuhan berkelanjutan terhadap prinsip hak istimewa terendah, pantau project Anda secara aktif di Security Command Center untuk menemukan temuan terkait akun layanan dan agen layanan yang memiliki hak istimewa berlebih.
Untuk mengetahui petunjuk tentang cara meninjau dan menerapkan temuan perbaikan di Security Command Center, lihat Temuan pemberi rekomendasi IAM dan Menyelidiki temuan identitas di konsol.
Saat Anda memperbaiki temuan SERVICE_AGENT_GRANTED_BASIC_ROLE untuk agen layanan Dataform, ganti peran yang terlalu permisif dengan peran bawaan yang memiliki izin minimum yang diperlukan, yang dicakup ke resource tertentu. Misalnya, berikan peran Service Account User (roles/iam.serviceAccountUser) pada akun layanan tertentu.
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 indeks peran dan izin IAM.
Peran Dataform bawaan
Tabel berikut mencantumkan peran bawaan yang memberi Anda akses ke resource Dataform:
| Role | Permissions |
|---|---|
Dataform Admin( Full access to all Dataform resources. |
|