Membuat instance Secure Source Manager untuk digunakan dengan identitas gabungan

Pelajari cara membuat instance Secure Source Manager yang menggunakan Workforce Identity Federation dengan penyedia identitas (IdP) eksternal.

Untuk mengetahui informasi selengkapnya tentang Workforce Identity Federation, lihat Workforce Identity Federation.

Untuk mengetahui informasi tentang batasan Workforce Identity Federation di Secure Source Manager, lihat Federasi identitas: produk dan batasan.

Secure Source Manager adalah layanan satu tenant. Satu instance Secure Source Manager hanya boleh menyertakan pengguna dari satu Google Cloud pelanggan, kecuali jika beberapa perusahaan yang memiliki hubungan kontrak 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. Login ke Akun Google Anda.

    Jika Anda belum memilikinya, Daftar untuk membuat akun baru.

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  4. Instal 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  9. Instal 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

Enkripsi data

Secara default, Google Cloud otomatis mengenkripsi data saat tidak aktif menggunakan Google-owned and Google-managed encryption keys. Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus yang terkait dengan kunci yang melindungi data, Anda dapat membuat instance Secure Source Manager yang dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK).

Jangan simpan data sensitif di ID instance atau pasangan nilai kunci 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

Di sini, PROJECT_ID adalah project ID dari project tempat Anda membuat instance Secure Source Manager.

Setelah membuat agen layanan Secure Source Manager, Anda harus memberikan peran Agen Layanan Secure Source Manager (roles/securesourcemanager.serviceAgent) ke entity utama service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com atau pembuatan instance akan gagal.

Menyiapkan Workforce Identity Federation

Sebelum membuat instance, Anda harus menyiapkan pool dan penyedia Workforce Identity Federation.

  1. Buat pool Workforce Identity Federation.

  2. Konfigurasi penyedia pool workforce identity Anda dengan pemetaan atribut berikut:

    • google.subject
    • google.email

Membuat instance

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • INSTANCE_ID: nama instance yang ingin Anda buat.
  • LOCATION: region tempat Anda ingin membuat instance. Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi.
  • PROJECT_ID: project ID dari project tempat Anda ingin membuat instance.

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation

Windows (PowerShell)

gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation

Windows (cmd.exe)

gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation

Operasi pembuatan instance yang berjalan lama akan 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.

Catat OPERATION_NAME karena Anda harus menggunakannya untuk memeriksa status operasi.

Proses pembuatan instance memerlukan waktu hingga 60 menit.

API

Sebelum menjalankan perintah ini, ganti nilai berikut:

  • INSTANCE_ID: nama instance yang ingin Anda buat.
  • LOCATION: region tempat Anda ingin membuat instance. Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi.
  • PROJECT_ID: project ID dari project tempat Anda ingin membuat instance.

Jalankan 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 "{workforce_identity_federation_config: {enabled: true}}"

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

{
"name": "OPERATION_NAME",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
  "createTime": "2022-11-01T14:31:32.420469714Z",
  "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
  "verb": "create",
  "requestedCancellation": false,
  "apiVersion": "v1"
},
"done": false
}

Output contoh ini mencakup nilai berikut:

  • OPERATION_NAME: nama operasi—misalnya, projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.
  • PROJECT_ID: Google Cloud project.
  • LOCATION: region tempat instance berada.

Catat OPERATION_NAME karena Anda harus menggunakannya untuk memeriksa status operasi.

Proses pembuatan instance memerlukan waktu hingga 60 menit.

Terraform

Contoh berikut membuat instance Secure Source Manager dengan Workforce Identity Federation diaktifkan:

resource "google_secure_source_manager_instance" "instance" {
  instance_id = "INSTANCE_ID"
  location    = "LOCATION"
  project     = "PROJECT_ID"
  workforce_identity_federation_config {
    enabled = true
  }
}

