Memecahkan masalah kontrol akses
Gunakan dokumen ini untuk memecahkan masalah keamanan dan izin BigQuery, termasuk izin Identity and Access Management (IAM), kontrol akses tingkat kolom, kunci enkripsi yang dikelola pelanggan (CMEK), dan pelanggaran kebijakan. Kegagalan kontrol akses biasanya menghasilkan error Access Denied atau 403 Forbidden saat akun utama menjalankan tugas atau mengakses resource.
Error akses ditolak yang umum
Berikut adalah contoh error akses ditolak yang umum:
Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.Access Denied: Project PROJECT_ID: User does not have bigquery.datasets.get permission on dataset DATASET.User does not have permission to query table PROJECT_ID:DATASET.TABLE.Access Denied: Table PROJECT_ID:DATASET.TABLE: User does not have permission to query table PROJECT_ID:DATASET.TABLE, or perhaps it does not exist.Access Denied: User PRINCIPAL does not have permission to perform bigquery.tables.getData on resource 'projects/PROJECT_ID/datasets/DATASET/tables/TABLE'.
Sebelum memulai
- Untuk memecahkan masalah akses akun utama ke resource BigQuery, pastikan Anda memiliki izin IAM yang diperlukan.
Mengumpulkan informasi tentang masalah
Langkah pertama dalam memecahkan masalah akses resource adalah menentukan izin yang tidak ada, akun utama IAM yang ditolak aksesnya, dan resource yang coba diakses oleh akun utama.
Mendapatkan informasi dari error atau histori tugas
Untuk mendapatkan informasi tentang akun utama, resource, dan izin, periksa output dari alat command line bq, respons API, atau BigQuery di konsol Google Cloud .
Misalnya, jika Anda mencoba menjalankan kueri dengan izin yang tidak memadai, Anda akan melihat error seperti berikut di tab Job information di bagian Query results di konsol Google Cloud .
Periksa error untuk menentukan akun utama, resource, dan izin.
Dalam beberapa kasus, Anda mungkin dapat meminta izin yang tidak ada langsung dari pesan error. Untuk mengetahui informasi selengkapnya, lihat Pesan error izin dalam dokumentasi IAM.
Mendapatkan informasi dari Cloud Audit Logs
Jika pesan error bersifat umum, tidak ada informasi, atau jika tindakan gagal dalam proses latar belakang, gunakan Logs Explorer Cloud Audit Logs untuk mendapatkan informasi tentang error tersebut.
Di konsol Google Cloud , buka halaman Logs Explorer.
Atau, dari menu navigasi, pilih Monitoring > Logs Explorer.
Di Logs Explorer, untuk cakupan log, pilih Project logs.
Di jendela kueri, masukkan kueri berikut untuk mendapatkan error terkait izin dari log akses data BigQuery:
resource.type=("bigquery_resource" OR "bigquery_project" OR "bigquery_dataset") AND logName=("projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity") AND (protoPayload.status.message:"Access Denied" OR protoPayload.status.message:"Permission denied" OR protoPayload.status.code=7)
Ganti PROJECT_ID dengan project ID Anda.
Di hasil kueri, luaskan entri log yang sesuai dengan operasi Anda yang gagal.
Di bagian
protoPayload, luaskan arrayauthorizationInfo, lalu luaskan setiap node dalam arrayauthorizationInfo.Array
authorizationInfomenampilkan setiap pemeriksaan izin yang dilakukan selama panggilan API.Untuk melihat penyebab error, cari entri
granted: false. Entrigranted: falsemenampilkan informasi berikut:permission: String izin IAM yang diperiksa. Contoh,bigquery.tables.getData.resource: Nama yang sepenuhnya memenuhi syarat dari resource yang coba diakses oleh akun utama. Contoh,projects/myproject/datasets/mydataset/tables/mytable.principalEmail(jika tersedia): Direferensikan dalamprotoPayload.authenticationInfo, ini adalah akun utama yang mencoba tindakan tersebut.
Menggunakan Penganalisis Kebijakan untuk kebijakan izin
Penganalisis Kebijakan untuk kebijakan izin memungkinkan Anda mengetahui akun utama IAM mana yang memiliki akses tertentu ke resource BigQuery tertentu berdasarkan kebijakan izin IAM Anda.
Setelah mengumpulkan informasi tentang error izin, Anda dapat menggunakan Penganalisis Kebijakan untuk memahami alasan akun utama tidak memiliki akses yang diperlukan. Alat ini menganalisis semua kebijakan yang relevan, keanggotaan di Google Grup, dan pewarisan dari resource induk seperti project, folder, dan organisasi Anda.
Untuk menggunakan Penganalisis Kebijakan untuk kebijakan izin, buat kueri analisis, tentukan cakupan untuk analisis, lalu jalankan kueri.
Di konsol Google Cloud , buka halaman Penganalisis Kebijakan.
Atau, dari menu navigasi, pilih IAM & Admin > Penganalisis Kebijakan.
Klik Create Custom Query.
Di halaman Configure your query, masukkan informasi yang Anda kumpulkan sebelumnya:
Di bagian Select the scope, di kolom Select query scope, pastikan project Anda saat ini muncul atau klik Browse untuk memilih resource lain.
Di bagian Set the query parameters, untuk Parameter 1, pilih Principal, dan di kolom Principal, masukkan email pengguna, grup, atau akun layanan.
Klik Tambahkan parameter.
Untuk Parameter 2, pilih Permission, dan di kolom Permission, klik Select, pilih izin BigQuery, lalu klik Add. Misalnya, pilih
bigquery.tables.getData.Klik Tambahkan parameter.
Untuk Parameter 3, pilih Resource, dan di kolom Resource, masukkan nama resource yang sepenuhnya memenuhi syarat. Nama resource harus menyertakan awalan layanan seperti dalam contoh berikut:
- Project BigQuery:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID - BigQuery dataset:
//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET - Tabel BigQuery:
//bigquery.googleapis.com/projects/PROJECT/datasets/DATASET/tables/TABLE
- Project BigQuery:
Di panel Custom query, klik Analyze > Run query.
Periksa hasil kueri. Hasilnya dapat berupa salah satu dari berikut:
- Daftar kosong. Tidak ada hasil yang mengonfirmasi bahwa akun utama tidak memiliki izin yang diperlukan. Anda harus memberikan peran kepada akun utama yang memberikan izin yang benar.
- Satu atau beberapa hasil. Jika penganalisis menemukan kebijakan izin, berarti ada beberapa bentuk akses. Klik View Binding di setiap hasil untuk melihat peran yang memberikan akses ke resource yang mencakup akun utama sebagai anggotanya. Binding kebijakan menunjukkan apakah akses diberikan melalui keanggotaan grup atau pewarisan, atau apakah akses ditolak oleh kondisi IAM atau kebijakan penolakan IAM.
Menemukan peran IAM yang benar yang memberikan izin yang diperlukan
Setelah Anda mengonfirmasi bahwa akun utama tidak memiliki akses yang memadai, langkah berikutnya adalah menemukan peran IAM yang telah ditetapkan atau khusus yang sesuai yang memberikan izin yang diperlukan. Peran yang Anda pilih harus mematuhi prinsip hak istimewa terendah.
Jika organisasi Anda menggunakan peran khusus, Anda dapat menemukan peran yang benar dengan mencantumkan semua peran khusus yang dibuat dalam project atau organisasi Anda. Misalnya, di konsol Google Cloud , di halaman Roles, Anda dapat memfilter daftar menurut Type:Custom untuk melihat peran khusus saja.
Untuk menemukan peran IAM yang telah ditetapkan dengan benar, ikuti langkah-langkah berikut.
Buka bagian izin BigQuery di halaman peran dan izin IAM BigQuery.
Di kotak penelusuran Enter a permission, masukkan izin yang Anda ambil dari pesan error, histori tugas, atau log audit. Contoh,
bigquery.tables.getData.Hasil penelusuran menampilkan semua peran BigQuery yang telah ditetapkan dan memberikan izin.
Terapkan prinsip hak istimewa terendah: dalam daftar peran, pilih peran yang paling tidak permisif yang memberikan izin yang diperlukan. Misalnya, jika Anda menelusuri
bigquery.tables.getDatauntuk memberikan kemampuan membuat kueri data tabel, BigQuery Data Viewer adalah peran dengan izin paling rendah yang memberikan izin tersebut.Berikan peran yang sesuai kepada akun utama. Untuk mengetahui informasi tentang cara memberikan peran IAM ke resource BigQuery, lihat Mengontrol akses ke resource dengan IAM.
Memecahkan masalah skenario umum Akses Ditolak
Jika operasi gagal dengan 403 accessDenied (Access Denied:
RESOURCE_TYPE RESOURCE_ID: DETAILS),
periksa skenario umum berikut selain langkah-langkah IAM umum
sebelumnya:
- Resource tidak ada atau ketidakcocokan lokasi (
or perhaps it does not exist). Jika pesan error diakhiri denganor perhaps it does not exist, BigQuery akan menyamarkan apakah tabel, tampilan, atau rutinitas ada karena akun utama tidak memiliki izin metadata set data atau project (bigquery.tables.getataubigquery.datasets.get). Pastikan project ID, ID set data, dan nama tabel dieja dengan benar, dan pastikan kueri Anda berjalan di lokasi yang sama dengan set data. Tampilan dan rutinitas yang diotorisasi. Saat pengguna mengkueri tampilan yang diotorisasi atau rutinitas yang diotorisasi, pengguna memerlukan izin untuk mengkueri tampilan atau rutinitas, dan tampilan atau rutinitas itu sendiri harus diotorisasi pada daftar kontrol akses (ACL) set data sumber. Jika kueri gagal dengan
Access Deniedpada tabel dasar yang mendasarinya, tambahkan tampilan atau rutinitas (atau seluruh set datanya sebagai set data yang diotorisasi) ke daftar akses yang diotorisasi set data sumber. Jika suatu tampilan mengkueri tampilan lain, setiap tampilan dalam rantai harus diotorisasi pada set data yang dibaca.Jika tampilan yang diotorisasi atau set data yang diotorisasi dihapus dan tampilan atau set data lain dibuat dengan nama yang sama, kueri dapat gagal dengan
Access Denied. Error ini dapat terjadi meskipun nama masih muncul dalam daftar akses yang diotorisasi set data sumber, tempat entri yang dihapus dapat tetap ada hingga 24 jam. Periksa Cloud Audit Logs untuk melihat apakah tampilan yang diizinkan atau set data yang diizinkan dalam rantai telah dihapus dan diganti sejak kueri terakhir berhasil. Untuk memulihkan akses, hapus terlebih dahulu entri yang ada dari daftar akses yang diotorisasi set data sumber, lalu tambahkan kembali tampilan atau set data baru. Menambahkan tampilan baru sebelum Anda menghapus entri lama dapat gagal dengan errorDuplicate authorized views.Untuk mengubah tampilan tanpa merusak otorisasi, perbarui kueri SQL tampilan, bukan menghapus dan membuat ulang tampilan. Namun, jika Anda mengubah rutinitas yang diizinkan dengan pernyataan
CREATE OR REPLACEatau metoderoutines.update, Anda harus memberikan otorisasi ulang pada rutinitas tersebut.Kontrol Layanan VPC. Jika organisasi Anda menggunakan Kontrol Layanan VPC, permintaan yang melintasi batas perimeter layanan akan gagal dengan
403 accessDeniedataupolicyViolation. Telusuri Cloud Audit Logs di sekitar waktu kegagalan untuk menemukan nilaivpcServiceControlsUniqueIdentifierdari pesan error, dan gunakan Violation Analyzer untuk memeriksa aturan ingress dan egress. Untuk kueri Logs Explorer yang akan digunakan, lihat Permintaan dilarang oleh kebijakan organisasi.Peran dasar (
roles/owner,roles/editor,roles/viewer). Peran project dasar tidak mencakup izin tingkat organisasi yang diperlukan untuk tampilan sepertiINFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE_BY_ORGANIZATION, atau izin khusus sepertibigquery.rowAccessPolicies.overrideTimeTravelRestrictions, yang diperlukan untuk mengakses data historis tabel yang memiliki atau pernah memiliki kebijakan akses tingkat baris (lihat Perjalanan waktu dan akses tingkat baris). Berikan peran IAM BigQuery yang telah ditetapkan, bukan mengandalkan peran dasar.Penimpaan kebijakan IAM sementara (
SetIamPolicy). Jika izin berfungsi sesekali lalu gagal, telusuri log audit Aktivitas Admin untuk menemukanprotoPayload.methodName=~"SetIamPolicy"guna memeriksa apakah skrip otomatis atau pipeline infrastructure as code menimpa binding kebijakan yang ada, bukan menggabungkannya.Sumber data eksternal (Google Drive, Cloud Storage, BigLake):
- Google Drive (
Permission denied while getting Drive credentials). Beri pengguna atau akun layanan akses pelihat ke file Google Drive atau Spreadsheet Google, pastikan pemanggil memberikan cakupan OAuthhttps://www.googleapis.com/auth/drive, atau perbarui kredensial kueri terjadwal. - Tabel Cloud Storage dan BigLake. Berikan
roles/storage.objectViewerdi bucket Cloud Storage kepada pengguna (untuk tabel eksternal standar) atau ke akun layanan koneksi BigLake (untuk tabel BigLake).
- Google Drive (
Kunci enkripsi yang dikelola pelanggan (CMEK). Jika kueri mereferensikan tabel yang dilindungi oleh CMEK, pastikan kunci Cloud KMS yang sesuai ada dan diaktifkan. Jika tugas kueri atau pemuatan gagal dengan
Cloud KMS Error: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied(atauuseToDecrypt), berikan peranroles/cloudkms.cryptoKeyEncrypterDecrypterpada kunci Cloud Key Management Service kepada Agen Layanan Enkripsi BigQuery (bq-PROJECT_NUMBER@bigquery-encryption.). Lihat Memberikan izin enkripsi dan dekripsi. Untuk error CMEK lainnya, lihat Memecahkan masalah kunci enkripsi yang dikelola pelanggan.Peniruan akun layanan. Jika permintaan yang menggunakan peniruan akun layanan gagal dengan
Permission 'iam.serviceAccounts.getAccessToken' denied, berikanroles/iam.serviceAccountTokenCreatorkepada akun utama yang memanggil di akun layanan target.Keamanan tingkat kolom (tag kebijakan) dan keamanan tingkat baris. Jika kueri atau pernyataan DML gagal dengan
Requires fineGrainedGet permission on the read columnsatauUser does not have permission to access data protected by policy tag, beri akun utama peran Fine-Grained Reader (roles/datacatalog.categoryFineGrainedReader) Data Catalog pada tag kebijakan, atau kecualikan kolom yang dilindungi dari daftarSELECTAnda. Lihat Izin kontrol akses tingkat kolom tidak memadai. Jika tabel menggunakan keamanan tingkat baris, tinjau kebijakan akses tingkat baris yang aktif di konsol Google Cloud atau dengan menjalankanbq ls --row_access_policies. Lihat Mencantumkan kebijakan akses tingkat baris tabel.Penundaan penerapan IAM dan metadata. Peran IAM yang baru diberikan dan update ACL set data pada akhirnya akan konsisten dan biasanya memerlukan waktu beberapa menit untuk diterapkan di seluruh cache. Jika izin baru saja diberikan, tunggu beberapa menit dan coba lagi permintaan.
Persyaratan Layanan BigQuery belum disetujui
String error: BigQuery Terms of Service have not been accepted
Error HTTP 403 Forbidden (reason: termsOfServiceNotAccepted) ini terjadi
juga jika Persyaratan Layanan BigQuery belum disetujui. Error ini bukan disebabkan oleh tidak adanya izin IAM. Error ini dapat ditampilkan untuk permintaan seperti membuat set data atau memuat data.
Untuk mengatasi masalah ini, lakukan langkah berikut:
Di konsol Google Cloud , buka halaman BigQuery.
Jika halaman sambutan muncul, pilih negara Anda, centang kotak Terms of Service, lalu klik Agree and continue. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan sandbox BigQuery.
Setelah Persyaratan Layanan disetujui, coba lagi permintaan.
Memecahkan masalah error pelanggaran kebijakan
Saat Anda menerima error HTTP 403 PERMISSION_DENIED di BigQuery
dengan alasan error policyViolation, hal ini menunjukkan kegagalan yang disebabkan oleh
kebijakan organisasi, perimeter data, atau Kontrol Layanan VPC.
Bagian berikut menjelaskan pesan error paling umum yang terkait dengan alasan error ini, penyebabnya, dan cara mengatasinya.
Permintaan dilarang oleh kebijakan organisasi
String error:
VPC Service Controls: Request is prohibited by organization's policy.
vpcServiceControlsUniqueIdentifier:
VPC_SERVICE_CONTROLS_UNIQUE_IDENTIFIER
Diagnosis
Permintaan Anda berasal dari alamat jaringan atau klien yang berada di luar perimeter Kontrol Layanan VPC yang ditetapkan, atau permintaan tersebut melanggar aturan ingress dan egress yang ditentukan untuk ruang kerja Anda. Hal ini sering terjadi jika kueri Anda mencakup beberapa project. Misalnya, project penagihan kueri berada di luar perimeter aman project data.
Resolusi
Temukan ID Unik. Ambil
vpcServiceControlsUniqueIdentifieryang disertakan dalam pesan error. Gunakan ID ini untuk memfilter Google Cloud Logs Explorer guna menemukan log Kontrol Layanan VPC yang sesuai dengan detail alasannya:protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" protoPayload.metadata.vpcServiceControlsUniqueId="VPC_SERVICE_CONTROLS_UNIQUE_IDENTIFIER"
Cari nilai
violationReasondi bagianprotoPayload.metadata.violationReason. Setelah diidentifikasi, pelajari detail tambahan dalam entri log dan ikuti panduan pemecahan masalah Kontrol Layanan VPC yang ada. Selain itu, pertimbangkan untuk menggunakan Violation Analyzer.Perbaiki Penagihan Lintas Project. Untuk kueri lintas project, pastikan project penagihan yang menjalankan kueri berada di perimeter yang sama dengan data yang dikueri dalam perimeter. Jika perlu, tentukan project penagihan yang sesuai secara manual menggunakan pemilih project konsol Google Cloud , flag
--project_iddi alat command line bq, atau permintaan API atau library klien Anda.Verifikasi Tingkat Akses. Pastikan jaringan klien, IP, atau akun pengguna Anda diizinkan menggunakan Access Context Manager. Konsol Google Cloud memerlukan aturan ingress yang dikonfigurasi secara khusus untuk mengizinkan akses pengguna ke lingkungan yang dilindungi.
Ekspor ke Google Drive diblokir untuk project yang mengaktifkan Kontrol Layanan VPC
String error:
Export to Google Drive is blocked for projects with VPC-SC enabled
Diagnosis
Google Drive tidak mendukung Kontrol Layanan VPC. Karena Google Drive tidak dapat menerapkan perimeter keamanan, BigQuery otomatis menonaktifkan ekspor ekstrak API ke Google Drive untuk setiap permintaan yang berasal dari dalam batas Kontrol Layanan VPC guna mencegah pemindahan data yang tidak sah.
Resolusi
Daripada mengekspor langsung ke Google Drive, ekstrak hasil kueri Anda ke bucket Cloud Storage yang berada di dalam perimeter Kontrol Layanan VPC yang sama, atau simpan hasilnya sebagai file lokal.
Tabel eksternal Google Drive diblokir untuk project yang mengaktifkan Kontrol Layanan VPC
String error:
Google Drive external tables are blocked for projects with VPC-SC enabled
Diagnosis
Secara default, Kontrol Layanan VPC tidak memblokir kueri tabel eksternal Google Drive (seperti Sheet yang Terhubung). Namun, error ini muncul karena organisasi Anda telah secara eksplisit meminta agar Google Cloud Google Cloud menerapkan konfigurasi pemblokiran yang ketat untuk project Anda guna mengganti perilaku permisif default, sehingga mencegah kueri masuk ke data Google Drive dari dalam perimeter Kontrol Layanan VPC.
Resolusi
Impor data dari file Google Spreadsheet atau Google Drive langsung ke tabel BigQuery standar di dalam perimeter Kontrol Layanan VPC Anda, bukan membuat kueri secara dinamis sebagai tabel gabungan eksternal. Atau, hubungi Administrator Cloud internal Anda untuk membahas batas ekspor data organisasi Anda.
Ekspor ke Google Drive diblokir untuk project Anda
String error:
Export to Google Drive is blocked for your project.
Diagnosis
Meskipun tanpa perimeter Kontrol Layanan VPC, administrator Google Cloud Anda telah meminta konfigurasi organisasi yang spesifik dan ketat untuk diterapkan ke project Anda yang menolak semua kemampuan ekstraksi data ke Google Drive.
Resolusi
Pilih tujuan ekstraksi alternatif seperti bucket Cloud Storage atau file lokal, atau hubungi Administrator Cloud internal Anda untuk membahas batas ekspor data organisasi Anda.
Lokasi melanggar batasan kebijakan organisasi
String error:
LOCATION violates constraint CONSTRAINT_NAME on the
resource projects/PROJECT_ID atau
LOCATION violates constraint CONSTRAINT_NAME on the
resource projects/PROJECT_ID/datasets/DATASET_ID
Diagnosis
Administrator Cloud Anda telah mengonfigurasi Batasan Kebijakan Organisasi untuk membatasi secara tepat tempat resource dapat dibuat atau dianalisis. Error ini biasanya muncul saat:
- Membuat set data di wilayah geografis yang tidak sah (misalnya, dibatasi oleh
constraints/gcp.resourceLocations). - Mencoba menggunakan BigQuery Omni di seluruh cloud eksternal saat
tidak diizinkan (misalnya, diblokir oleh
constraints/bigquery.disableBQOmniAWSatauconstraints/bigquery.disableBQOmniAzure).
Resolusi
- Periksa
CONSTRAINT_NAMEyang diberikan dalam pesan error untuk memahami tindakan yang diblokir. - Pilih region lain yang tidak diblokir untuk data Anda, atau hubungi Google Cloud administrator organisasi Anda untuk meninjau kebijakan organisasi di level Folder atau Organisasi. Lihat menyusun dan menentukan lokasi resource untuk mengetahui detail selengkapnya.
Memecahkan masalah error tidak diautentikasi
Saat Anda menerima error HTTP 401 Unauthorized (gRPC UNAUTHENTICATED) di BigQuery dengan alasan error unauthenticated, permintaan tidak memiliki kredensial autentikasi yang valid, masa berlaku token akses OAuth 2.0 telah berakhir, atau pemanggil tidak dapat melakukan autentikasi sebagai identitas yang ditentukan.
Bagian berikut menjelaskan skenario unauthenticated yang paling umum,
penyebabnya, dan cara mengatasinya.
Kredensial tidak valid atau sudah tidak berlaku
String error:
Invalid credentialUser credential was invalid.Credentials expiredCredentials missing required scope.Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential.
Diagnosis
Token akses, kunci akun layanan, atau Kredensial Default Aplikasi (ADC) yang diberikan bersama permintaan telah habis masa berlakunya, dicabut, atau tidak memiliki cakupan OAuth 2.0 yang diperlukan. Error ini juga terjadi saat permintaan ditandatangani dengan jam sistem yang telah bergeser dari waktu Protokol Waktu Jaringan (NTP).
Resolusi
- Perbarui kredensial Anda. Jika Anda melakukan autentikasi dari lingkungan pengembangan lokal, jalankan
gcloud auth application-default login(untuk ADC) ataugcloud auth loginuntuk mendapatkan token baru. - Verifikasi kunci akun layanan dan cakupan OAuth. Jika aplikasi Anda menggunakan
GOOGLE_APPLICATION_CREDENTIALS, pastikan variabel mengarah ke file kunci JSON yang valid dan belum dicabut, akun layanan diaktifkan di konsolGoogle Cloud , dan kredensial menyertakan cakupanhttps://www.googleapis.com/auth/bigqueryatauhttps://www.googleapis.com/auth/cloud-platformyang diperlukan. - Gunakan library klien saat ini dan sinkronkan jam sistem. Update library klien BigQuery atau driver ODBC atau JDBC ke versi terbaru agar refresh token OAuth 2.0 dan kredensial gabungan ditangani secara otomatis. Pastikan juga jam sistem mesin host disinkronkan menggunakan NTP.
Tidak ada kredensial pengguna akhir atau izin peniruan akun layanan
String error:
Current user can not act as user for service account SERVICE_ACCOUNT_EMAILNo end user credentials found when accessing PROJECT_ID:DATASET_ID.TABLE_ID. Please use end user credentials to call BigQuery APIs.
Diagnosis
Tugas atau kueri berkelanjutan dikonfigurasi untuk dijalankan sebagai akun layanan kustom yang tidak diizinkan untuk digunakan oleh pemanggil, atau tabel target atau kebijakan keamanan memerlukan kredensial pengguna akhir (EUC) agar BigQuery dapat mengevaluasi akses terhadap identitas pengguna interaktif.
Resolusi
- Memberikan izin peniruan akun layanan. Saat menjalankan
kueri berkelanjutan atau tugas yang dikonfigurasi dengan
akun layanan kustom, berikan peran Pengguna Akun Layanan
(
roles/iam.serviceAccountUser, yang mencakup iziniam.serviceAccounts.actAs) kepada pemanggil di akun layanan tersebut. Saat meniru akun layanan atau menukar kredensial gabungan dengan token berumur singkat, berikan peran Service Account Token Creator (roles/iam.serviceAccountTokenCreator) kepada pemanggil di akun layanan target. - Melakukan autentikasi dengan kredensial pengguna akhir. Jika resource target
memerlukan kredensial pengguna akhir, autentikasi permintaan menggunakan kredensial OAuth 2.0
pengguna interaktif (misalnya, dengan menjalankan
gcloud auth application-default loginatau mengonfigurasi OAuth pengguna di alat BI Anda), bukan kredensial akun layanan mandiri. - Memverifikasi aturan ingress dan egress Kontrol Layanan VPC. Jika permintaan melintasi batas Kontrol Layanan VPC, pastikan aturan ingress dan egress perimeter mengizinkan identitas pemanggil dan resource target.
Akun dibatasi, ditangguhkan, atau dihapus
String error:
The account was restricted due to REASONAccount deleted
Diagnosis
Akun Google atau akun Google Workspace yang mengeluarkan permintaan telah ditangguhkan, dinonaktifkan, dibatasi, atau dihapus oleh administrator atau kebijakan keamanan akun.
Resolusi
Hubungi administrator Google Workspace atau Cloud Identity Anda untuk meninjau status akun di konsol Google Admin dan memulihkan atau membatalkan penangguhan akun pengguna, atau mengupdate workload untuk melakukan autentikasi dengan akun layanan yang aktif.
Memecahkan masalah kontrol akses tingkat kolom
Bagian berikut menjelaskan cara memecahkan masalah terkait kontrol akses tingkat kolom dan tag kebijakan Data Catalog.
Saya tidak dapat melihat peran Data Catalog
Jika tidak dapat melihat peran seperti Data Catalog Fine-Grained Reader, mungkin Anda belum mengaktifkan Data Catalog API dalam project Anda. Untuk mempelajari cara mengaktifkan Data Catalog API, lihat Sebelum memulai. Peran Data Catalog akan muncul beberapa menit setelah Anda mengaktifkan Data Catalog API.
Saya tidak dapat melihat halaman Taxonomies
Anda memerlukan izin tambahan untuk melihat halaman Taksonomi tag kebijakan di konsolGoogle Cloud . Misalnya, peran Data Catalog Policy Tag Admin memiliki akses ke halaman Taxonomies.
Saya menerapkan tag kebijakan, tetapi sepertinya tidak berfungsi
Jika Anda masih menerima hasil kueri untuk akun yang seharusnya tidak memiliki akses, akun tersebut mungkin menerima hasil yang di-cache. Khususnya, jika sebelumnya berhasil menjalankan kueri, lalu menerapkan tag kebijakan, Anda bisa mendapatkan hasil dari cache hasil kueri. Secara default, hasil kueri disimpan ke cache selama 24 jam. Kueri akan langsung gagal jika Anda menonaktifkan cache hasil. Untuk detail selengkapnya tentang caching, lihat Dampak kontrol akses tingkat kolom.
Secara umum, update IAM memerlukan waktu sekitar 30 detik untuk diterapkan. Perubahan pada hierarki tag kebijakan dapat memerlukan waktu hingga 30 menit untuk diterapkan.
Saya tidak memiliki izin untuk membaca dari tabel dengan keamanan tingkat kolom
Anda memerlukan peran Fine-Grained Reader atau peran Masked Reader di berbagai level, seperti organisasi, folder, project, dan tag kebijakan. Peran Fine-Grained Reader memberikan akses data mentah, sedangkan peran Masked Reader memberikan akses ke data yang disamarkan. Anda dapat menggunakan Pemecah Masalah Kebijakan IAM untuk memeriksa izin ini di level project.
Saya menetapkan kontrol akses terperinci dalam taksonomi tag kebijakan, tetapi pengguna melihat data yang dilindungi
Untuk memecahkan masalah ini, konfirmasi detail berikut:
- Di halaman Taksonomi tag kebijakan di Pusat keamanan BigQuery, pastikan tombol Terapkan kontrol akses berada di posisi Aktif.
Pastikan kueri Anda tidak menggunakan hasil kueri yang di-cache. Jika Anda menggunakan alat command line bq untuk menguji kueri, gunakan flag
--nouse_cacheuntuk menonaktifkan cache kueri. Contoh:bq query --nouse_cache --use_legacy_sql=false "SELECT * EXCEPT (customer_pii) FROM my_table;"
Pertimbangan migrasi project
Tag kebijakan dan taksonomi ditempatkan dalam organisasi Google Cloud tertentu dan tidak otomatis dikaitkan ulang saat project dimigrasikan ke organisasi baru. Jika Anda memigrasikan project yang menggunakan tag kebijakan untuk kontrol akses tingkat kolom ke organisasi lain, masalah berikut akan terjadi:
- Tag kebijakan tidak dapat lagi dikelola di konsol Google Cloud dalam project yang dimigrasikan.
- Anda tidak dapat menerapkan tag kebijakan ini ke kolom baru dalam project yang dimigrasikan.
- Kontrol akses tingkat kolom yang ada mungkin tampak masih berlaku, tetapi link ke taksonomi sumber di organisasi asli rusak untuk tujuan pengelolaan.
Untuk menyelesaikan masalah ini, diperlukan intervensi manual oleh Dukungan Google Cloud untuk mengaitkan kembali taksonomi dengan organisasi baru. Jika Anda memigrasikan project dengan tag kebijakan dan mengalami masalah ini, hubungi Cloud Customer Care.
Memecahkan masalah tag tata kelola data
Bagian berikut menjelaskan cara memecahkan masalah umum saat mengontrol akses ke kolom dengan tag tata kelola data.
Nama tag dengan format yang salah
Saat membuat tag, Anda menentukan nama pendek (misalnya, ssn). Namun,
saat Anda melampirkan tag ke kolom dalam skema atau menggunakannya dalam kondisi,
kunci tag harus menggunakan format dengan namespace (PROJECT_ID/TAG_KEY atau
ORGANIZATION_ID/TAG_KEY), sedangkan nilai tag tetap menggunakan nama pendek.
Hanya memberikan nama pendek untuk kunci tag akan menghasilkan error Invalid tagKey atau
Invalid tagValue.
Penerapan kebijakan lintas project
Secara default, hanya kebijakan data project tabel yang dievaluasi. Kebijakan dari project lain tidak berlaku kecuali jika project kebijakan data default dikonfigurasi di level organisasi. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mengevaluasi kebijakan lintas project, lihat Mengonfigurasi project kebijakan data default.
Memecahkan masalah kunci enkripsi yang dikelola pelanggan
Daftar berikut menjelaskan error umum dan resolusi yang direkomendasikan saat Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) dengan Cloud Key Management Service:
- Error:
Please grant Cloud KMS CryptoKey Encrypter/Decrypter role - Penyelesaian: Akun layanan BigQuery yang terkait dengan project Anda tidak memiliki izin IAM yang memadai untuk beroperasi pada kunci Cloud KMS yang ditentukan. Untuk memberikan izin IAM yang diperlukan, ikuti petunjuk dalam pesan error atau di bagian Memberikan izin enkripsi dan dekripsi.
- Error:
Existing table encryption settings don't match encryption settings specified in the request - Penyelesaian: Error ini dapat terjadi jika tabel tujuan memiliki setelan enkripsi yang tidak cocok dengan setelan enkripsi dalam permintaan Anda. Untuk mengatasi
masalah ini, gunakan disposisi tulis
TRUNCATEuntuk mengganti tabel, atau tentukan tabel tujuan yang berbeda. - Error:
This region is not supported - Penyelesaian: Region kunci Cloud KMS tidak cocok dengan region set data BigQuery untuk tabel tujuan. Untuk menyelesaikan masalah ini, pilih kunci di region yang cocok dengan set data Anda, atau muat data ke set data yang cocok dengan region kunci.
- Error:
Your administrator requires that you specify an encryption key for queries in project PROJECT_ID. - Penyelesaian: Kebijakan organisasi mencegah resource dibuat atau kueri dijalankan. Untuk mempelajari kebijakan ini lebih lanjut, lihat Mewajibkan CMEK untuk semua resource.
- Error:
Your administrator prevents using KMS keys from project KMS_PROJECT_ID to protect resources in project PROJECT_ID. - Penyelesaian: Kebijakan organisasi mencegah resource dibuat atau kueri dijalankan. Untuk mempelajari kebijakan ini lebih lanjut, lihat Membatasi kunci Cloud KMS untuk project BigQuery.
Langkah berikutnya
- Untuk mengetahui daftar semua peran dan izin IAM BigQuery, lihat Peran dan izin IAM BigQuery.
- Untuk mengetahui informasi selengkapnya tentang keamanan tingkat kolom, lihat Membatasi akses dengan kontrol akses tingkat kolom.
- Untuk mengetahui informasi selengkapnya tentang kunci enkripsi yang dikelola pelanggan, lihat Melindungi data dengan kunci Cloud KMS.
- Untuk mengetahui informasi selengkapnya tentang cara memecahkan masalah kebijakan izin dan penolakan di IAM, lihat Memecahkan masalah kebijakan.
- Untuk mengetahui informasi selengkapnya tentang Policy Intelligence Penganalisis Kebijakan, lihat Penganalisis Kebijakan untuk kebijakan izin.
- Untuk mengetahui informasi selengkapnya tentang Pemecah Masalah Kebijakan, lihat Menggunakan Pemecah Masalah Kebijakan.