Berbagi Jenis di Seluruh Project

Halaman ini menjelaskan cara membagikan jenis dan penyedia jenis yang milik project Anda dengan project lain. Misalnya, asumsikan Anda memiliki project yang bertanggung jawab untuk mengelola penyedia jenis yang disetujui sebelumnya untuk perusahaan Anda. Anda ingin dapat membagikan penyedia jenis ini dari project tersebut dengan project lain dan menggunakan project sebagai repositori jenis pusat. Demikian pula, Anda juga dapat menggunakan metode ini untuk membagikan jenis komposit di seluruh project.

Untuk menyiapkan akses, pemilik project dari project yang memiliki jenis tersebut harus memberikan peran deploymentmanager.typeViewer (beta) ke akun layanan project yang ingin menggunakan jenis tersebut. Mereka juga harus memberikan peran kepada pengguna yang ingin melihat dan mencantumkan jenis dari project lain.

Sebelum memulai

Batasan

Berikut adalah batasan untuk menggunakan fitur ini:

  • Memberikan peran deploymentmanager.typeViewer akan memberikan izin ke semua jenis dalam project tertentu. Anda tidak dapat membatasi berbagi ke setiap jenis.
  • Peran ini tidak dapat diberikan kepada allAuthenticatedUsers atau allUsers.

Memberi project akses untuk menggunakan jenis

Untuk memberikan akses ke jenis yang termasuk dalam project lain, pemilik project yang memiliki jenis yang dimaksud harus memberikan peran deploymentmanager.typeViewer ke akun layanan Google API project yang ingin menggunakan jenis tersebut.

  1. Buka halaman IAM di konsol Google Cloud project yang akan menggunakan jenis tersebut.

    Buka halaman IAM

  2. Jika diminta, pilih project Anda dari daftar.
  3. Cari akun layanan Google API, yang memiliki alamat email dalam format berikut:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Catat alamat email di atas. Selanjutnya, pemilik project tempat jenis yang diinginkan berada dapat memberikan peran roles/deploymentmanager.typeViewer kepada akun layanan Google API.

    Konsol

    1. Saat masih berada di konsol Google Cloud, buka halaman IAM project yang berisi jenis yang ingin Anda bagikan.

      Buka halaman IAM

    2. Pilih project dari daftar project.
    3. Klik tombol Tambahkan untuk menambahkan anggota baru.
    4. Di kotak Anggota, masukkan alamat email akun layanan.
    5. Luaskan dropdown Roles, lalu pilih Other > Deployment Manager Types Viewer (beta).
    6. Klik Tambahkan untuk menambahkan akun.

    gcloud

    Dengan Google Cloud CLI, tambahkan binding ke kebijakan IAM untuk project:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
        --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/deploymentmanager.typeViewer

    dengan:

    • [PROJECT_ID] adalah ID project yang berisi gambar yang ingin Anda bagikan.
    • [SERVICE_ACCOUNT_EMAIL] adalah email akun layanan di project yang ingin Anda ajak berbagi jenis.

    Contoh:

    gcloud projects add-iam-policy-binding database-images \
        --member serviceAccount:123456789012@cloudservices.gserviceaccount.com  \
        --role roles/deploymentmanager.typeViewer

    API

    Di API, buat permintaan POST ke URL berikut, dengan [PROJECT_ID] adalah ID project yang berisi jenis yang ingin Anda bagikan.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
    

    Isi permintaan harus berisi daftar binding yang ingin Anda terapkan ke project ini. Peran roles/deploymentmanager.typeViewer harus menjadi bagian dari binding. Contoh:

    {
       "policy": {
           "version": "0",
           "bindings": [
           {
               "role": "roles/owner",
               "members": [
                   "user:example@gmail.com"
               ]
           },
           {
               "role": "roles/deploymentmanager.typeViewer",
               "members": [
                   "serviceAccount:123456789012@cloudservices.gserviceaccount.com"
               ]
           }
           ]
       }
    

    }

Menggunakan jenis dari project lain dalam konfigurasi Anda

Setelah memiliki akses ke jenis, Anda dapat menentukan jenis dalam konfigurasi menggunakan sintaksis. Untuk jenis komposit:

type: [PROJECT_ID]/composite:[TYPE]

Untuk penyedia jenis:

type: [PROJECT_ID]/[TYPE]:[COLLECTION]

Dengan keterangan:

  • [PROJECT_ID] adalah project ID yang memiliki jenis.
  • [TYPE] adalah nama penyedia jenis atau jenis komposit.
  • [COLLECTION] adalah resource spesifik yang Anda buat. Hal ini hanya berlaku untuk jenis dasar. Untuk mengetahui informasi selengkapnya tentang cara menentukan jenis dasar, baca Memanggil Penyedia Jenis dalam Konfigurasi.

Misalnya, jika project ID-nya adalah my-type-repository, Anda dapat memberikan spesifikasi jenis berikut:

resources:
- name: a-special-vm
  type: my-type-repository/composite:autoscaled-igm
  properties:
    ...

Memberi pengguna kemampuan untuk mencantumkan dan melihat jenis

Memberikan peran deploymentmanager.typeViewer kepada akun layanan project memungkinkan project men-deploy jenis ini dalam konfigurasi Anda, tetapi tidak memungkinkan pengguna melihat atau mencantumkan jenis ini. Jika ingin memberi setiap pengguna kemampuan untuk melihat jenis, Anda harus memberikan peran deploymentmanager.typeViewer kepada setiap pengguna.

Misalnya, agar Jane dapat menjalankan perintah gcloud beta deployment-manager types list --project another-project untuk project yang bukan miliknya, pemilik another-project harus memberi Jane peran deploymentmanager.typeViewer.

Dengan menggunakan gcloud CLI, Anda dapat memberikan peran kepada Jane seperti berikut:

 gcloud projects add-iam-policy-binding another-project \
        --member user:jane@gmail.com --role deploymentmanager.typeViewer

Untuk petunjuk komprehensif tentang cara menambahkan dan menghapus peran dari pengguna, baca dokumentasi untuk memberikan, mengubah, dan mencabut akses ke anggota project.

Apa langkah selanjutnya?