Memeriksa status operasi

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • OPERATION_NAME: nama operasi dari respons perintah pembuatan Anda.
  • LOCATION: region instance.

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

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

Setelah instance siap, responsnya akan terlihat seperti 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/my-instance",
    "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/my-instance",
    "createTime": "2022-11-01T14:31:32.416413630Z",
    "updateTime": "2022-11-01T14:31:32.416413630Z",
    "labels": {
      "ldap": "user",
      "source": "manual"
    },
    "state": "ACTIVE",
    "hostConfig": {
      "html": "my-instance-098765432109.us-central1.sourcemanager.dev",
      "api": "my-instance-098765432109-api.us-central1.sourcemanager.dev",
      "gitHttp": "my-instance-098765432109-git.us-central1.sourcemanager.dev"
    }
  }

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

API

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • OPERATION_NAME: nama operasi dari respons perintah pembuatan Anda.

Metode HTTP dan URL:

GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Setelah instance siap, responsnya akan terlihat seperti 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": "2024-10-28T15:37:39.009812863Z",
    "endTime": "2024-10-28T16:10:58.416640259Z",
    "target": "projects/my-project/locations/us-central1/instances/my-instance",
    "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/my-instance",
    "createTime": "2024-10-28T15:37:39.004550840Z",
    "updateTime": "2024-10-28T15:37:39.867857246Z",
    "state": "ACTIVE",
    "hostConfig": {
      "html": "my-instance-326202322590.us-central1.sourcemanager.dev",
      "api": "my-instance-326202322590-api.us-central1.sourcemanager.dev",
      "gitHttp": "my-instance-326202322590-git.us-central1.sourcemanager.dev",
      "gitSsh": "my-instance-326202322590-ssh.us-central1.sourcemanager.dev"
    },
    "workforceIdentityFederationConfig": {
      "enabled": true
    }
  }

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

Salin URL HTML dari respons status check yang berhasil. Anda memerlukan URL ini untuk mengakses instance melalui antarmuka web-nya.

Mengakses instance

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

  1. Untuk mengakses instance Secure Source Manager melalui antarmuka web-nya, salin URL berikut ke kolom URL browser Anda.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Ganti kode berikut:

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

    Layar OAuth akan muncul dan meminta nama penyedia Anda.

  2. Masukkan nama penyedia workforce identity Anda dalam format berikut:

    locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID
    

    Ganti kode berikut:

    • POOL_ID dengan ID pool Workforce Identity Federation Anda.
    • PROVIDER_ID dengan ID penyedia Workforce Identity Federation Anda.

    Untuk mengetahui informasi selengkapnya tentang pool dan penyedia Workforce Identity Federation, lihat Mengelola pool dan penyedia identitas Workforce Identity Federation.

    Anda akan diminta untuk login menggunakan kredensial penyedia Anda.

  3. Login menggunakan kredensial penyedia Anda.

  4. Antarmuka web Secure Source Manager akan terbuka. Dari sini, Anda dapat membuat dan melihat repositori, masalah, dan permintaan pull.

    Anda harus login lagi melalui antarmuka web setelah durasi sesi di pool Workforce Identity Federation Anda berakhir.

Membuat konfigurasi login gcloud CLI

Untuk melakukan autentikasi dengan kredensial pool workforce identity ke instance Secure Source Manager menggunakan perintah gcloud CLI atau perintah Git, Anda harus membuat konfigurasi login dengan pool workforce identity Anda.

Untuk membuat konfigurasi login pool workforce identity, ikuti petunjuk di Mendapatkan token berdurasi singkat untuk Workforce Identity Federation guna membuat login berbasis browser dengan gcloud CLI.

Setelah melakukan autentikasi, Anda dapat menggunakan perintah Git untuk berinteraksi dengan instance Secure Source Manager. Untuk mulai menggunakan Git, lihat Menggunakan pengelolaan kode sumber Git.

Langkah berikutnya