Membuat instance Secure Source Manager Private Service Connect

Halaman ini menjelaskan cara membuat instance Private Service Connect.

Instance Private Service Connect tidak mengekspos endpoint apa pun ke internet publik. Saat Anda membuat instance Private Service Connect, endpoint dibuat untuk menyediakan akses SSH (Git) dan HTTPS (Git, antarmuka web, API) ke instance. Endpoint harus diberi alamat IP di jaringan pribadi Anda. Semua traffic ke dan dari instance Private Service Connect melewati endpoint Private Service Connect.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Private Service Connect untuk mengakses layanan terkelola secara pribadi dari dalam jaringan VPC, lihat Private Service Connect.

Secure Source Manager adalah layanan tenant tunggal. Satu instance Secure Source Manager hanya boleh menyertakan pengguna dari satu pelangganGoogle Cloud , kecuali jika beberapa perusahaan yang memiliki hubungan kontraktual perlu menggunakan satu instance untuk berkolaborasi.

Jika Anda bekerja sama dengan beberapa perusahaan dan ingin berkolaborasi dengan mereka dalam kode sumber, sebaiknya buat instance terpisah untuk setiap perusahaan.

Sebelum memulai

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  6. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Enable the API

  9. Install the Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. Instal komponen beta Google Cloud CLI:
    gcloud components install beta
  13. Peran yang diperlukan

    Untuk mendapatkan izin yang diperlukan untuk membuat instance Secure Source Manager Private Service Connect, minta administrator untuk memberi Anda peran IAM berikut:

    Membuat identitas layanan dan pool Certificate Authority

    Bagian ini menjelaskan tindakan yang harus dilakukan jika Anda menggunakan sertifikat CA Anda sendiri. Untuk menggunakan sertifikat yang dikelola Google, Anda tidak perlu melakukan apa pun selain menjalankan gcloud beta source-manager instances create perintah tanpa membuat identitas layanan dan kumpulan CA.

    Jika Anda menggunakan sertifikat CA Anda sendiri, bukan menggunakan sertifikat yang dikelolaGoogle, Anda harus menentukan nama kumpulan Certificate Authority (CA) saat membuat instance Secure Source Manager pribadi. Permintaan untuk menandatangani sertifikat SSL HTTPS instance dikirim ke kumpulan CA.

    1. Jalankan perintah berikut untuk membuat identitas layanan bagi Secure Source Manager API dalam project Anda:

      gcloud beta services identity create \
          --service=securesourcemanager.googleapis.com \
          --project=PROJECT_ID
      

      Dengan PROJECT_ID sebagai project ID Anda.

      Outputnya mirip dengan hal berikut ini:

      Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.

      Dengan service-PROJECT_NUM@gcp-sa-sourcemanager. adalah agen layanan Secure Source Manager, dan PROJECT_NUM adalah nomor project Anda.

    2. Buat kumpulan Certificate Authority (CA) dengan permintaan sertifikat berbasis CSR yang diizinkan.

    3. Buat CA. Anda dapat membuat CA root atau subordinate, bergantung pada kebutuhan Anda.

      Untuk mengetahui informasi selengkapnya tentang perbedaan antara CA root dan CA subordinat, lihat Menentukan setelan otoritas sertifikat.

    4. Berikan izin identitas layanan Secure Source Manager API untuk meminta sertifikat baru di kumpulan CA:

      gcloud privateca pools add-iam-policy-binding CA_POOL_NAME \
          --location=CA_LOCATION \
          --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.' \
          --role='roles/privateca.certificateRequester' \
          --project=CA_PROJECT_ID
      

      Ganti kode berikut:

      • CA_POOL_NAME dengan nama yang Anda berikan ke CA pool.
      • CA_LOCATION dengan region atau zona kumpulan CA Anda.
      • PROJECT_NUMBER dengan nomor project tempat Secure Source Manager diaktifkan. Anda dapat menemukan nomor project dengan mengikuti petunjuk di Mengidentifikasi project.
      • CA_PROJECT_ID dengan project ID project tempat Anda membuat kumpulan CA.

    Membuat instance Secure Source Manager Private Service Connect

    gcloud

    Buat instance Private Service Connect dengan perintah berikut:

    gcloud beta source-manager instances create INSTANCE_ID \
      --region=LOCATION \
      --project=PROJECT_ID \
      --is-private \
      --ca-pool=projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME
    

    Ganti kode berikut:

    • INSTANCE_ID dengan nama yang ingin Anda berikan ke instance.
    • LOCATION dengan region tempat Anda ingin membuat instance. Untuk lokasi yang didukung, lihat Lokasi.
    • PROJECT_ID dengan nama project tempat Anda ingin membuat instance.
    • CA_PROJECT dengan nama project kumpulan CA, hanya jika Anda menggunakan sertifikat CA Anda sendiri.
    • CA_LOCATION dengan region tempat Anda membuat kumpulan CA, hanya jika Anda menggunakan sertifikat CA Anda sendiri.
    • CA_POOL_NAME dengan nama kumpulan CA, hanya jika Anda menggunakan sertifikat CA Anda sendiri.

    API

    Buat instance Private Service Connect dengan perintah berikut:

    curl \
        -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \
        -H "Content-Type: application/json" \
        -d '{"private_config":{"is_private":true,"ca_pool":"projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME"}}'
    

    Ganti kode berikut:

    • INSTANCE_ID dengan nama yang ingin Anda berikan ke instance.
    • LOCATION dengan region tempat Anda ingin membuat instance. Untuk lokasi yang didukung, lihat Lokasi.
    • PROJECT_ID dengan nama project tempat Anda ingin membuat instance.
    • CA_PROJECT dengan nama project kumpulan CA, hanya jika Anda menggunakan sertifikat CA Anda sendiri.
    • CA_LOCATION dengan region tempat Anda membuat kumpulan CA, hanya jika Anda menggunakan sertifikat CA Anda sendiri.
    • CA_POOL_NAME dengan nama kumpulan CA, hanya jika Anda menggunakan sertifikat CA Anda sendiri.

    Operasi pembuatan instance yang berjalan lama dimulai. Proses pembuatan instance memerlukan waktu hingga 60 menit. Outputnya mirip dengan hal berikut ini:

    Create request issued for [my-instance].
    done: false
    metadata:
      '@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata
      apiVersion: v1
      createTime: '2023-02-27T20:57:52.315609549Z'
      requestedCancellation: false
      target: projects/my-project/locations/us-central1/instances/my-instance
      verb: create
    name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
    

    Dengan projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e adalah OPERATION_NAME.

    Perhatikan OPERATION_NAME karena Anda harus menggunakannya untuk memeriksa status operasi.

    Untuk memeriksa status operasi, jalankan perintah berikut:

    gcloud beta source-manager operations describe OPERATION_NAME \
        --region=LOCATION
    

    Ganti kode berikut:

    • OPERATION_NAME dengan nama operasi dari respons perintah create Anda.
    • LOCATION dengan region tempat Anda ingin membuat instance. Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi.

    Setelah instance dibuat, endpoint Private Service Connect httpServiceAttachment dan sshServiceAttachment, beserta nama host untuk html, api, gitHttp, dan gitSsh, akan tercantum dalam output.

    Mengakses instance pribadi

    Untuk mengakses instance Private Service Connect, Anda dapat membuat endpoint Private Service Connect berdasarkan aturan penerusan, atau membuat backend Private Service Connect berdasarkan load balancer.

    Backend Private Service Connect berdasarkan load balancer lebih fleksibel, dan memungkinkan Anda berintegrasi dengan layanan lain seperti Cloud Build, tetapi lebih rumit dan memiliki penagihan tambahan. Google Cloud

    Endpoint Private Service Connect berdasarkan aturan penerusan lebih sederhana dan lebih murah, tetapi Anda tidak dapat terhubung ke Cloud Build atau layananGoogle Cloud lainnya.

    Untuk menyiapkan backend Private Service Connect berdasarkan load balancer untuk instance Private Service Connect dan menghubungkannya ke Cloud Build, lihat Menghubungkan Cloud Build ke instance Private Service Connect.

    Menyiapkan endpoint Private Service Connect berdasarkan aturan penerusan

    1. Untuk membuat endpoint Private Service Connect, ikuti petunjuk di Mengakses layanan yang dipublikasikan melalui endpoint.

    2. Untuk mendapatkan URI lampiran layanan HTTP dan SSH instance Secure Source Manager Anda, jalankan perintah berikut:

      gcloud beta source-manager instances describe INSTANCE_ID \
          --region=LOCATION
      

      Ganti kode berikut:

      • INSTANCE_ID dengan nama instance Anda. Untuk mencantumkan instance di region tertentu, Anda dapat menjalankan gcloud beta source-manager instances list --region=LOCATION.
      • LOCATION dengan lokasi instance Anda. Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi.

      Outputnya akan terlihat seperti berikut:

      createTime: '2023-09-22T18:21:35.729454612Z'
      hostConfig:
        api: my-project-012345678901-api.us-central1.p.sourcemanager.dev
        gitHttp: my-project-012345678901-git.us-central1.p.sourcemanager.dev
        gitSsh: my-project-012345678901-ssh.us-central1.p.sourcemanager.dev
        html: my-project-012345678901.us-central1.p.sourcemanager.dev
      name: projects/my-project/locations/us-central1/instances/my-instance
      privateConfig:
        caPool: projects/my-project/locations/us-central1/caPools/my-ca-pool
        httpServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
        isPrivate: true
        sshServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
      state: ACTIVE
      updateTime: '2023-09-22T18:39:53.390563549Z'
      

      Dengan:

      • projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc adalah URI lampiran layanan HTTP instance Anda.
      • projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc adalah URI lampiran layanan SSH instance Anda.
    3. Setelah membuat endpoint Private Service Connect, Anda perlu menyiapkan data DNS pribadi. Untuk mengetahui petunjuk tentang cara menyiapkan data DNS pribadi, lihat Mengonfigurasi DNS secara manual.

      1. Petakan nilai hostConfig.html, hostConfig.api, dan hostConfig.gitHttp ke alamat IP internal lampiran layanan HTTP.
      2. Petakan nilai hostConfig.ssh ke alamat IP internal lampiran layanan SSH.

      Misalnya, dalam output contoh sebelumnya, nilai hostConfig.html adalah my-project-012345678901.us-central1.p.sourcemanager.dev.

      Google Cloud

    Menggunakan CA dengan Secure Source Manager API

    Secure Source Manager memiliki bidang kontrol dan bidang data. Endpoint bidang data dihosting langsung oleh instance Secure Source Manager Anda, sehingga Anda harus terhubung ke nama host API instance Anda untuk mengaksesnya.

    Untuk menggunakan instance Secure Source Manager pribadi, Anda harus menggunakan CA yang Anda buat di bagian Buat kumpulan Certificate Authority dan identitas layanan.

    1. Untuk mendownload CA Anda, jalankan perintah berikut:

      gcloud privateca pools get-ca-certs CA_POOL \
          --location LOCATION \
          --output-file=root-cert.pem \
          --project PROJECT
      
    2. Untuk melakukan panggilan API ke instance Anda, teruskan sertifikat CA ke API Secure Source Manager bidang data.

      Misalnya, perintah berikut meneruskan sertifikat CA root-cert.pem ke Secure Source Manager API untuk mencantumkan repositori di instance pribadi my-instance di lokasi us-central1.

      curl \
          --cacert root-cert.pem \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          https://my-instance-01234567890-api.us-central1.sourcemanager.dev/v1/projects/01234567890/locations/us-central1/repositories
      

    Langkah berikutnya