Bergantung pada kebutuhan Anda, Anda mungkin perlu mendesain arsitektur agar dapat berfungsi di beberapa project saat menggunakan Inventaris Aset Cloud. Skenario berikut adalah yang paling umum:
Project orkestrator: Jika Anda ingin satu project memicu operasi Cloud Asset Inventory di project lain.
Mengekspor lintas project: Jika Anda ingin mengekspor metadata resource dari satu project ke project lain.
Setiap skenario ini memerlukan beberapa penyiapan untuk memastikan operasi berhasil selesai.
Project Orchestrator
Saat menggunakan project untuk memicu operasi Inventaris Aset Cloud pada resource di project lain, dalam skenario tertentu, Anda perlu menentukan bahwa akun layanan Inventaris Aset Cloud default di project lain digunakan untuk melakukan operasi. Skenario ini mencakup:
Untuk menetapkan akun layanan yang akan digunakan, Anda menetapkan project penagihan ke ID project yang berisi resource yang Anda operasikan. Jika project penagihan tidak ditentukan, Cloud Asset Inventory akan menggunakan akun layanan Cloud Asset Inventory default di project yang melakukan panggilan, yang mungkin tidak memiliki izin yang diperlukan untuk menyelesaikan operasi.
Meskipun tidak diperlukan untuk semua operasi, sebaiknya selalu tentukan project penagihan untuk meminimalkan kebingungan.
gcloud
Untuk gcloud CLI, tambahkan flag --billing-project
ke perintah Anda untuk menentukan project ID yang berisi akun layanan yang benar:
--billing-project=BILLING_PROJECT_ID
Atau, Anda dapat menetapkan project penagihan sebelum menjalankan perintah dengan gcloud CLI. Pertama, periksa apakah project penagihan berbeda dari project inti:
gcloud config list
Kemudian, jika perlu, tetapkan project penagihan:
gcloud config set billing/quota_project BILLING_PROJECT_ID
Berikan nilai berikut:
BILLING_PROJECT_ID
: ID project yang memiliki Cloud Asset Inventory API diaktifkan, dan akun layanan dengan izin untuk mengelola topik Pub/Sub target, bucket Cloud Storage, atau tabel BigQuery.
REST
Untuk REST API, tambahkan header X-Goog-User-Project
untuk menentukan ID project yang berisi akun layanan yang benar:
"X-Goog-User-Project: BILLING_PROJECT_ID"
Berikan nilai berikut:
BILLING_PROJECT_ID
: ID project yang memiliki Cloud Asset Inventory API diaktifkan, dan akun layanan dengan izin untuk mengelola topik Pub/Sub target, bucket Cloud Storage, atau tabel BigQuery.
Mengekspor di seluruh project
Untuk mengekspor metadata aset dari satu project, PROJECT_A
, ke project lain, PROJECT_B
,
Anda harus memberikan akses ke akun layanan Inventaris Aset Cloud default di PROJECT_A
ke
resource di PROJECT_B
.
Hal ini memungkinkan dua hal:
Anda dapat mengekspor metadata aset dari
PROJECT_A
ke topik Pub/Sub, bucket Cloud Storage, atau tabel BigQuery yang terletak diPROJECT_B
.Anda dapat menggunakan
PROJECT_A
untuk mengekspor metadata aset dariPROJECT_B
ke topik Pub/Sub, bucket Cloud Storage, atau tabel BigQuery yang berada diPROJECT_B
.
Untuk mengekspor metadata aset dari satu project ke project lain, selesaikan petunjuk berikut:
Pastikan Cloud Asset Inventory API diaktifkan di project tempat Anda ingin menjalankan permintaan,
PROJECT_A
.Lakukan setidaknya satu panggilan ke Cloud Asset Inventory API di
PROJECT_A
untuk membuat akun layanan Cloud Asset Inventory default. Atau, Anda dapat membuatnya secara manual:gcloud beta services identity create \ --service=cloudasset.googleapis.com \ --project=PROJECT_A_ID gcloud projects add-iam-policy-binding PROJECT_A_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/cloudasset.serviceAgent
Cara menemukan nomor project Google Cloud
Konsol Google Cloud
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Selamat Datang di konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
-
Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat Datang.
Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang dicari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
Berikan peran yang benar ke akun layanan di
PROJECT_A
.Untuk memublikasikan ke feed melalui Pub/Sub, berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
) ke akun layanan pada topik:gcloud pubsub topics add-iam-policy-binding projects/PROJECT_B_ID/topics/TOPIC_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/pubsub.publisher
Untuk menulis ke bucket Cloud Storage, berikan peran Storage admin (
roles/storage.admin
) ke akun layanan di bucket:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/storage.objectCreator
Untuk menulis ke tabel BigQuery, berikan peran BigQuery Data Editor (
roles/bigquery.dataEditor
) dan BigQuery user (roles/bigquery.user
) ke akun layanan di project:gcloud projects add-iam-policy-binding PROJECT_B_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/bigquery.user gcloud projects add-iam-policy-binding PROJECT_B_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/bigquery.dataEditor
Jika Anda membuat permintaan Cloud Asset Inventory dengan gcloud CLI dari
PROJECT_B
atau menggunakan REST API, pastikan untuk
menentukan PROJECT_A
sebagai project penagihan.