Membuat instance Secure Source Manager

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.

Untuk membuat instance dengan Kontrol Layanan VPC yang diaktifkan, lihat Mengonfigurasi Secure Source Manager di perimeter Kontrol Layanan VPC.

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 Google Cloud CLI `beta`:
    gcloud components install beta
  13. Peran yang diperlukan

    Untuk mendapatkan izin yang diperlukan guna membuat instance Secure Source Manager, minta administrator untuk memberi Anda peran IAM Secure Source Manager Instance Owner (roles/securesourcemanager.instanceOwner) di project Google Cloud .

    Peran Secure Source Manager tidak muncul di konsol Google Cloud hingga peran tersebut diberikan kepada akun utama. Untuk memberikan peran Secure Source Manager untuk pertama kalinya, lihat Memberikan dan mencabut peran IAM.

    Enkripsi data

    Secara default, Google Cloud akan otomatis mengenkripsi data dalam penyimpanan menggunakan kunci enkripsi yang dikelola oleh Google. Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus terkait kunci yang melindungi data, Anda dapat membuat instance Secure Source Manager yang dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK).

    Jangan menyimpan data sensitif di ID instance atau key-value pair label karena data tersebut tidak dienkripsi dengan CMEK.

    Jika Anda membuat instance Secure Source Manager pertama di project, Anda harus membuat agen layanan Secure Source Manager secara manual dengan menjalankan perintah berikut:

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

    Dengan PROJECT_ID adalah project ID project tempat Anda akan membuat instance Secure Source Manager.

    Setelah membuat akun layanan per produk, per project (P4SA), Anda harus memberikan peran Secure Source Manager Service Agent (roles/securesourcemanager.serviceAgent) kepada prinsipal service-PROJECT-NUMBER@gcp-sa-sourcemanager.atau pembuatan instance akan gagal.

    Membuat instance

    Untuk membuat instance:

    gcloud CLI

    1. Jalankan perintah berikut untuk membuat instance. Anda mungkin diminta untuk melakukan autentikasi ke gcloud CLI.

      gcloud beta source-manager instances create INSTANCE_ID \
          --region=LOCATION \
          --project=PROJECT_ID \
          --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
      

      Dengan:

      • INSTANCE_ID adalah nama instance yang ingin Anda buat.
      • LOCATION adalah region tempat Anda ingin membuat instance. Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi.
      • PROJECT_ID adalah project ID project tempat Anda ingin membuat instance.
      • -kms-key adalah tanda opsional. Sertakan jika Anda ingin menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) Anda sendiri untuk membuat instance. Kunci CMEK harus berada di lokasi yang sama dengan tempat Anda membuat instance, tetapi dapat berada di project yang berbeda. Hapus tanda ini jika Anda ingin menggunakan enkripsi default Google. Jika Anda ingin mengenkripsi data menggunakan CMEK, ganti elemen berikut:
        • KEY_PROJECT dengan project tempat Anda membuat kunci.
        • KEY_LOCATION dengan lokasi kunci.
        • KEYRING_NAME dengan nama key ring Anda.
        • KEY dengan nama kunci Anda.

      Operasi pembuatan instance yang berjalan lama dimulai. Outputnya akan terlihat seperti berikut:

      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.

      Diperlukan waktu hingga 60 menit untuk membuat instance.

    2. Perhatikan OPERATION_NAME karena Anda harus menggunakannya untuk memeriksa status operasi.

    3. Periksa status operasi create dengan menjalankan 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 siap, responsnya akan terlihat mirip dengan berikut:

      {
      "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
        "name": "projects/my-project/locations/us-central1/instances/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

      Dengan test-098765432109.us-central1.sourcemanager.dev adalah URL HTML instance.

    4. Salin URL HTML dari perintah status pemeriksaan yang berhasil dibuat. Anda akan memerlukan URL ini untuk mengakses instance melalui antarmuka webnya.

    API

    1. Jalankan perintah berikut untuk membuat instance. Anda mungkin diminta untuk melakukan autentikasi ke gcloud CLI.

      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 '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'
      
      

      Dengan:

      • INSTANCE_ID adalah nama instance yang ingin Anda buat.
      • LOCATION adalah region tempat Anda ingin membuat instance. Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi.
      • PROJECT_ID adalah project ID project tempat Anda ingin membuat instance.
      • -d adalah tanda data HTTP POST opsional yang dapat digunakan untuk menentukan kunci CMEK untuk mengenkripsi instance Anda. Hapus tanda ini jika Anda ingin menggunakan enkripsi Google default. Jika Anda ingin mengenkripsi data menggunakan CMEK, ganti elemen berikut:
        • KEY_PROJECT dengan project tempat Anda membuat kunci.
        • KEY_LOCATION dengan lokasi kunci.
        • KEYRING_NAME dengan nama key ring Anda.
        • KEY dengan nama kunci Anda.

      Operasi pembuatan instance yang berjalan lama dimulai. Outputnya akan terlihat seperti berikut:

      {
      "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
      }
      

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

      Diperlukan waktu hingga 60 menit untuk membuat instance.

    2. Salin OPERATION_NAME.

    3. Periksa status operasi pembuatan dengan menjalankan perintah berikut:

      curl \
          -X GET \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
      

      Dengan OPERATION_NAME adalah nama operasi dari respons terhadap perintah pembuatan Anda.

      Setelah instance siap, responsnya akan terlihat mirip dengan berikut:

      {
      "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
        "name": "projects/my-project/locations/us-central1/instances/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

      Dengan test-098765432109.us-central1.sourcemanager.dev adalah URL HTML instance.

    4. Salin URL HTML dari perintah status pemeriksaan yang berhasil dibuat. Anda akan memerlukan URL ini untuk mengakses instance melalui antarmuka webnya.

    Mengakses instance

    Setelah instance dibuat, Anda dapat mengaksesnya melalui antarmuka web menggunakan browser.

    Untuk membuat repositori di instance, Anda memerlukan peran Pembuat Repositori (roles/securesourcemanager.repoCreator) di project instance dan peran Pembuat Repositori Instance (roles/securesourcemanager.instanceRepositoryCreator) di instance Secure Source Manager.

    1. Untuk mengakses instance Secure Source Manager melalui antarmuka webnya, salin URL berikut ke kolom alamat browser Anda.

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      Ganti kode berikut:

      • INSTANCE_ID dengan nama instance.
      • PROJECT_NUMBER dengan nomor project Google Cloud instance. Untuk mengetahui informasi tentang cara mengidentifikasi project, lihat Mengidentifikasi project.
      • LOCATION dengan region instance.

    2. Layar OAuth akan muncul dan menanyakan apakah Anda ingin memberikan akses sourcemanager.dev ke Akun Google Anda.

    3. Klik tombol Izinkan.

    4. Antarmuka web Secure Source Manager akan terbuka. Anda dapat membuat dan melihat repositori serta semua masalah dan permintaan pull terkait dari antarmuka web.

    Langkah berikutnya