Topik ini menunjukkan cara menggunakan Asset Insights untuk mendeteksi potensi risiko dalam konfigurasi aset dan membantu Anda meningkatkan postur keamanan.
Ringkasan
Cloud Asset Insights memberikan insight
berdasarkan kebijakan IAM yang terkait dengan resource
organisasi Anda. Ini adalah bagian dari layanan Pemberi Rekomendasi
dan disediakan sebagai jenis insight google.cloudasset.asset.Insight
. Insight adalah anomali spesifik yang memerlukan analisis lebih lanjut untuk menentukan tindakan yang tepat. Aset tersebut dihasilkan setiap hari, berdasarkan ringkasan data yang disimpan di Inventaris Aset Cloud.
Sebelum memulai
Sebelum dapat mulai menggunakan Asset Insights, Anda harus menyelesaikan langkah-langkah berikut.
Pastikan akun Anda memiliki izin berikut:
recommender.cloudAssetInsights.get
recommender.cloudAssetInsights.list
recommender.cloudAssetInsights.update
Anda dapat memberikan izin ini satu per satu, atau memberikan salah satu peran berikut.
Peran Cloud Asset Insights Viewer (
roles/recommender.cloudAssetInsightsViewer
)Peran Cloud Asset Insights Admin (
roles/recommender.cloudAssetInsightsAdmin
)
Meminta Insight Aset
Untuk meminta Asset Insights, cara termudah adalah dengan mencantumkan insight seperti yang ditunjukkan pada langkah-langkah berikut. Untuk jenis interaksi insight lainnya, lihat panduan insight untuk Recommender API.
Meminta wawasan proyek
Untuk meminta insight tentang project, buat salah satu permintaan berikut.
gcloud
Jalankan perintah gcloud CLI berikut guna mencantumkan insight untuk project, folder, atau organisasi Anda.
Project
gcloud recommender insights list \
--project=PROJECT_ID \
--location=global \
--insight-type=google.cloudasset.asset.Insight \
--filter="insightSubtype:SUBTYPE" \
--format="FORMAT"
Berikan nilai berikut:
PROJECT_ID
: ID project yang ingin Anda lihat insight-nya.
Tanda lainnya:
--filter
: Opsional. Memfilter hasil menurut subjenis insight.--format
: Opsional. Format output yang didukung untuk gcloud CLI. Misalnya, untuk mencantumkan isi insight sebagai tabel yang disatukan:gcloud recommender insights list \ --project=PROJECT_ID \ --location=global \ --insight-type=google.cloudasset.asset.Insight \ --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \ --format="table(insightSubtype, name, content.matchedPolicies.matchedBindings.matchedMembers, content.matchedPolicies.matchedBindings.role, content.matchedPolicies.resource)"
Folder
gcloud recommender insights list \
--folder=FOLDER_ID \
--location=global \
--insight-type=google.cloudasset.asset.Insight \
--filter="insightSubtype:SUBTYPE" \
--format="FORMAT"
Berikan nilai berikut:
FOLDER_ID
: ID folder yang ingin Anda lihat insight-nya.Cara menemukan ID folder Google Cloud
Konsol
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi
--format
untuk melihat informasi selengkapnya tentang folder yang ditemukan.Untuk mendapatkan ID folder dalam folder lain, cantumkan subfoldernya:
gcloud resource-manager folders list --folder=FOLDER_ID
-
Tanda lainnya:
--filter
: Opsional. Memfilter hasil menurut subjenis insight.--format
: Opsional. Format output yang didukung untuk gcloud CLI. Misalnya, untuk mencantumkan isi insight sebagai tabel yang disatukan:gcloud recommender insights list \ --folder=FOLDER_ID \ --location=global \ --insight-type=google.cloudasset.asset.Insight \ --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \ --format="table(insightSubtype, name, content.matchedPolicies.matchedBindings.matchedMembers, content.matchedPolicies.matchedBindings.role, content.matchedPolicies.resource)"
Organisasi
gcloud recommender insights list \
--organization=ORGANIZATION_ID \
--location=global \
--insight-type=google.cloudasset.asset.Insight \
--filter="insightSubtype:SUBTYPE" \
--format="FORMAT"
Berikan nilai berikut:
ORGANIZATION_ID
: ID organisasi yang Anda inginkan insight-nya.Cara menemukan ID organisasi Google Cloud
Konsol
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Tanda lainnya:
--filter
: Opsional. Memfilter hasil menurut subjenis insight.--format
: Opsional. Format output yang didukung untuk gcloud CLI. Misalnya, untuk mencantumkan isi insight sebagai tabel yang disatukan:gcloud recommender insights list \ --organization=ORGANIZATION_ID \ --location=global \ --insight-type=google.cloudasset.asset.Insight \ --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \ --format="table(insightSubtype, name, content.matchedPolicies.matchedBindings.matchedMembers, content.matchedPolicies.matchedBindings.role, content.matchedPolicies.resource)"
REST
Jalankan perintah curl
berikut guna menampilkan insight untuk project, folder, atau organisasi Anda.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://recommender.googleapis.com/v1/SCOPE/locations/global/insightTypes/google.cloudasset.asset.Insight/insights
Berikan nilai berikut:
SCOPE
: Cakupan dapat berupa project, folder, atau organisasi.Nilai yang diizinkan adalah:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cara menemukan nomor project Google Cloud
Konsol
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Dasbor di Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Pilih organisasi dari kotak Pilih dari, lalu telusuri nama project Anda.
- Klik nama project untuk beralih ke project tersebut. Nomor project ditampilkan di kartu Project info.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Cara menemukan ID folder Google Cloud
Konsol
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi
--format
untuk melihat informasi selengkapnya tentang folder yang ditemukan.Untuk mendapatkan ID folder dalam folder lain, cantumkan subfoldernya:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cara menemukan ID organisasi Google Cloud
Konsol
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka Konsol Google Cloud.
- Klik kotak pengalih di panel menu.
- Klik kotak Pilih dari, lalu pilih organisasi Anda.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Menafsirkan respons insight
Selain atribut insight standar, Asset Insights menyediakan beberapa subjenis dan kolom khusus.
Subjenis wawasan
Ada tujuh subjenis Asset Insight yang berbeda.
EXTERNAL_MEMBER
: Mendeteksi kebijakan IAM yang berisi pengguna atau grup yang termasuk dalam domain di luar domain organisasi Anda.EXTERNAL_POLICY_EDITOR
: Mendeteksi kebijakan IAM yang berisi pengguna atau grup di luar domain organisasi Anda yang diberi izin untuk mengubah kebijakan IAM.EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
: Mendeteksi kebijakan IAM yang berisi pengguna atau grup di luar domain organisasi Anda yang diberi izin untuk mendapatkan atau mencantumkan objek penyimpanan (storage.objects.list
ataustorage.objects.get permission
).EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
: Mendeteksi kebijakan IAM yang berisi pengguna atau grup di luar domain organisasi Anda yang diberi izin untuk meniru identitas akun layanan.TERMINATED_MEMBER
: Mendeteksi kebijakan IAM yang berisi pengguna atau grup dengan akun yang dinonaktifkan, dihapus, atau dihapus permanen.PUBLIC_IAM_POLICY
: Mendeteksi kebijakan IAM yang berisi semua pengguna atau semua pengguna yang diautentikasi.OWNER_TERMINATED_PROJECT
: Mendeteksi project yang tidak berisi grup atau pengguna aktif dalam kebijakan IAM project.
Kolom konten tambahan
Selain kolom standar dalam respons, Asset Insights menyediakan
beberapa kolom khusus di kolom content
.
user
: Alamat email pengguna tertentu yang terdeteksi dalam anggota binding kebijakan untuk insight tertentu ini. Kolom ini disertakan dalam subjenisTERMINATED_MEMBER
.domain
: Domain spesifik yang terdeteksi dalam anggota binding kebijakan dari insight tertentu ini. Kolom ini disertakan dalam subjenisEXTERNAL_MEMBER
,EXTERNAL_POLICY_EDITOR
,EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
, danEXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
.assetName
: Nama aset yang aksesnya terdeteksi untuk insight tertentu. Kolom ini disertakan dalam subjenisOWNER_TERMINATED_PROJECT
danPUBLIC_IAM_POLICY
.policyCount
: Jumlah total kebijakan IAM berbeda tempat anggota yang cocok terdeteksi untuk insight tertentu ini. Kolom ini disertakan untuk semua subjenis Asset Insights.matchedPolicies
: Sampling kebijakan IAM yang cocok dengan insight yang terdeteksi. Kebijakan yang cocok hanya menyertakan subkumpulan binding dan anggota binding yang cocok dengan insight yang terdeteksi. Kolom ini disertakan untuk semua subjenis Asset Insights.policySearchQuery
: Kueri yang dapat digunakan dengan API penelusuran kebijakan IAM Inventaris Aset Cloud untuk mengambil semua kebijakan yang relevan secara real time.
Contoh respons
Cuplikan kode berikut menunjukkan format respons contoh.
{
"name": "organizations/1234567/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/0ab35ae7-afa8-42a3-a173-92da8771a489",
"description": "Domain example.com detected in 1 IAM policies",
"content": {
"domain": "example.com",
"policyCount": 1,
"policySearchQuery": "policy: example.com",
"matchedPolicies" :[
{
"resource" :"//cloudresourcemanager.googleapis.com/projects/5678910",
"project" :"projects/5678910",
"matchedBindings" :[
{
"role" :"roles/viewer",
"matchedMembers" :[
"user:example@example.com"
]
}
]
}
]
},
"lastRefreshTime": "2020-12-04T06:59:04Z",
"observationPeriod": "0s",
"stateInfo": {
"state": "ACTIVE"
},
"category": "SECURITY",
"targetResources": [
"//cloudresourcemanager.googleapis.com/organizations/1234567"
],
"insightSubtype": "EXTERNAL_MEMBER",
"etag": "\"00000000000\"",
"initialRefreshTime": "2020-12-01T06:58:03Z"
}
Batasan
Insight ini tidak menganggap keanggotaan grup sebagai bagian dari temuannya dan tidak boleh dianggap sebagai daftar lengkap kerentanan pencocokan.
Masing-masing insight mencakup pengambilan sampel kebijakan IAM yang cocok, yang dibatasi hingga 100 kebijakan berbeda. Semua kebijakan yang cocok dapat diambil dengan memanggil penelusuran kebijakan Inventaris Aset Cloud.
Insight aset tidak mempertimbangkan akun layanan untuk tujuan pembuatan insight.