Menyiapkan lingkungan Anda

Sebelum membuat pipeline Image Builder, Anda harus menyiapkan lingkungan Cloud de Confiance terlebih dahulu. Untuk menyiapkan lingkungan Anda, selesaikan tugas berikut:

Sebelum memulai

  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses layanan Cloud de Confiance by S3NS dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan konsol Cloud de Confiance untuk mengakses layanan Cloud de Confiance by S3NS dan API, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init
  • Tetapkan region dan zona default.
  • REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Cloud de Confiance .

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menyiapkan lingkungan, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

  • Service Usage Admin (roles/serviceusage.serviceUsageAdmin)
  • Admin Identity and Access Management (IAM) Project (roles/resourcemanager.projectIamAdmin) atau Admin Akun Layanan (roles/iam.serviceAccountAdmin)
  • Administrator Artifact Registry (roles/artifactregistry.admin)

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Permintaan orientasi

Image Builder tersedia secara umum dengan daftar yang diizinkan. Untuk mengaktifkan project Cloud de Confiance Anda untuk pipeline penyesuaian gambar, kirim formulir permintaan akses atau hubungi tim akun Cloud de Confiance Anda.

Mengaktifkan API

Image Builder mengharuskan Anda mengaktifkan Compute Engine API, Cloud Build API, Artifact Registry API, Service Usage API, dan Resource Manager API. Untuk mengaktifkan API menggunakan konsol Cloud de Confiance atau Google Cloud CLI, pilih salah satu tab berikut:

Konsol

Aktifkan Compute Engine, Cloud Build, Artifact Registry, Service Usage, dan Cloud Resource Manager API.

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

Aktifkan API

gcloud

Aktifkan Compute Engine, Cloud Build, Artifact Registry, Service Usage, dan Cloud Resource Manager API:

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

gcloud services enable compute.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com serviceusage.googleapis.com cloudresourcemanager.googleapis.com

Mengonfigurasi akun layanan Image Builder

Pengelola Image Builder berjalan menggunakan akun layanan yang dikelola pengguna. Saat Anda menjalankan pipeline build image, Cloud Build akan melampirkan akun layanan ini ke instance VM pekerja sementara dan instance VM pengujian untuk melakukan tindakan penyesuaian dan validasi. Akun layanan ini memerlukan peran berikut:

  • Compute Admin (roles/compute.admin): mengelola instance VM, persistent disk, dan image OS tamu.
  • Pengguna Akun Layanan (roles/iam.serviceAccountUser): memungkinkan Cloud Build melampirkan akun layanan ke instance VM pengujian dan pekerja sementara.
  • Storage Admin (roles/storage.admin): membaca dan menulis artefak dan log build sementara di bucket penyiapan workdir Cloud Storage.
  • Logging Log Writer (roles/logging.logWriter): menulis log eksekusi ke Cloud Logging.
  • Service Usage Viewer (roles/serviceusage.serviceUsageViewer): memeriksa status layanan project selama eksekusi pipeline.
  • Cloud Build Editor (roles/cloudbuild.builds.editor): memicu dan menjalankan tugas Cloud Build serta mengekspor image.
  • (Opsional) Admin Artifact Registry (roles/artifactregistry.admin): mengupload file tar image OS yang dihasilkan ke Artifact Registry.

Anda dapat menggunakan akun layanan yang ada atau membuat akun layanan khusus baru untuk pipeline build Anda. Untuk membuat akun layanan khusus baru dan memberikan peran yang diperlukan menggunakan Cloud de Confiance konsol atau gcloud CLI, pilih salah satu tab berikut:

Konsol

    Pastikan Anda memiliki peran IAM Create Service Accounts (roles/iam.serviceAccountCreator) dan peran Project IAM Admin (roles/resourcemanager.projectIamAdmin). Pelajari cara memberikan peran.
  1. Di konsol Cloud de Confiance , buka halaman Buat akun layanan.

    Buka Create service account
  2. Pilih project Anda.
  3. Di kolom Nama akun layanan, masukkan nama. Konsol Cloud de Confiance akan mengisi kolom ID akun layanan berdasarkan nama ini.

    Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh, Service account for quickstart.

  4. Klik Create and continue.
  5. Berikan peran berikut ke akun layanan: Compute Engine > Compute Admin, Service Accounts > Service Account User, Cloud Storage > Storage Admin, Cloud Logging > Logs Writer, Service Usage > Service Usage Viewer, Cloud Build > Cloud Build Editor, Artifact Registry > Artifact Registry Admin.

    Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih peran.

    Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.

  6. Klik Lanjutkan.
  7. Di kolom Peran pengguna akun layanan, masukkan ID untuk akun utama yang akan melampirkan akun layanan ke resource lain, seperti instance Compute Engine.

    Biasanya, ini adalah ID untuk pengguna dalam workforce identity pool. Untuk mengetahui detailnya, lihat Merepresentasikan pengguna workforce pool dalam kebijakan IAM.

  8. Klik Selesai untuk menyelesaikan pembuatan akun layanan.

