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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
- Instal komponen
beta
Google Cloud CLI:gcloud components install beta
-
Peran Administrator Access Context Manager (
roles/accesscontextmanager.policyAdmin
) di organisasi -
Peran Pemilik Instance (
roles/sercuresourcemanager.instanceOwner
) di instance -
Untuk membuat identitas layanan dan kumpulan Certificate Authority:
CA Service Operation Manager (
roles/privateca.caManager
) di organisasi 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, danPROJECT_NUM
adalah nomor project Anda.Buat kumpulan Certificate Authority (CA) dengan permintaan sertifikat berbasis CSR yang diizinkan.
Buat CA. Anda dapat membuat CA root atau subordinate, bergantung pada kebutuhan Anda.
- Untuk membuat CA root, ikuti petunjuk di Membuat CA root.
- Untuk membuat subordinate CA dari parent CA di Google Cloud, ikuti petunjuk di Membuat subordinate CA
- Untuk membuat CA subordinat dari CA eksternal, ikuti petunjuk di Membuat CA subordinat dari CA eksternal.
Untuk mengetahui informasi selengkapnya tentang perbedaan antara CA root dan CA subordinat, lihat Menentukan setelan otoritas sertifikat.
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.
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.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.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.Untuk membuat endpoint Private Service Connect, ikuti petunjuk di Mengakses layanan yang dipublikasikan melalui endpoint.
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 menjalankangcloud 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.
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.
- Petakan nilai
hostConfig.html
,hostConfig.api
, danhostConfig.gitHttp
ke alamat IP internal lampiran layanan HTTP. - Petakan nilai
hostConfig.ssh
ke alamat IP internal lampiran layanan SSH.
Misalnya, dalam output contoh sebelumnya, nilai
Google CloudhostConfig.html
adalahmy-project-012345678901.us-central1.p.sourcemanager.dev
.- Petakan nilai
Untuk mendownload CA Anda, jalankan perintah berikut:
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECT
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 pribadimy-instance
di lokasius-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
- Hubungkan Cloud Build ke instance Secure Source Manager Private Service Connect.
- Konfigurasi Secure Source Manager di perimeter Kontrol Layanan VPC.
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.
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:
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:
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:
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
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.