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 penggunaan 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
-
Login ke Akun Google Anda.
Jika Anda belum memilikinya, Daftar untuk membuat akun baru.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal 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.
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal 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
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna membuat instance Secure Source Manager Private Service Connect, minta administrator untuk memberi Anda peran IAM berikut:
-
Peran Admin Access Context Manager (
roles/accesscontextmanager.policyAdmin) di organisasi -
Peran Pemilik Instance (
roles/securesourcemanager.instanceOwner) pada instance -
Untuk membuat identitas layanan dan kumpulan Certificate Authority:
CA Service Operation Manager (
roles/privateca.caManager) di organisasi
Buat identitas layanan dan pool Certificate Authority
Bagian ini menjelaskan cara menggunakan sertifikat CA Anda sendiri. Anda harus menggunakan sertifikat CA Anda sendiri jika ingin menggunakan domain kustom dengan instance pribadi Anda. Untuk menggunakan sertifikat yang dikelola Googletanpa domain kustom,
Anda tidak perlu melakukan apa pun selain menjalankan
gcloud source-manager instances create
perintah tanpa membuat identitas layanan dan kumpulan CA. Untuk mengetahui informasi selengkapnya, lihat Membuat instance Secure Source Manager Private Service Connect.
Jika menggunakan sertifikat CA Anda sendiri, 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.
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_IDdengan PROJECT_ID adalah project ID Anda.
Outputnya mirip dengan hal berikut ini:
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.comdengan
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.comadalah agen layanan Secure Source Manager dan PROJECT_NUM adalah nomor project Anda.Buat kumpulan Certificate Authority (CA) dengan permintaan sertifikat berbasis CSR yang diaktifkan.
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.iam.gserviceaccount.com' \ --role='roles/privateca.certificateRequester' \ --project=CA_PROJECT_IDGanti kode berikut:
- CA_POOL_NAME dengan nama yang Anda berikan pada kumpulan CA.
- CA_LOCATION dengan region atau zona kumpulan CA Anda.
- PROJECT_NUMBER dengan nomor project tempat Secure Source Manager diaktifkan. Untuk menemukan nomor project, lihat Mengidentifikasi project.
- CA_PROJECT_ID dengan project ID project tempat Anda membuat kumpulan CA.
Membuat instance Secure Source Manager Private Service Connect
Anda dapat menetapkan domain kustom ke instance pribadi untuk endpoint HTML, API, Git HTTP, dan Git SSH. Domain kustom memerlukan sertifikat CA Anda sendiri. Oleh karena itu, Anda harus menyediakan kumpulan CA saat membuat instance dengan domain kustom. Anda hanya dapat mengonfigurasi domain kustom selama pembuatan instance menggunakan API. Anda tidak dapat mengubahnya setelah instance dibuat.
gcloud
Buat instance Private Service Connect dengan perintah berikut:
gcloud 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. Diperlukan jika Anda menggunakan sertifikat CA Anda sendiri.
- CA_LOCATION dengan region tempat Anda membuat kumpulan CA. Diperlukan jika Anda menggunakan sertifikat CA Anda sendiri.
- CA_POOL_NAME dengan nama pool CA. Diperlukan 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","custom_host_config":{"api":"API_CUSTOM_DOMAIN", "html":"HTML_CUSTOM_DOMAIN", "git_ssh":"GIT_SSH_CUSTOM_DOMAIN", "git_http":"GIT_HTTP_CUSTOM_DOMAIN"}}}'
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. Wajib jika Anda menggunakan sertifikat CA Anda sendiri atau domain kustom.
- CA_LOCATION dengan region tempat Anda membuat kumpulan CA. Wajib jika Anda menggunakan sertifikat CA Anda sendiri atau domain kustom.
- CA_POOL_NAME dengan nama pool CA. Wajib jika Anda menggunakan sertifikat CA Anda sendiri atau domain kustom.
- API_CUSTOM_DOMAIN dengan domain kustom Anda untuk akses API, misalnya
api.source.example.com. Hanya diperlukan jika Anda menggunakan domain kustom. - HTML_CUSTOM_DOMAIN dengan domain kustom Anda untuk akses UI web, misalnya
source.example.com. Diperlukan hanya jika Anda menggunakan domain kustom. - GIT_SSH_CUSTOM_DOMAIN dengan domain kustom Anda untuk akses SSH Git, misalnya
ssh.source.example.com. Diperlukan hanya jika Anda menggunakan domain kustom. - GIT_HTTP_CUSTOM_DOMAIN dengan domain kustom Anda untuk akses Git HTTP, misalnya
git.source.example.com. Diperlukan hanya jika Anda menggunakan domain kustom.
Terraform
Untuk membuat instance Private Service Connect dengan Terraform, gunakan
resource google_secure_source_manager_instance
dengan kolom private_config.is_private yang ditetapkan ke true.
Operasi pembuatan instance yang berjalan lama dimulai. Instance memerlukan waktu hingga 60 menit untuk dibuat. 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.
Anda memerlukan OPERATION_NAME untuk memeriksa status operasi.
Untuk memeriksa status operasi, jalankan perintah berikut:
gcloud 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 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
Anda dapat mengakses instance Private Service Connect dengan membuat endpoint Private Service Connect berdasarkan aturan penerusan atau dengan 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 kompleks dan memiliki penagihan tambahan. Google Cloud
Endpoint Private Service Connect berdasarkan aturan penerusan lebih sederhana dan lebih murah. Namun, 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
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 source-manager instances describe INSTANCE_ID \ --region=LOCATIONGanti kode berikut:
- INSTANCE_ID dengan nama instance Anda. Untuk mencantumkan
instance di region tertentu, jalankan
gcloud source-manager instances list --region=LOCATION. - LOCATION dengan lokasi instance Anda. Untuk lokasi yang didukung, lihat Lokasi.
Outputnya mencakup:
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'projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-pscadalah URI lampiran layanan HTTP instance Anda.projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-pscadalah URI lampiran layanan SSH instance Anda.
- INSTANCE_ID dengan nama instance Anda. Untuk mencantumkan
instance di region tertentu, jalankan
Setelah membuat endpoint Private Service Connect, Anda perlu menyiapkan data DNS pribadi. Untuk mengetahui petunjuk cara menyiapkan data DNS pribadi, lihat Mengonfigurasi DNS secara manual. Jika Anda mengonfigurasi domain kustom untuk instance, buat data DNS yang memetakan domain kustom ke alamat IP internal lampiran layanan. Jika tidak, gunakan nama host di kolom
hostConfigdari instance:- Petakan nilai
hostConfig.html(atau domain kustom HTML Anda),hostConfig.api(atau domain kustom API Anda), danhostConfig.gitHttp(atau domain kustom Git HTTP Anda) ke alamat IP internal lampiran layanan HTTP. - Petakan nilai
hostConfig.ssh(atau domain kustom SSH Git Anda) ke alamat IP internal lampiran layanan SSH.
Misalnya, dalam output contoh sebelumnya, nilai
hostConfig.htmladalahmy-project-012345678901.us-central1.p.sourcemanager.dev.- Petakan nilai
Autentikasi Git dengan domain kustom
Jika Anda menggunakan domain kustom untuk instance pribadi, lakukan
konfigurasi sisi klien berikut di setiap mesin untuk menggunakan Git melalui HTTPS.
Konfigurasi ini menghubungkan Git ke helper kredensial gcloud untuk
mengautentikasi terhadap domain kustom Anda.
Konfigurasi Git untuk menggunakan helper
gclouduntuk domain HTTP Git kustom Anda:git config --global credential.'https://GIT_HTTP_CUSTOM_DOMAIN'.helper gcloud.shGanti GIT_HTTP_CUSTOM_DOMAIN dengan domain kustom yang Anda konfigurasi untuk akses HTTP Git.
Beri otorisasi domain kustom Anda di
gcloud:gcloud config set core/credentialed_hosted_repo_domains GIT_HTTP_CUSTOM_DOMAINUntuk mengizinkan beberapa domain, berikan domain tersebut sebagai daftar yang dipisahkan koma.
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, gunakan CA yang Anda buat di bagian Buat identitas layanan dan kumpulan Certificate Authority.
Untuk mendownload CA Anda, jalankan perintah berikut:
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECTUntuk melakukan panggilan API ke instance Anda, teruskan sertifikat CA ke API Secure Source Manager bidang data.
Misalnya, perintah berikut meneruskan sertifikat CA
root-cert.pemke Secure Source Manager API untuk mencantumkan repositori di instance pribadimy-instancedi 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
Langkah berikutnya
- Menghubungkan Cloud Build ke instance Secure Source Manager Private Service Connect.
- Konfigurasi Secure Source Manager di perimeter Kontrol Layanan VPC.