gcloud

  1. Buat akun layanan untuk pipeline build Anda:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
        --display-name="Image Builder Service Account"
    
  2. Berikan peran yang diperlukan (roles/compute.admin, roles/iam.serviceAccountUser, roles/storage.admin, roles/logging.logWriter, roles/serviceusage.serviceUsageViewer, dan roles/cloudbuild.builds.editor) ke akun layanan Anda:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/compute.admin"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.admin"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/logging.logWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/serviceusage.serviceUsageViewer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/cloudbuild.builds.editor"
    
  3. Opsional: Berikan peran opsional (roles/artifactregistry.admin) ke akun layanan Anda:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/artifactregistry.admin"
    

Ganti kode berikut:

  • SERVICE_ACCOUNT_NAME: nama akun layanan build yang akan dibuat. Contoh, custom-builder-sa.
  • PROJECT_ID: Cloud de Confiance Project ID Anda.
  • SERVICE_ACCOUNT_EMAIL: alamat email akun layanan build Anda.

Mengonfigurasi kebijakan organisasi image tepercaya

Karena Image Builder secara internal menggunakan alat impor dan ekspor image Compute Engine standar selama eksekusi build, kebijakan image tepercaya project Anda (compute.trustedImageProjects) harus secara eksplisit mengizinkan image dari project berikut:

  • projects/compute-image-import

Jika kebijakan organisasi Anda membatasi project ini, fase ekspor image akan gagal.

Untuk memperbarui kebijakan organisasi Anda:

  1. Dalam kebijakan organisasi Anda untuk batasan compute.trustedImageProjects, tambahkan projects/compute-image-import ke daftar penayang yang diizinkan.
  2. Untuk mengetahui petunjuk mendetail tentang cara mengonfigurasi batasan kebijakan organisasi, lihat Menyiapkan kebijakan image tepercaya dan Mengekspor image kustom ke Cloud Storage.

Mengonfigurasi persyaratan akses dan jaringan VPC

Selama fase build dan validasi, Image Builder menyediakan VM pengujian dan pekerja sementara di project Cloud de Confiance Anda. Secara default, Image Builder menghubungkan instance ke defaultjaringan VPC Anda dan menetapkan alamat IP eksternal sementara.

Jika Anda menentukan network atau subnetwork kustom, atau mengonfigurasi externalIP: none dalam file resep imagebuilder.yaml:

  • Akses Google Pribadi dan Cloud NAT: Jika VM pekerja atau pengujian dikonfigurasi dengan externalIP: none (tanpa IP eksternal), subnetwork VPC Anda harus mengaktifkan Akses Google Pribadi agar instance dapat menjangkau API dan layanan Google (seperti Cloud Storage dan Artifact Registry). Jika langkah penyesuaian Anda mendownload paket OS atau dependensi dari repositori internet eksternal, Anda juga harus mengonfigurasi Cloud NAT di subnetwork.
  • Aturan firewall: Pastikan aturan firewall VPC Anda mengizinkan traffic egress ke Google API dan repositori software yang diperlukan. Jika Anda berencana untuk terhubung ke VM pekerja aktif untuk proses debug interaktif (debug: true), pastikan aturan firewall mengizinkan traffic masuk di TCP port 22. Jika instance VM tidak memiliki IP eksternal, izinkan ingress dari rentang IP Identity-Aware Proxy (IAP) 35.235.240.0/20 untuk penerusan TCP.

Mengonfigurasi Artifact Registry

Untuk menyimpan dan mengelola image OS kustom, metadata keamanan, dan pengesahan provenance build SLSA, Anda harus menyiapkan repositori generik di Artifact Registry. Menyimpan image di Artifact Registry memungkinkan Anda mempertahankan catatan image yang dipublikasikan yang aman dan tidak dapat diubah.

Saat Anda mengonfigurasi tujuan Artifact Registry, Image Builder akan melakukan langkah-langkah berikut:

  • Mengekspor boot disk VM yang telah diselesaikan sebagai file tar standar (.tar.gz).
  • Mengupload file tar ke repositori generik Anda di Artifact Registry.
  • Membuat dan menandatangani pengesahan provenance build SLSA untuk artefak guna menautkannya ke metadata sumber.
  • Mendaftarkan image Compute Engine yang siap produksi dengan Compute Engine menggunakan URI file tar Artifact Registry sebagai sumber template.

Untuk mengonfigurasi Artifact Registry generik, selesaikan tugas berikut:

  1. Pastikan akun layanan yang digunakan untuk menjalankan pipeline Image Builder memiliki peran Admin Artifact Registry (roles/artifactregistry.admin) di tingkat project atau repositori. Untuk petunjuk mendetail, lihat Mengonfigurasi akun layanan Image Builder.

  2. Buat repositori format generic. Untuk membuat repositori, jalankan perintah gcloud artifacts repositories create:

    gcloud artifacts repositories create REPOSITORY_NAME \
        --repository-format=generic \
        --location=REPOSITORY_LOCATION
    

    Ganti placeholder berikut:

    • REPOSITORY_NAME: nama untuk repositori generik Anda. Contoh, custom-os-images.
    • REPOSITORY_LOCATION: wilayah yang didukung. Contoh, us-central1.

Langkah berikutnya