Halaman ini menunjukkan cara mengelola insight kebijakan tingkat set data, yang merupakan temuan berbasis machine learning tentang penggunaan izin untuk set data BigQuery Anda. Insight kebijakan dapat membantu Anda mengidentifikasi akun utama mana yang memiliki izin yang tidak diperlukan.
Halaman ini berfokus pada insight kebijakan untuk set data. Pemberi rekomendasi juga menawarkan insight kebijakan untuk jenis resource berikut:
Insight kebijakan tingkat set data terkadang ditautkan dengan rekomendasi peran. Rekomendasi peran menyarankan tindakan yang dapat Anda lakukan untuk memperbaiki masalah yang diidentifikasi oleh insight kebijakan tingkat set data.
Sebelum memulai
-
Aktifkan Recommender API.
- Memahami rekomendasi peran IAM.
- Opsional: Baca tentang Insight pemberi rekomendasi.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola insight kebijakan tingkat set data, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
- Pemilik Data BigQuery (`roles/bigquery.dataOwner`)
- Admin Pemberi Rekomendasi IAM (`roles/recommendationer.iamAdmin`)
- Kelola insight kebijakan tingkat set data dengan gcloud CLI atau REST API: Service Usage Consumer (`roles/serviceusage.serviceUsageConsumer`)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk mengelola insight kebijakan tingkat set data. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengelola insight kebijakan tingkat set data:
-
Lihat insight kebijakan tingkat set data:
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
-
Mengubah insight kebijakan tingkat set data:
recommender.iamPolicyInsights.update
-
Kelola insight kebijakan tingkat set data dengan gcloud CLI atau REST API:
serviceusage.services.use
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Mencantumkan insight kebijakan tingkat set data
Untuk menampilkan daftar semua insight kebijakan tingkat set data untuk project Anda, gunakan salah satu metode berikut:gcloud
Gunakan perintah gcloud recommender
insights list
untuk melihat semua insight kebijakan tingkat set data untuk project
Anda.
Sebelum menjalankan perintah, ganti nilai berikut:
PROJECT_ID
: ID project yang ingin Anda cantumkan insight-nya.LOCATION
: Lokasi set data yang insight-nya ingin Anda cantumkan.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION\ --filter="insightSubtype:PERMISSIONS_USAGE_BIGQUERY_DATASET"
Output-nya mencantumkan semua insight kebijakan tingkat set data untuk project Anda di lokasi yang ditentukan. Contoh:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 101d03ad-6148-4628-943e-fcf1a3af6b57 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 15133dd9-4cbc-41e9-8990-b189241676d8 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 1590aeae-d5bf-4e3d-b7d5-e230212f5faf SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 4 of the permissions in this role binding were used in the past 90 days. 280e5a14-4d09-4ac6-8e14-be7407611ad7 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 34102078-085f-45d3-ae72-81da16c75781 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 10 of the permissions in this role binding were used in the past 90 days.
REST
Metode
insights.list
Recommender API mencantumkan semua insight kebijakan tingkat set data untuk
project Anda.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project yang ingin Anda cantumkan insight-nya.LOCATION
: Lokasi set data yang insight-nya ingin Anda cantumkan.
Metode HTTP dan URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_BIGQUERY_DATASET
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Responsnya mencantumkan semua insight kebijakan tingkat set data untuk project Anda di lokasi yang ditentukan. Contoh:
{ "insights": [ { "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }, { "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/15133dd9-4cbc-41e9-8990-b189241676d8", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataViewer", "member": "projectViewer:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "17" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/bc9b4c28-cc93-4a91-97ea-ff67e3cef1b4" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-2" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"eafa79df1b329063\"", "severity": "LOW" } ] }
Untuk mempelajari komponen insight lebih lanjut, lihat Meninjau insight kebijakan tingkat set data di halaman ini.
Mendapatkan insight kebijakan tingkat set data tunggal
Untuk mendapatkan informasi selengkapnya tentang satu insight, termasuk deskripsi, status, dan rekomendasi apa pun yang terkait dengan insight, gunakan salah satu metode berikut:
gcloud
Gunakan perintah gcloud recommender
insights describe
dengan ID insight Anda untuk melihat informasi tentang satu
insight.
-
INSIGHT_ID
: ID insight yang ingin Anda lihat. Untuk menemukan ID, cantumkan insight untuk project Anda. PROJECT_ID
: ID project yang insight-nya ingin Anda kelola.LOCATION
: Lokasi set data yang insight-nya ingin Anda dapatkan.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION
Output menampilkan insight secara mendetail. Misalnya, insight berikut menunjukkan bahwa semua pengguna dengan peran Editor pada project
my-project
(projectEditor:my-project
) memiliki peran BigQuery Data Editor
(roles/bigquery.dataEditor
) di set data dataset-1
, tetapi tidak ada izin dalam peran tersebut yang digunakan dalam 90 hari terakhir:
associatedRecommendations: - recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '37' exercisedPermissions: [] inferredPermissions: [] member: projectEditor:my-project role: roles/bigquery.dataEditor description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"5f2f352a738f7a24"' insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET lastRefreshTime: '2024-02-04T08:00:00Z' name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57 observationPeriod: 7776000s severity: LOW stateInfo: state: ACTIVE targetResources: - //bigquery.googleapis.com/projects/my-project/datasets/dataset-1
Untuk mempelajari komponen insight lebih lanjut, lihat Meninjau insight kebijakan tingkat set data di halaman ini.
REST
Metode
insights.get
Recommender API mendapatkan satu insight.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
PROJECT_ID
: ID project yang insight-nya ingin Anda kelola. LOCATION
: Lokasi set data yang insight-nya ingin Anda dapatkan.-
INSIGHT_ID
: ID insight yang ingin Anda lihat. Jika tidak tahu ID insight, Anda dapat menemukannya dengan mendaftarkan insight di project Anda. ID insight adalah semuanya setelahinsights/
di kolomname
untuk insight.
Metode HTTP dan URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Respons berisi wawasan. Misalnya, insight berikut menunjukkan bahwa semua pengguna dengan peran Editor pada project
my-project
(projectEditor:my-project
) memiliki peran BigQuery Data Editor
(roles/bigquery.dataEditor
) di set data dataset-1
, tetapi tidak ada izin dalam peran tersebut yang digunakan dalam 90 hari terakhir:
{ "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }
Untuk mempelajari komponen insight lebih lanjut, lihat Meninjau insight kebijakan tingkat set data di halaman ini.
Meninjau insight kebijakan tingkat set data
Setelah mendapatkan satu insight, Anda dapat meninjau kontennya untuk memahami pola penggunaan resource yang disorotnya.
Konten insight ditentukan oleh subjenisnya.
Insight kebijakan tingkat set data (google.iam.policy.Insight
)
memiliki subjenis PERMISSIONS_USAGE_BIGQUERY_DATASET
.
Insight PERMISSIONS_USAGE_BIGQUERY_DATASET
memiliki komponen berikut, tidak harus dalam urutan berikut:
-
associatedRecommendations
: ID untuk semua rekomendasi yang terkait dengan insight. Jika tidak ada rekomendasi yang terkait dengan insight, kolom ini kosong. -
category
: Kategori untuk insight IAM selaluSECURITY
. -
content
: Melaporkan penggunaan izin akun utama untuk peran tertentu. Kolom ini berisi komponen berikut:condition
: Kondisi apa pun yang melekat pada binding yang memberikan peran kepada akun utama. Jika tidak ada kondisi, kolom ini berisi kondisi kosong.exercisedPermissions
: Izin dalam peran yang digunakan akun utama selama periode pengamatan.inferredPermissions
: Izin dalam peran yang telah ditentukan oleh Pemberi Rekomendasi, melalui ML, yang kemungkinan diperlukan oleh akun utama berdasarkan izin yang dilakukannya.member
: Akun utama yang penggunaan izinnya dianalisis.role
: Peran yang penggunaan izinnya dianalisis.
-
description
: Ringkasan insight yang dapat dibaca manusia. -
etag
: ID unik untuk status insight saat ini. Setiap kali insight berubah, nilaietag
baru akan ditetapkan.Untuk mengubah status insight, Anda harus memberikan
etag
insight yang ada. Menggunakanetag
akan membantu memastikan bahwa operasi apa pun hanya dilakukan jika insight tidak berubah sejak terakhir kali Anda mengambilnya. -
insightSubtype
: Subjenis insight. -
lastRefreshTime
: Tanggal saat insight terakhir diperbarui, yang menunjukkan keaktualan data yang digunakan untuk membuat insight. -
name
: Nama insight, dalam format berikut:projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
Placeholder memiliki nilai berikut:
-
PROJECT_ID
: ID project tempat insight dihasilkan. LOCATION
: Lokasi set data yang menjadi tujuan insight.INSIGHT_ID
: ID unik untuk insight.
-
-
observationPeriod
: Jangka waktu menuju insight. Data sumber yang digunakan untuk membuat insight berakhir padalastRefreshTime
dan dimulai padalastRefreshTime
dikurangiobservationPeriod
. -
stateInfo
: Insight melalui beberapa transisi status setelah diusulkan:-
ACTIVE
: Insight telah dibuat, tetapi belum ada tindakan yang diambil atau tindakan yang diambil tanpa memperbarui status insight. Insight aktif diperbarui saat data pokok berubah. -
ACCEPTED
: Beberapa tindakan telah dilakukan berdasarkan insight. Insight diterima jika rekomendasi terkait ditandai sebagaiCLAIMED
,SUCCEEDED
, atauFAILED
, atau insight diterima secara langsung. Saat insight berada dalam statusACCEPTED
, isi insight tidak dapat berubah. Insight yang diterima akan dipertahankan selama 90 hari setelah diterima.
-
-
targetResources
: Nama resource lengkap set data yang menjadi tujuan insight. Misalnya,//bigquery.googleapis.com/projects/my-project/datasets/my-dataset
.
Tandai insight kebijakan tingkat set data sebagai ACCEPTED
Jika mengambil tindakan berdasarkan insight aktif, Anda dapat menandai insight tersebut sebagai
ACCEPTED
. Status ACCEPTED
memberi tahu Recommender API bahwa Anda telah mengambil tindakan berdasarkan insight ini, yang membantu meningkatkan kualitas rekomendasi.
Insight yang diterima akan dipertahankan selama 90 hari setelah
ditandai sebagai ACCEPTED
.
gcloud
Gunakan perintah
gcloud recommender insights mark-accepted
dengan ID insight Anda untuk menandai
insight sebagai ACCEPTED
.
-
INSIGHT_ID
: ID insight yang ingin Anda lihat. Untuk menemukan ID, cantumkan insight untuk project Anda. PROJECT_ID
: ID project yang insight-nya ingin Anda kelola.LOCATION
: Lokasi set data yang insight-nya ingin Anda tandai sebagaiACCEPTED
.-
ETAG
: ID untuk versi insight. Untuk mendapatkanetag
, lakukan hal berikut:-
Dapatkan insight menggunakan perintah
gcloud recommender insights describe
. -
Temukan dan salin nilai
etag
dari output, termasuk tanda petik yang disertakan. Contoh,"d3cdec23cc712bd0"
.
-
Dapatkan insight menggunakan perintah
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION \ --etag=ETAG
Output menampilkan insight, sekarang dengan status ACCEPTED
:
associatedRecommendations: - recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '37' exercisedPermissions: [] inferredPermissions: [] member: projectEditor:my-project role: roles/bigquery.dataEditor description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"5f2f352a738f7a24"' insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET lastRefreshTime: '2024-02-04T08:00:00Z' name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57 observationPeriod: 7776000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //bigquery.googleapis.com/projects/my-project/datasets/dataset-1
Untuk mempelajari info status insight lebih lanjut, baca artikel Meninjau insight kebijakan tingkat set data di halaman ini.
REST
Metode
insights.markAccepted
Recommender API menandai insight sebagai ACCEPTED
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
PROJECT_ID
: ID project yang insight-nya ingin Anda kelola. LOCATION
: Lokasi set data yang insight-nya ingin Anda tandai sebagaiACCEPTED
.-
INSIGHT_ID
: ID insight yang ingin Anda lihat. Jika tidak tahu ID insight, Anda dapat menemukannya dengan mendaftarkan insight di project Anda. ID insight adalah semuanya setelahinsights/
di kolomname
untuk insight. -
ETAG
: ID untuk versi insight. Untuk mendapatkanetag
, lakukan hal berikut:- Dapatkan insight menggunakan
metode
insights.get
. - Temukan dan salin nilai
etag
dari respons.
- Dapatkan insight menggunakan
metode
Metode HTTP dan URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted
Meminta isi JSON:
{ "etag": "ETAG" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Responsnya berisi insight, sekarang dengan status ACCEPTED
:
{ "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }
Untuk mempelajari info status insight lebih lanjut, baca artikel Meninjau insight kebijakan tingkat set data di halaman ini.
Langkah selanjutnya
- Pelajari cara melihat dan menerapkan rekomendasi kebijakan untuk set data BigQuery.
- Gunakan Hub Rekomendasi untuk melihat dan mengelola semua rekomendasi untuk project Anda, termasuk rekomendasi IAM.