Instance Private Service Connect tidak mengekspos endpoint apa pun ke internet publik. Saat Anda membuat instance Private Service Connect, endpoint akan 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 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 kolaborasi.
Jika Anda bekerja 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 diperlukan untuk 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) di instance -
Untuk membuat identitas layanan dan kumpulan Certificate Authority:
Pengelola Operasi Layanan CA (
roles/privateca.caManager) di organisasi
Membuat identitas layanan dan kumpulan 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 Google tanpa domain kustom,
Anda tidak perlu melakukan apa pun selain menjalankan
gcloud source-manager instances create
perintah tanpa membuat identitas layanan dan kumpulan CA. GoogleUntuk mengetahui informasi selengkapnya, lihat Membuat instance Secure Source Manager Private Service Connect.
Jika Anda 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 untuk Secure Source Manager API dalam project Anda:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_IDdengan PROJECT_ID sebagai 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.comsebagai agen layanan Secure Source Manager dan PROJECT_NUM sebagai nomor project Anda.Buat kumpulan Certificate Authority (CA) dengan permintaan sertifikat berbasis CSR diaktifkan.
Buat CA. Anda dapat membuat CA root atau CA subordinat, bergantung pada kebutuhan Anda.
- Untuk membuat CA root, ikuti petunjuk di Membuat CA root.
- Untuk membuat CA subordinat dari CA induk di Google Cloud, ikuti petunjuk di Membuat CA subordinat
- 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 certificate authority.
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 ke kumpulan CA Anda.
- 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 Anda 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 mengetahui 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 kumpulan 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 mengetahui 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 atau domain kustom.
- CA_LOCATION dengan region tempat Anda membuat kumpulan CA. Diperlukan jika Anda menggunakan sertifikat CA Anda sendiri atau domain kustom.
- CA_POOL_NAME dengan nama kumpulan CA. Diperlukan 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. Diperlukan hanya 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 Git SSH, 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
google_secure_source_manager_instance
resource dengan kolom private_config.is_private yang ditetapkan ke true.
Operasi pembuatan instance yang berjalan lama akan 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 sebagai 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 buat Anda.
- LOCATION dengan region tempat Anda ingin membuat instance. Untuk mengetahui 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 layanan lainnya Google Cloud .
Untuk menyiapkan backend Private Service Connect berdasarkan load balancer untuk instance Private Service Connect Anda 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 untuk 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 mengetahui 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 harus menyiapkan data DNS pribadi. Untuk mengetahui petunjuk cara menyiapkan data DNS pribadi, lihat Mengonfigurasi DNS secara manual. Jika Anda mengonfigurasi domain kustom untuk instance Anda, buat data DNS yang memetakan domain kustom Anda ke alamat IP internal lampiran layanan. Jika tidak, gunakan nama host di kolom
hostConfiginstance:- 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 Git SSH Anda) ke alamat IP internal lampiran layanan SSH.
Misalnya, dalam output contoh sebelumnya, nilai
Google CloudhostConfig.htmladalahmy-project-012345678901.us-central1.p.sourcemanager.dev.- Petakan nilai
Autentikasi Git dengan domain kustom
Jika Anda menggunakan domain kustom untuk instance pribadi Anda, lakukan konfigurasi sisi klien berikut di setiap mesin untuk menggunakan Git melalui HTTPS.
Konfigurasi ini menghubungkan Git ke helper kredensial gcloud untuk mengautentikasi domain kustom Anda.
Konfigurasi Git untuk menggunakan helper
gclouduntuk domain Git HTTP 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 Git HTTP.
Otorisasi domain kustom Anda di
gcloud:gcloud config set core/credentialed_hosted_repo_domains GIT_HTTP_CUSTOM_DOMAINUntuk mengotorisasi 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 Anda, gunakan CA yang Anda buat di bagian Membuat 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 Secure Source Manager API 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.
- Mengonfigurasi Secure Source Manager di perimeter Kontrol Layanan VPC.