Bergantung pada kebutuhan Anda, Anda mungkin perlu mendesain arsitektur agar berfungsi di beberapa project saat menggunakan Inventaris Aset Cloud. Skenario berikut adalah yang paling umum:
Project pengelola: 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 selesai dengan berhasil.
Project Orchestrator
Saat Anda 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 tersebut harus 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 sedang 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 telah mengaktifkan Cloud Asset Inventory API, dan akun layanan dengan izin untuk mengelola topik Pub/Sub, bucket Cloud Storage, atau tabel BigQuery target Anda.
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 telah mengaktifkan Cloud Asset Inventory API, dan akun layanan dengan izin untuk mengelola topik Pub/Sub, bucket Cloud Storage, atau tabel BigQuery target Anda.
Mengekspor di seluruh project
Untuk mengekspor metadata aset dari satu project, PROJECT_A, ke project lain, PROJECT_B,
Anda harus memberikan akses ke resource di PROJECT_B kepada akun layanan Cloud Asset Inventory default di PROJECT_A.
Hal ini memungkinkan dua hal:
Anda dapat mengekspor metadata aset dari
PROJECT_Ake topik Pub/Sub, bucket Cloud Storage, atau tabel BigQuery yang berada diPROJECT_B.Anda dapat menggunakan
PROJECT_Auntuk mengekspor metadata aset dariPROJECT_Bke 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_Auntuk 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.serviceAgentCara menemukan Google Cloud nomor project
KonsolGoogle Cloud
Untuk menemukan nomor project Google Cloud , selesaikan langkah-langkah berikut:
-
Buka halaman Selamat Datang di konsol Google Cloud .
- Klik kotak daftar pengganti 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 Anda cari, 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) kepada akun layanan di 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.publisherUntuk 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.adminUntuk menulis ke tabel BigQuery, berikan peran BigQuery Data Editor (
roles/bigquery.dataEditor) dan Pengguna BigQuery (roles/bigquery.user) kepada 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.dataEditor 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
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.