Menyediakan VPC Bersama
Dengan VPC Bersama, Anda dapat mengekspor subnet dari Jaringan Virtual Private Cloud (VPC) dalam project host ke project layanan lainnya dalam organisasi yang sama. Instance dalam project layanan dapat memiliki koneksi jaringan di subnet bersama project host. Halaman ini menjelaskan cara menyiapkan dan menggunakan VPC Bersama, termasuk beberapa persiapan administratif yang diperlukan untuk organisasi Anda.
VPC Bersama mendukung ekspor subnet khusus IPv4 (single stack) serta IPv4 dan IPv6 (dual-stack).
Untuk mengetahui informasi tentang cara melepaskan project layanan atau menghapus konfigurasi VPC Bersama sepenuhnya, lihat Mencabut akses VPC Bersama.
VPC Bersama juga disebut sebagai "XPN" di API dan antarmuka command line.
Kuota, batas, dan resource yang memenuhi syarat
Sebelum memulai, pastikan Anda telah memahami VPC Bersama dan khususnya IAM:
Catat kuota dan batas yang terkait dengan VPC Bersama.
Pastikan Anda memahami resource mana yang dapat berpartisipasi dan resource mana yang tidak dapat berpartisipasi.
Pastikan Anda telah mengaktifkan Compute Engine API dan penagihan untuk project host dan semua project layanan yang ingin dipasang ke project host.
Mempersiapkan organisasi
Perhatikan informasi berikut saat Anda menyiapkan organisasi.
Administrator dan IAM
Menyiapkan organisasi, menyiapkan project host VPC Bersama, dan menggunakan jaringan VPC Bersama melibatkan minimal tiga peran Identity and Access Management (IAM) administratif yang berbeda. Untuk mengetahui detail selengkapnya tentang setiap peran dan informasi tentang peran opsional, lihat bagian administrator dan IAM dalam ringkasan VPC Bersama.
Batasan kebijakan organisasi
Batasan kebijakan organisasi dapat melindungi resource VPC Bersama di level project, folder, atau organisasi. Bagian berikut menjelaskan setiap kebijakan.
Mencegah penghapusan project host secara tidak sengaja
Penghapusan project host yang tidak disengaja akan menyebabkan penghentian semua project layanan yang terpasang padanya. Saat project dikonfigurasi sebagai project host VPC Bersama, kunci khusus—yang disebut lien—akan ditempatkan pada project tersebut. Selama lien ada, ia akan mencegah project dihapus secara tidak sengaja. Lien akan otomatis dihapus dari project host saat tidak lagi dikonfigurasi untuk VPC Bersama.
Pengguna dengan peran orgpolicy.policyAdmin
dapat menentukan batasan kebijakan tingkat organisasi (batasan/compute.restrictXpnProjectLienRemoval) yang membatasi penghapusan lien hanya untuk peran berikut:
- Pengguna dengan
roles/owner
atauroles/resourcemanager.lienModifier
di tingkat organisasi - Pengguna dengan peran khusus yang menyertakan izin
resourcemanager.projects.get
danresourcemanager.projects.updateLiens
di tingkat organisasi
Tindakan ini akan mencegah pemilik project yang tidak memiliki peran roles/owner
atau peran resourcemanager.lienModifier
di tingkat organisasi, menghapus host proyek VPC Bersama Anda secara tidak sengaja. Untuk informasi selengkapnya tentang izin yang terkait dengan peran resourcemanager.lienModifier
, lihat Menempatkan lien di project dalam dokumentasi Resource Manager.
Karena kebijakan organisasi berlaku untuk semua project di organisasi, Anda hanya perlu mengikuti langkah-langkah ini satu kali untuk membatasi penghapusan lien.
Lakukan autentikasi ke
gcloud
sebagai Admin Organisasi atau akun utama IAM dengan peranorgpolicy.policyAdmin
. GantiORG_ADMIN
dengan nama Admin Organisasi:gcloud auth login ORG_ADMIN
Tentukan nomor ID organisasi Anda dengan melihat output perintah ini.
gcloud organizations list
Terapkan kebijakan
compute.restrictXpnProjectLienRemoval
untuk organisasi Anda dengan menjalankan perintah ini. GantiORG_ID
dengan angka yang Anda tentukan dari langkah sebelumnya.gcloud resource-manager org-policies enable-enforce \ --organization ORG_ID compute.restrictXpnProjectLienRemoval
Logout dari
gcloud
jika Anda sudah selesai melakukan tugas sebagai Admin Organisasi untuk melindungi akun Anda.gcloud auth revoke ORG_ADMIN
Membatasi lampiran project host
Secara default, Admin VPC Bersama dapat melampirkan non-host ke project host mana pun di organisasi yang sama. Administrator kebijakan organisasi dapat membatasi kumpulan project host tempat satu project non-host atau beberapa prject non-host dapat dilampirkan dalam folder atau organisasi. Untuk informasi selengkapnya, lihat batasan constraints/compute.restrictSharedVpcHostProjects
.
Membatasi subnet dalam project host yang dapat digunakan oleh project layanan
Secara default, setelah Anda mengonfigurasi VPC Bersama, akun utama IAM dalam project layanan dapat menggunakan subnet apa pun di project host jika memiliki izin IAM yang sesuai.
Selain mengelola izin pengguna individual, administrator kebijakan organisasi dapat menetapkan kebijakan untuk menentukan kumpulan subnet yang dapat diakses oleh project tertentu atau oleh project dalam folder atau organisasi.
Untuk informasi selengkapnya, lihat batasan constraints/compute.restrictSharedVpcSubnetworks
.
Mencegah penonaktifan project host secara tidak disengaja
Memutuskan sambungan penagihan di jaringan VPC Bersama dapat menyebabkan penonaktifan total semua resource dependen, termasuk project layanan. Untuk mencegah kemungkinan terjadinya penonaktifan VPC Bersama yang tidak disengaja akibat penagihan yang tidak aktif atau dinonaktifkan, amankan link antara project host dan akun penagihannya.
Mengajukan Admin VPC Bersama
Admin Organisasi dapat memberikan peran Admin VPC Bersama dan Admin IAM Project kepada satu atau beberapa akun utama IAM.
Peran Admin IAM Project memberikan izin kepada Admin VPC Bersama untuk membagikan semua subnet yang ada dan yang akan datang, bukan hanya subnet individual. Pemberian peran ini membuat binding di tingkat organisasi atau folder, bukan tingkat project. Jadi, akun utama IAM harus ditentukan di organisasi, bukan hanya project di dalamnya.
Konsol
Untuk memberikan peran Admin VPC Bersama di tingkat organisasi
Login ke konsol Google Cloud sebagai Admin Organisasi, lalu buka halaman IAM.
Dari menu project, pilih organisasi Anda.
Jika Anda memilih project, menu Roles akan menampilkan entri yang salah.
Klik Tambahkan.
Masukkan alamat email untuk New principals.
Di menu Roles, pilih Compute Engine > Compute Shared VPC Admin.
Klik Add another role.
Di menu drop-down Roles, pilih Resource Manager > Project IAM Admin.
Klik Save.
Untuk memberikan peran Admin VPC Bersama di tingkat folder
Login ke konsol Google Cloud sebagai Admin Organisasi, lalu buka halaman IAM.
Dari menu project, pilih folder Anda.
Jika Anda memilih project atau organisasi, opsi yang Anda lihat tidak benar.
Klik Tambahkan.
Masukkan alamat email untuk New principals.
Di bagian Pilih peran, pilih Compute Engine > Compute Shared VPC Admin.
Klik Add another role.
Di menu Roles, pilih Resource Manager > Project IAM Admin.
Klik Add another role.
Di menu Roles, pilih Resource Manager > Compute Network Viewer.
Klik Simpan.
gcloud
Autentikasi ke
gcloud
sebagai Admin Organisasi. GantiORG_ADMIN
dengan nama Admin Organisasi:gcloud auth login ORG_ADMIN
Tentukan nomor ID organisasi Anda dengan melihat output perintah ini.
gcloud organizations list
Untuk menetapkan peran Admin VPC Bersama pada tingkat organisasi, lakukan hal berikut:
Terapkan peran Admin VPC Bersama ke akun utama IAM yang ada. Ganti
ORG_ID
dengan nomor ID organisasi dari langkah sebelumnya, danEMAIL_ADDRESS
dengan alamat email pengguna yang Anda beri peran Admin VPC Bersama.gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.xpnAdmin"
gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/resourcemanager.projectIamAdmin"
Untuk menetapkan peran Admin VPC Bersama pada tingkat folder, lakukan hal berikut:
Tentukan ID folder Anda dengan melihat output perintah ini.
gcloud resource-manager folders list --organization=ORG_ID
Terapkan peran Admin VPC Bersama ke akun utama IAM yang ada. Ganti
ORG_ID
dengan nomor ID organisasi dari langkah sebelumnya, danEMAIL_ADDRESS
dengan alamat email pengguna yang Anda beri peran Admin VPC Bersama.gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.xpnAdmin"
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/resourcemanager.projectIamAdmin"
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.networkViewer"
Cabut token akun Admin Organisasi Anda di alat command line
gcloud
setelah selesai melakukan tugas untuk melindungi akun Anda.gcloud auth revoke ORG_ADMIN
API
Untuk menetapkan peran Admin VPC Bersama pada tingkat organisasi, gunakan prosedur berikut:
Tentukan nomor ID organisasi Anda.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Jelaskan, lalu catat detail kebijakan organisasi Anda yang ada.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
Ganti
ORG_ID
dengan ID organisasi Anda.Tetapkan peran Admin VPC Bersama.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.xpnAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/resourcemanager.projectIamAdmin" } ], "etag": "ETAG", "version": 1, ...other existing policy details }
Ganti kode berikut:
ORG_ID
: ID organisasi yang berisi pengguna yang Anda beri peran Admin VPC Bersama.EMAIL_ADDRESS
: alamat email pengguna.ETAG
: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.
Untuk informasi selengkapnya, lihat metode
organizations.setIamPolicy
.
Untuk menetapkan peran Admin VPC Bersama pada tingkat folder, gunakan permintaan berikut:
Tentukan nomor ID organisasi Anda.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Temukan ID folder Anda.
GET https://cloudresourcemanager.googleapis.com/v2/folders?parent=organizations/ORG_ID
Ganti
ORG_ID
dengan ID organisasi Anda.Jelaskan, lalu catat detail kebijakan folder yang ada.
POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
Ganti
FOLDER_ID
dengan ID folder Anda.Tetapkan peran Admin VPC Bersama.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/FOLDER_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.xpnAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/resourcemanager.projectIamAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.networkViewer" } ], "etag": "ETAG", "version": 1, ...other existing policy details }
Ganti kode berikut:
FOLDER_ID
: ID organisasi yang berisi pengguna yang Anda beri peran Admin VPC Bersama.EMAIL_ADDRESS
: alamat email pengguna.ETAG
: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.
Untuk informasi selengkapnya, lihat metode
folders.setIamPolicy
.
Menyiapkan VPC yang Dibagikan
Semua tugas di bagian ini harus dilakukan oleh Admin VPC Bersama.
Mengaktifkan project host
Dalam organisasi, Admin VPC Bersama dapat menetapkan project sebagai project host VPC Bersama, yang tunduk pada kuota dan batas, dengan mengikuti prosedur ini.
Admin VPC Bersama juga dapat membuat dan menghapus project jika mereka memiliki peran Project Creator dan Project Deleter (roles/resourcemanager.projectCreator
dan roles/resourcemanager.projectDeleter
) untuk organisasi Anda.
Jika Anda mengaktifkan project host, resource jaringan project tidak akan otomatis dibagikan dengan project layanan. Anda perlu melampirkan project layanan ke project host untuk membagikan jaringan dan subnet yang dipilih dengan project layanan.
Konsol
Jika belum memiliki peran Compute Shared VPC Admin (roles/compute.xpnAdmin
), Anda tidak dapat melihat halaman ini di konsol Google Cloud.
Di konsol Google Cloud, buka halaman Shared VPC.
Login sebagai Admin VPC Bersama.
Pilih project yang ingin Anda aktifkan sebagai project host VPC Bersama dari pemilih project.
Klik Set up Shared VPC.
Di halaman berikutnya, klik Save & continue di bagian Enable host project.
Di bagian Select subnets, lakukan salah satu tindakan berikut:
- Klik Enable host project jika Anda perlu membagikan semua subnet saat ini dan yang akan datang di jaringan VPC project host dengan project layanan dan Admin Project Layanan yang ditentukan pada langkah berikutnya.
- Klik Individual subnets (subnet-level permissions) jika Anda perlu membagikan subnet secara selektif dari jaringan VPC project host ke project layanan dan Admin Project Layanan. Kemudian, pilih Subnet yang akan dibagikan.
Klik Continue.
Layar berikutnya akan ditampilkan.Di bagian Project names, tentukan project layanan yang akan dilampirkan ke project host. Perhatikan bahwa melampirkan project layanan tidak menentukan Admin Project Layanan apa pun; hal itu dilakukan pada langkah berikutnya.
Di bagian Select users by role, tambahkan Service Project Admins. Pengguna ini akan diberi peran IAM
compute.networkUser
untuk subnet bersama. Hanya Admin Project Layanan yang dapat membuat resource di subnet project host VPC Bersama.Klik Save.
gcloud
Lakukan autentikasi ke
gcloud
sebagai Admin VPC Bersama. GantiSHARED_VPC_ADMIN
dengan nama Admin VPC Bersama:gcloud auth login SHARED_VPC_ADMIN
Aktifkan VPC Bersama untuk project yang ingin Anda jadikan project host. Ganti
HOST_PROJECT_ID
dengan ID project.gcloud compute shared-vpc enable HOST_PROJECT_ID
Konfirmasi bahwa project tersebut tercantum sebagai project host untuk organisasi Anda. Ganti
ORG_ID
dengan ID organisasi Anda (ditentukan berdasarkangcloud organizations list
).gcloud compute shared-vpc organizations list-host-projects ORG_ID
Jika hanya perlu mengaktifkan project host, Anda dapat logout dari
gcloud
untuk melindungi kredensial akun Admin VPC Bersama. Jika tidak, lewati langkah ini dan lanjutkan dengan langkah-langkah untuk melampirkan project layanan.gcloud auth revoke SHARED_VPC_ADMIN
API
Aktifkan VPC Bersama untuk project menggunakan kredensial dengan izin Admin VPC Bersama.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
Ganti
HOST_PROJECT_ID
dengan ID project yang akan menjadi project host VPC Bersama.Untuk informasi selengkapnya, lihat metode
projects.enableXpnHost
.Konfirmasi bahwa project tersebut tercantum sebagai project host.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
Ganti
HOST_PROJECT_ID
dengan ID project host VPC Bersama.Untuk informasi selengkapnya, lihat metode
projects.listXpnHosts
.
Terraform
Anda dapat menggunakan resource Terraform untuk mengaktifkan project host.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Memasang project layanan
Project layanan harus terhubung ke project host sebelum Admin Project Layanannya dapat menggunakan VPC Bersama. Admin VPC Bersama harus melakukan langkah-langkah berikut untuk menyelesaikan lampiran.
Project layanan hanya dapat dilampirkan ke satu project host, tetapi project host mendukung beberapa lampiran project layanan. Lihat batas khusus untuk VPC Bersama di halaman kuota VPC untuk mengetahui detailnya.
Konsol
- Login ke Konsol Google Cloud sebagai Admin VPC Bersama.
- Di konsol Google Cloud, buka halaman Shared VPC.
Buka halaman VPC Bersama - Klik tab Attached projects.
- Pada tab Attached projects, klik tombol Attach projects.
- Centang kotak untuk project layanan yang akan dilampirkan di bagian Project names. Perhatikan bahwa melampirkan project layanan tidak menentukan Admin Project Layanan apa pun; hal itu dilakukan pada langkah berikutnya.
- Di bagian VPC network permissions, pilih peran yang utamanya akan mendapatkan peran
compute.networkUser
. Akun utama IAM diberi peran Pengguna Jaringan untuk seluruh project host atau subnet tertentu dalam project host, berdasarkan mode berbagi jaringan VPC. Akun utama ini dikenal sebagai Service Project Admin dalam project layanannya masing-masing. - Di bagian VPC network sharing mode, pilih salah satu opsi berikut:
- Klik Share all subnets (project-level permissions) untuk membagikan semua subnet saat ini dan mendatang di jaringan VPC project host kepada semua project layanan dan Admin Project Layanan.
- Klik Individual subnets (subnet-level permissions) jika Anda perlu berbagi subnet secara selektif dari jaringan VPC project host dengan project layanan dan Admin Project Layanan. Kemudian, pilih Subnet yang akan dibagikan.
- Klik Save.
gcloud
Jika Anda belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin VPC Bersama. GantiSHARED_VPC_ADMIN
dengan nama Admin VPC Bersama:gcloud auth login SHARED_VPC_ADMIN
Lampirkan project layanan ke project host yang sebelumnya diaktifkan. Ganti
SERVICE_PROJECT_ID
dengan project ID untuk project layanan danHOST_PROJECT_ID
dengan project ID untuk project host.gcloud compute shared-vpc associated-projects add SERVICE_PROJECT_ID \ --host-project HOST_PROJECT_ID
Konfirmasi bahwa project layanan telah terpasang.
gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
Secara opsional, Anda dapat mencantumkan project layanan yang disertakan ke project host:
gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
Jika hanya perlu memasang project layanan, Anda dapat logout dari
gcloud
untuk melindungi kredensial akun Admin VPC Bersama. Jika tidak, lewati langkah ini dan tentukan Admin Project Layanan untuk semua subnet atau untuk beberapa subnet saja.gcloud auth revoke SHARED_VPC_ADMIN
API
Lampirkan project layanan ke project host VPC Bersama.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource { "xpnResource": { "id": "SERVICE_PROJECT" } }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host VPC Bersama.SERVICE_PROJECT
: ID project layanan yang akan dilampirkan.
Untuk informasi selengkapnya, lihat metode
projects.enableXpnResource
.Konfirmasi bahwa project layanan terpasang ke project host.
GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host VPC Bersama.
Untuk informasi selengkapnya, lihat metode
projects.getXpnResources
.
Terraform
Anda dapat menggunakan resource Terraform untuk memasang project layanan.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Admin Project Layanan untuk semua subnet
Admin VPC Bersama dapat menetapkan akun utama IAM dari project layanan menjadi Admin Project Layanan dengan akses ke semua subnet dalam project host. Admin Project Layanan jenis ini diberi peran compute.networkUser
untuk seluruh project host. Artinya, server tersebut memiliki akses ke semua subnet yang ditentukan saat ini dan subnet di project host.
Pengguna yang memiliki peran compute.networkUser
dalam project host dapat melihat semua subnet dalam project layanan yang terpasang.
Konsol
Untuk menentukan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses ke semua subnet dalam project host menggunakan Google Cloud Console, lihat bagian melampirkan project layanan.
gcloud
Langkah-langkah ini mencakup penentuan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses ke semua subnet di project host. Sebelum dapat melakukan langkah-langkah ini, Anda harus telah mengaktifkan project host dan melampirkan project layanan ke project host.
Jika Anda belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin VPC Bersama. GantiSHARED_VPC_ADMIN
dengan nama Admin VPC Bersama:gcloud auth login SHARED_VPC_ADMIN
Buat binding kebijakan untuk membuat entity utama IAM dari project layanan menjadi Admin Project Layanan. Ganti
HOST_PROJECT_ID
dengan project ID untuk project host danSERVICE_PROJECT_ADMIN
dengan alamat email pengguna Admin Project Layanan.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "user:SERVICE_PROJECT_ADMIN" \ --role "roles/compute.networkUser"
Anda dapat menentukan berbagai jenis akun utama dengan mengubah format argumen
--member
:- Gunakan
group:
untuk menentukan grup Google (berdasarkan alamat email) sebagai akun utama. - Gunakan
domain:
untuk menentukan domain Google sebagai akun utama. - Gunakan
serviceAccount:
untuk menentukan akun layanan. Lihat Akun Layanan sebagai Admin Project Layanan untuk mengetahui informasi selengkapnya tentang kasus penggunaan ini.
- Gunakan
Ulangi langkah sebelumnya untuk setiap Admin Project Layanan tambahan yang perlu Anda tentukan.
Jika sudah selesai menentukan Service Project Admin, Anda dapat logout dari
gcloud
untuk melindungi kredensial akun Admin VPC Bersama.gcloud auth revoke SHARED_VPC_ADMIN
API
Jelaskan lalu catat detail kebijakan proyek yang ada. Anda memerlukan kebijakan dan nilai
etag
yang ada.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
Ganti
HOST_PROJECT_ID
dengan ID project host yang berisi jaringan VPC Bersama.Buat binding kebijakan untuk menetapkan entity utama IAM dalam project layanan sebagai Admin Project Layanan.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ PRINCIPAL, ...additional principals ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host yang berisi jaringan VPC Bersama.PRINCIPAL
: identitas yang terkait dengan peran, seperti pengguna, grup, domain, atau akun layanan. Untuk informasi selengkapnya, lihat kolommembers
dalam dokumentasi Resource Manager.ETAG
: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.
Untuk informasi selengkapnya, lihat metode
projects.setIamPolicy
.
Admin Project Layanan untuk beberapa subnet
Admin VPC Bersama dapat menetapkan akun utama IAM dari project layanan menjadi Admin Project Layanan dengan akses hanya ke beberapa subnet di project host. Opsi ini memberikan cara yang lebih terperinci untuk menentukan Admin Project Layanan dengan memberi mereka peran compute.networkUser
hanya untuk beberapa subnet dalam project host.
Pengguna yang memiliki peran compute.networkUser
dalam project host dapat melihat semua subnet dalam project layanan yang terpasang.
Konsol
Untuk menentukan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses hanya ke beberapa subnet dalam project host menggunakan Google Cloud Console, lihat memasang project layanan.
gcloud
Langkah-langkah ini mencakup penentuan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses hanya ke beberapa subnet dalam project host. Sebelum menentukannya, Anda harus mengaktifkan project host dan melampirkan project layanan ke project host.
Jika Anda belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin VPC Bersama. GantiSHARED_VPC_ADMIN
dengan nama Admin VPC Bersama:gcloud auth login SHARED_VPC_ADMIN
Pilih subnet di project host yang harus diakses oleh Admin Project Layanan. Mendapatkan kebijakan IAM saat ini dalam format JSON. Ganti
SUBNET_NAME
dengan nama subnet di project host danHOST_PROJECT_ID
dengan project ID untuk project host.gcloud compute networks subnets get-iam-policy SUBNET_NAME \ --region SUBNET_REGION \ --project HOST_PROJECT_ID \ --format json
Salin output JSON dari langkah sebelumnya dan simpan ke file. Agar lebih jelas, langkah-langkah ini akan menyimpannya ke file bernama
subnet-policy.json
.Ubah file
subnet-policy.json
, dengan menambahkan akun utama IAM yang akan menjadi Admin Project Layanan dengan akses ke subnet. Ganti setiapSERVICE_PROJECT_ADMIN
dengan alamat email pengguna IAM dari project layanan.{ "bindings": [ { "members": [ "user:[SERVICE_PROJECT_ADMIN]", "user:[SERVICE_PROJECT_ADMIN]" ], "role": "roles/compute.networkUser" } ], "etag": "[ETAG_STRING]" }
Perlu diperhatikan bahwa Anda dapat menentukan berbagai jenis akun utama IAM (selain pengguna) dalam kebijakan:
- Alihkan
user:
dengangroup:
untuk menentukan grup Google (berdasarkan alamat email) sebagai akun utama. - Alihkan
user:
dengandomain:
untuk menentukan domain Google sebagai utama. - Gunakan
serviceAccount:
untuk menentukan akun layanan. Lihat Akun Layanan sebagai Admin Project Layanan untuk mengetahui informasi selengkapnya tentang kasus penggunaan ini.
- Alihkan
Perbarui binding kebijakan untuk subnet menggunakan konten file
subnet-policy.json
.gcloud compute networks subnets set-iam-policy SUBNET_NAME subnet-policy.json \ --region SUBNET_REGION \ --project HOST_PROJECT_ID
Jika sudah selesai menentukan Service Project Admin, Anda dapat logout dari
gcloud
untuk melindungi kredensial akun Admin VPC Bersama.gcloud auth revoke SHARED_VPC_ADMIN
API
Jelaskan dan catat detail kebijakan subnet yang ada. Anda memerlukan kebijakan dan nilai
etag
yang ada.GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host yang berisi jaringan VPC Bersama.SUBNET_NAME
: nama subnet yang akan dibagikan.SUBNET_REGION
: region tempat subnet berada.
Beri Admin Service Project akses ke subnet di project host dengan mengupdate kebijakan subnet.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ PRINCIPAL, ...additional principals ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Ganti kode berikut:
ETAG
: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.HOST_PROJECT_ID
: ID project host yang berisi jaringan VPC Bersama.PRINCIPAL
: identitas yang terkait dengan peran, seperti pengguna, grup, domain, atau akun layanan. Untuk informasi selengkapnya, lihat kolommembers
dalam dokumentasi Resource Manager.SUBNET_NAME
: nama subnet yang akan dibagikan.SUBNET_REGION
: region tempat subnet berada.
Untuk informasi selengkapnya, lihat metode
subnetworks.setIamPolicy
.
Akun Layanan sebagai Admin Project Layanan
Admin VPC Bersama juga dapat menentukan akun layanan dari project layanan sebagai Admin Project Layanan. Bagian ini menggambarkan cara menentukan dua jenis akun layanan yang berbeda sebagai Service Project Admin:
Akun layanan yang dikelola pengguna yang memiliki format ini:
USER_ID
@SERVICE_PROJECT_ID
.iam.gserviceaccount.comAkun layanan Google API memiliki format ini:
SERVICE_PROJECT_NUMBER
@cloudservices.gserviceaccount.com
Peran Admin Project Layanan (compute.networkUser
) dapat diberikan untuk semua subnet atau hanya beberapa subnet dari project host. Namun, untuk penyederhanaan petunjuk, bagian ini hanya menggambarkan cara menentukan dua jenis akun layanan sebagai Admin Project Layanan untuk semua subnet project host.
Akun layanan yang dikelola pengguna sebagai Admin Project Layanan
Petunjuk ini menjelaskan cara menentukan akun layanan yang dikelola pengguna sebagai Admin Project Layanan untuk semua subnet project host VPC Bersama.
Konsol
- Login ke Konsol Google Cloud sebagai Admin VPC Bersama.
- Di konsol Google Cloud, buka halaman Settings.
Buka halaman Settings - Ubah project menjadi project layanan yang berisi akun layanan yang perlu ditentukan sebagai Admin Project Layanan.
- Salin Project ID project layanan. Untuk kejelasan instruksi, prosedur ini merujuk pada project ID layanan sebagai
SERVICE_PROJECT_ID
. - Ubah project menjadi project host VPC Bersama.
- Buka halaman IAM di Konsol Google Cloud.
Buka halaman IAM - Klik Tambahkan.
- Tambahkan
SERVICE_ACCOUNT_NAME
@SERVICE_PROJECT_ID
.iam.gserviceaccount.comke kolom Principals, dengan menggantiSERVICE_ACCOUNT_NAME
dengan nama akun layanan. - Pilih Compute Engine > Compute Network User dari menu Roles.
- Klik Add.
gcloud
Jika Anda belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin VPC Bersama. GantiSHARED_VPC_ADMIN
dengan nama Admin VPC Bersama:gcloud auth login SHARED_VPC_ADMIN
Jika tidak mengetahui project ID untuk project layanan, Anda dapat mencantumkan semua project di organisasi. Daftar ini menampilkan project ID untuk setiap project.
gcloud projects list
Buat binding kebijakan untuk menjadikan akun layanan sebagai Admin Project Layanan. Ganti
HOST_PROJECT_ID
dengan project ID untuk project host,SERVICE_ACCOUNT_NAME
dengan nama akun layanan, danSERVICE_PROJECT_ID
dengan project ID layanan.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
Jelaskan lalu catat detail kebijakan proyek yang ada. Anda memerlukan kebijakan dan nilai
etag
yang ada.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
Ganti
HOST_PROJECT_ID
dengan ID project host yang berisi jaringan VPC Bersama.Buat binding kebijakan untuk menetapkan akun layanan sebagai Admin Project Layanan.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.iam.gserviceaccount.com", ...include additional service accounts ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host yang berisi jaringan VPC Bersama.SERVICE_ACCOUNT_NAME
: nama akun layanan.SERVICE_PROJECT_ID
: ID project layanan yang berisi akun layanan.ETAG
: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.
Untuk informasi selengkapnya, lihat metode
projects.setIamPolicy
.
Akun layanan Google API sebagai Admin Project Layanan
Petunjuk ini menjelaskan cara menentukan akun layanan Google API sebagai Admin Project Layanan untuk semua subnet project host VPC Bersama. Menjadikan akun layanan Google API sebagai Admin Project Layanan adalah persyaratan untuk grup instance terkelola yang digunakan dengan VPC Bersama karena tugas seperti pembuatan instance dilakukan oleh jenis akun layanan ini. Untuk mengetahui informasi selengkapnya tentang hubungan ini, lihat Grup Instance yang Dikelola dan IAM.
Konsol
- Login ke Konsol Google Cloud sebagai Admin VPC Bersama.
- Di konsol Google Cloud, buka halaman Settings.
Buka halaman Settings - Ubah project menjadi project layanan yang berisi akun layanan yang perlu ditentukan sebagai Admin Project Layanan.
- Salin Nomor project project layanan. Untuk kejelasan instruksi, prosedur ini merujuk pada nomor project layanan sebagai
SERVICE_PROJECT_NUMBER
. - Ubah project menjadi project host VPC Bersama.
- Buka halaman IAM di Konsol Google Cloud.
Buka halaman IAM - Klik Tambahkan.
- Tambahkan
SERVICE_PROJECT_NUMBER
@cloudservices.gserviceaccount.comke kolom Members. - Pilih Compute Engine > Compute Network User dari menu Roles.
- Klik Add.
gcloud
Jika Anda belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin VPC Bersama. GantiSHARED_VPC_ADMIN
dengan nama Admin VPC Bersama:gcloud auth login SHARED_VPC_ADMIN
Tentukan nomor project untuk project layanan. Agar jelas, prosedur ini merujuk pada nomor project layanan sebagai
SERVICE_PROJECT_NUMBER
. GantiSERVICE_PROJECT_ID
dengan project ID untuk project layanan.gcloud projects describe SERVICE_PROJECT_ID --format='get(projectNumber)'
Jika tidak mengetahui project ID untuk project layanan, Anda dapat mencantumkan semua project dalam organisasi. Daftar ini menampilkan nomor project untuk setiap project.
gcloud projects list
Buat binding kebijakan untuk menjadikan akun layanan sebagai Admin Project Layanan. Ganti
HOST_PROJECT_ID
dengan project ID untuk project host danSERVICE_PROJECT_NUMBER
dengan nomor project layanan.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
Jelaskan lalu catat detail kebijakan proyek yang ada. Anda memerlukan kebijakan dan nilai
etag
yang ada.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
Ganti
HOST_PROJECT_ID
dengan ID project host yang berisi jaringan VPC Bersama.Cantumkan project Anda untuk menemukan nomor project-nya.
GET https://cloudresourcemanager.googleapis.com/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
Ganti
SERVICE_PROJECT_ID
dengan ID project layanan tempat akun layanan berada.Buat binding kebijakan untuk menetapkan akun layanan sebagai Admin Project Layanan.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com" ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host yang berisi jaringan VPC Bersama.SERVICE_PROJECT_NUMBER
: jumlah project layanan yang berisi akun layanan.ETAG
: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.
Untuk informasi selengkapnya, lihat metode
projects.setIamPolicy
.
Menggunakan VPC Bersama
Setelah Admin VPC Bersama menyelesaikan tugasmengaktifkan project host, melampirkan proyek layanan yang diperlukan ke, dan menentukan Admin Project Layanan untuk semua atau beberapa dari subnetwork project host, Admin Project Layanan dapat membuat instance, template, dan load balancer internal dalam project layanan menggunakan subnet project host.
Semua tugas di bagian ini harus dilakukan oleh Admin Project Layanan.
Penting untuk diperhatikan bahwa Admin VPC Bersama hanya memberikan peran Pengguna Jaringan Compute kepada Admin Project Layanan (roles/compute.networkUser
) ke seluruh project host atau hanya beberapa subnetnya. Admin Project Layanan juga harus memiliki peran lain yang diperlukan untuk mengelola project layanannya masing-masing. Misalnya, Service Project Admin juga dapat berupa project owner atau setidaknya harus memiliki peran Admin Instance Compute (roles/compute.instanceAdmin
) untuk project.
Mencantumkan subnet yang tersedia
Admin Project Layanan dapat mencantumkan subnet yang telah diberikan izin dengan mengikuti langkah-langkah berikut.
Konsol
Di konsol Google Cloud, buka halaman Shared VPC.
gcloud
Jika belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin Project Layanan. GantiSERVICE_PROJECT_ADMIN
dengan nama Admin Project Layanan:gcloud auth login SERVICE_PROJECT_ADMIN
Jalankan perintah berikut, dan ganti
HOST_PROJECT_ID
dengan project ID dari project host VPC Bersama:gcloud compute networks subnets list-usable --project HOST_PROJECT_ID
Contoh berikut mencantumkan subnet yang tersedia dalam project host
project-1
:$ gcloud compute networks subnets list-usable --project project-1 PROJECT REGION NETWORK SUBNET RANGE SECONDARY_RANGES project-1 us-west1 net-1 subnet-1 10.138.0.0/20 project-1 us-central1 net-1 subnet-2 10.128.0.0/20 r-1 192.168.2.0/24 r-2 192.168.3.0/24 project-1 us-east1 net-1 subnet-3 10.142.0.0/20
Untuk mengetahui informasi selengkapnya, lihat perintah list-usable
dalam dokumentasi SDK.
API
Buat daftar subnet yang tersedia di project host. Buat permintaan sebagai Admin Project Layanan.
GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/aggregated/subnetworks/listUsable
Ganti HOST_PROJECT_ID
dengan ID project host yang berisi jaringan VPC Bersama.
Untuk informasi selengkapnya, lihat metode subnetworks.listUsable
.
Melakukan reservasi alamat IPv4 atau IPv6 internal statis
Admin Project Layanan dapat memesan alamat IPv4 atau IPv6 internal di subnet jaringan VPC Bersama. Objek konfigurasi alamat IP dibuat dalam project layanan, sedangkan nilainya berasal dari rentang alamat IPv4 yang tersedia dalam subnet bersama yang dipilih.
Untuk mencadangkan alamat IP internal mandiri dalam project layanan, selesaikan langkah-langkah berikut.
Konsol
- Siapkan VPC bersama.
Di konsol Google Cloud, buka halaman Shared VPC.
Login sebagai Admin VPC Bersama.
Pilih project layanan dari pemilih project.
Buka halaman IP addresses dengan memilih VPC network > IP addresses.
Klik Reserve internal static IP address.
Di kolom Name, masukkan nama alamat IP.
Dalam daftar IP version, pilih versi IP yang diperlukan:
- Untuk mencadangkan alamat IPv4 internal statis, pilih IPv4.
- Untuk mencadangkan alamat IPv6 internal statis, pilih IPv6.
Klik tombol Networks shared with me.
Dalam daftar Jaringan dan Subnetwork, pilih masing-masing jaringan VPC dan subnet.
Tentukan cara mencadangkan alamat IP:
- Untuk alamat IPv4, guna menentukan alamat IPv4 internal statis yang akan dicadangkan, di Static IP address, pilih Let me choose, lalu masukkan alamat IP kustom. Jika tidak, sistem akan otomatis menetapkan alamat IPv4 internal statis di subnet untuk Anda.
- Untuk alamat IPv6, sistem akan otomatis menetapkan alamat IPv6 internal statis dari rentang alamat IPv6 internal subnet.
Opsional: Jika Anda ingin berbagi alamat IPv4 internal statis di frontend yang berbeda, untuk Purpose, pilih Shared. Pilihan defaultnya adalah Non-shared.
Klik Reserve.
gcloud
Jika belum melakukannya, lakukan autentikasi ke Google Cloud CLI sebagai Admin Project Layanan. Ganti
SERVICE_PROJECT_ADMIN
dengan nama Admin Project Layanan:gcloud auth login SERVICE_PROJECT_ADMIN
Gunakan perintah
compute addresses create
.Memesan alamat IPv4:
gcloud compute addresses create IP_ADDR_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --region=REGION --ip-version=IPV4
Mencadangkan alamat IPv6:
gcloud compute addresses create IP_ADDR_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --region=REGION --ip-version=IPV6
Ganti kode berikut:
IP_ADDR_NAME
: nama untuk objek alamat IPv4.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama.
Detail tambahan untuk membuat alamat IP dipublikasikan di dokumentasi SDK.
API
Gunakan metode addresses.insert
.
Mencadangkan alamat IPv4 internal statis sebagai Admin Project Layanan:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses { "name": "ADDRESS_NAME", "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "addressType": "INTERNAL" }
Ganti kode berikut:
ADDRESS_NAME
: nama untuk alamat IP internal yang dicadangkan.HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.REGION
: region tempat alamat IPv4 yang dicadangkan akan ditempatkan dan lokasi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan tempat Anda memesan alamat IPv4.SUBNET_NAME
: nama subnet bersama.
Untuk informasi selengkapnya, lihat metode addresses.insert
.
Terraform
Anda dapat menggunakan blok data Terraform untuk menentukan informasi subnet host.
Kemudian, gunakan resource Terraform untuk memesan alamat IPv4 internal statis. Jika Anda menghilangkan argumen address
opsional, alamat IPv4 yang tersedia akan dipilih dan dicadangkan.
Tentukan subnet host:
Cadangkan alamat IPv4 dari subnet project host untuk digunakan dalam project layanan:
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Melakukan reservasi alamat IPv4 eksternal statis
Resource dalam project layanan dapat menggunakan alamat IPv4 eksternal statis regional yang ditentukan dalam project layanan atau project host. Oleh karena itu, resource dalam project layanan yang terpasang dapat menggunakan alamat IPv4 eksternal statis regional yang dicadangkan dalam project host.
Melakukan reservasi alamat IPv6 eksternal statis
Admin Project Layanan dapat mencadangkan alamat IPv6 eksternal statis dalam project layanan. Objek konfigurasi alamat IPv6 dibuat dalam project layanan, sedangkan nilainya berasal dari rentang alamat IPv6 yang tersedia dalam subnet bersama yang dipilih.
Konsol
Anda dapat memesan alamat IPv6 eksternal mandiri dalam project layanan menggunakan Google Cloud Console:
- Siapkan VPC bersama.
- Di konsol Google Cloud, buka halaman Shared VPC.
Buka halaman VPC Bersama - Login sebagai Admin VPC Bersama.
- Pilih project layanan dari pemilih project.
- Untuk membuka halaman IP addresses, pilih VPC network > IP addresses.
- Klik Reserve external static IP address.
- Pilih nama untuk alamat baru.
- Tentukan apakah tingkat layanan jaringan adalah Premium atau Standard. Pemesanan alamat statis IPv6 hanya didukung pada paket Premium.
- Di bagian IP version, pilih IPv6.
- Tentukan apakah alamat IP ini adalah Regional atau Global.
- Jika Anda mencadangkan alamat IP statis untuk load balancer global, pilih Global.
- Jika Anda mencadangkan alamat IP statis untuk instance atau untuk load balancer regional, pilih Regional, lalu pilih region untuk membuat alamat.
- Pilih opsi berikut:
- Networks in this project: pilih opsi ini jika Anda ingin mencadangkan alamat IPv6 eksternal di subnet dari jaringan Virtual Private Cloud (VPC) yang sama tempat Anda mencadangkan alamat IPv6.
- Networks shared with me: pilih opsi ini jika Anda ingin memesan alamat IPv6 eksternal dalam subnet jaringan VPC Bersama.
Berdasarkan pilihan Anda, pilih yang berikut:
- Network: jaringan VPC
- Subnetwork: subnet tempat untuk menetapkan alamat IPv6 regional statis
- Endpoint type: pilih VM instance atau Network Load Balancer
Opsional: Jika Anda telah memilih VM instance sebagai jenis endpoint, pilih instance VM untuk melampirkan alamat IPv6.
Klik Reserve.
gcloud
Jika belum melakukannya, lakukan autentikasi ke
gcloud
sebagai Admin Project Layanan. GantiSERVICE_PROJECT_ADMIN
dengan nama Admin Project Layanan:gcloud auth login SERVICE_PROJECT_ADMIN
Gunakan perintah
gcloud compute addresses create
:gcloud compute addresses create IP_ADDR_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --region=REGION \ --ip-version=IPV6 \ --endpoint-type=[VM | NETLB]
Ganti kode berikut:
IP_ADDR_NAME
: nama untuk objek alamat IPv6.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.SUBNET
: nama subnet bersama.REGION
: region yang berisi subnet bersama.
API
Untuk mencadangkan alamat IPv6 internal statis sebagai Admin Project Layanan, gunakan metode addresses.insert
:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses { "name": "ADDRESS_NAME", "ipVersion": "IPV6", "ipv6EndpointType": "VM|LB", "networkTier": "PREMIUM", "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "addressType": "EXTERNAL" }
Ganti kode berikut:
SERVICE_PROJECT_ID
: ID project layanan tempat Anda memesan alamat IPv6.REGION
: region tempat alamat IPv6 yang dicadangkan dan subnet bersama berada.ADDRESS_NAME
: nama untuk alamat IPv6 eksternal statis yang dicadangkan.HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.SUBNET_NAME
: nama subnet bersama.
Membuat instance
Perhatikan hal-hal berikut saat Anda menggunakan VPC Bersama untuk membuat instance:
Proses standar untuk membuat instance melibatkan pemilihan zona, jaringan, dan subnet. Subnet yang dipilih dan zona yang dipilih harus berada di region yang sama. Saat Service Project Admin membuat instance dengan menggunakan subnet dari jaringan VPC Bersama, zona yang dipilih untuk instance tersebut harus berada di region yang sama dengan subnet yang dipilih.
Saat Anda membuat instance dengan alamat IPv4 internal statis yang dicadangkan, subnet dan region sudah dipilih saat alamat IPv4 statis dibuat. Contoh
gcloud
untuk membuat instance dengan alamat IPv4 internal statis diberikan di bagian ini.Admin Project Layanan hanya dapat membuat instance menggunakan subnet yang telah diberi izin. Untuk menentukan subnet yang tersedia, lihat Mencantumkan subnet yang tersedia.
Saat menerima permintaan untuk membuat instance di subnet jaringan VPC Bersama, Google Cloud akan memeriksa apakah akun utama IAM yang membuat permintaan memiliki izin untuk menggunakan subnet bersama tersebut. Jika pemeriksaan gagal, instance tidak dibuat, dan Google Cloud akan menampilkan error izin. Untuk mendapatkan bantuan, hubungi Admin VPC Bersama.
Anda dapat membuat instance dual-stack jika membuat instance dalam subnet dual-stack. Subnet stack ganda hanya didukung di jaringan VPC mode kustom. Jenis akses IPv6 subnet menentukan apakah alamat IPv6 yang ditetapkan ke VM adalah alamat IPv6 internal atau eksternal.
Konsol
- Siapkan VPC bersama.
Di konsol Google Cloud, buka halaman Shared VPC.
Login sebagai Admin VPC Bersama.
Pilih project layanan dari pemilih project.
Untuk membuka halaman Create an instance, pilih Compute Engine > VM instances > Create instance.
Tentukan Nama untuk instance.
Untuk Region, pilih region yang berisi subnetwork bersama.
Klik Networking di bagian Advanced options.
Pada bagian Network interfaces, klik tombol pilihan Networks shared with me.
Di daftar Shared subnetwork, pilih subnet yang diperlukan tempat Anda ingin membuat instance:
- Untuk alamat IPv4, pilih subnet single-stack.
- Untuk alamat IPv6, pilih subnet stack ganda dengan jenis akses IPv6 yang diperlukan.
Pilih IP stack type:
- Untuk alamat IPv4, pilih IPv4 (single-stack).
- Untuk alamat IPv6, pilih IPv4 and IPv6 (dual-stack).
Tentukan parameter lain yang diperlukan untuk instance.
Klik Create.
gcloud
Buat instance dengan alamat IPv4 internal efemeral di subnet bersama dari jaringan VPC Bersama:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --zone ZONE
Ganti kode berikut:
INSTANCE_NAME
: nama instance.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama.ZONE
: zona di region yang ditentukan. .
Buat instance dengan alamat IPv4 internal statis yang dicadangkan di jaringan VPC Bersama:
- Cadangkan alamat IPv4 internal statis dalam project layanan dari rentang alamat project host yang tersedia.
Membuat instance
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --private-network-ip IP_ADDR_NAME \ --zone ZONE \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Ganti kode berikut:
INSTANCE_NAME
: nama instance.SERVICE_PROJECT_ID
: ID project layanan.IP_ADDR_NAME
: nama alamat IP statis.ZONE
: zona di region yang sama denganIP_ADDR_NAME
.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama yang terkait dengan alamat IPv4 internal statis.
Buat instance dengan alamat IPv4 internal efemeral dan alamat IPv6 efemeral:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type IPV4_IPV6 \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --zone ZONE
Ganti kode berikut:
INSTANCE_NAME
: nama instance.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama.ZONE
: zona di region yang ditentukan.
Buat instance dengan alamat IPv6 eksternal statis yang dicadangkan:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type IPV4_IPV6 \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --ipv6-address IPV6_ADDRESS \ --ipv6-prefix-length=96 \ --ipv6-network-tier PREMIUM \ --zone ZONE
Ganti kode berikut:
INSTANCE_NAME
: nama instance.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama.IPV6_ADDRESS
: alamat IPv6 yang akan ditetapkan ke VM.ZONE
: zona di region yang ditentukan.
API
Untuk membuat instance dengan alamat IPv4 internal efemeral, tentukan subnetnya saja:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Ganti kode berikut:
INSTANCE_NAME
: nama untuk instance.HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.MACHINE_TYPE
: jenis mesin untuk instance.REGION
: region yang berisi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan.SOURCE_IMAGE
: image untuk instance.SUBNET
: nama subnet bersama.ZONE
: zona di region yang ditentukan.
Untuk informasi selengkapnya, lihat metode
instances.insert
.Untuk membuat instance dengan alamat IPv4 internal yang dicadangkan, tentukan subnet dan nama alamat IPv4 yang dicadangkan:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "networkIP": "projects/SERVICE_PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Ganti kode berikut:
ADDRESS_NAME
: nama alamat IPv4 internal yang dicadangkan.INSTANCE_NAME
: nama untuk instance.HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.MACHINE_TYPE
: jenis mesin untuk instance.REGION
: region yang berisi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan.SOURCE_IMAGE
: image untuk instance.SUBNET
: nama subnet bersama.ZONE
: zona di region yang ditentukan.
Untuk informasi selengkapnya, lihat metode
instances.insert
.Untuk membuat instance dengan alamat IPv4 internal efemeral dan alamat IPv6 efemeral, tentukan subnet dan jenis tumpukan:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "stackType": "IPv4_IPv6" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Ganti kode berikut:
INSTANCE_NAME
: nama untuk instance.HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.MACHINE_TYPE
: jenis mesin untuk instance.REGION
: region yang berisi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan.SOURCE_IMAGE
: image untuk instance.SUBNET
: nama subnet bersama.ZONE
: zona di region yang ditentukan.
Untuk informasi selengkapnya, lihat metode
instances.insert
.
Terraform
Anda dapat menggunakan blok data Terraform untuk menentukan informasi subnet host. Kemudian, gunakan resource Terraform untuk membuat instance VM dalam project layanan.
Tentukan subnet host:
Buat instance VM dalam project layanan dengan alamat IPv4 efemeral dari subnet bersama project host:
Buat instance VM di project layanan dengan alamat IPv4 statis yang dicadangkan dari subnet bersama project host:
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Membuat template instance
Perhatikan hal-hal berikut saat Anda menggunakan VPC Bersama untuk membuat template instance:
Proses untuk membuat template instance melibatkan pemilihan jaringan dan subnet.
Template yang dibuat untuk digunakan dalam jaringan VPC Bersama mode kustom harus menentukan jaringan dan subnet.
Template yang dibuat untuk digunakan dalam mode otomatis Jaringan VPC bersama dapat secara opsional menunda pemilihan subnet. Dalam kasus ini, subnet secara otomatis dipilih di region yang sama dengan grup instance terkelola yang menggunakan template tersebut. (Jaringan mode otomatis memiliki subnet di setiap region menurut definisi.)
Saat akun utama IAM membuat template instance, Google Cloud tidak akan melakukan pemeriksaan izin untuk mengetahui apakah akun utama dapat menggunakan subnet yang ditentukan. Pemeriksaan izin ini selalu ditunda saat grup instance terkelola yang menggunakan template diminta.
Anda dapat membuat template instance dual-stack jika membuat template tersebut dalam subnet dual-stack. Subnet stack ganda hanya didukung di jaringan VPC mode kustom. Jenis akses IPv6 subnet menentukan apakah alamat IPv6 yang ditetapkan ke VM adalah alamat IPv6 internal atau eksternal.
Konsol
- Siapkan VPC bersama.
- Di konsol Google Cloud, buka halaman Shared VPC.
Buka halaman VPC Bersama - Login sebagai Admin VPC Bersama.
- Pilih project layanan dari pemilih project.
- Untuk membuka halaman Create an instance template, pilih Compute Engine > Instance templates > Create instance templates.
- Tentukan Name untuk template instance.
- Di bagian Advanced options, klik Networking.
- Di bagian Network interfaces, klik tombol pilihan Networks shared with me.
- Di daftar Shared subnetwork, pilih subnet yang diperlukan tempat Anda ingin membuat template instance:
- Untuk alamat IPv4, pilih subnet single-stack.
- Untuk alamat IPv6, pilih subnet stack ganda dengan jenis akses IPv6 yang diperlukan.
- Pilih IP stack type:
- Untuk alamat IPv4, pilih IPv4 (single-stack).
- Untuk alamat IPv6, pilih IPv4 and IPv6 (dual-stack).
- Tentukan parameter lain yang diperlukan untuk template instance.
- Klik Create.
gcloud
Buat template instance khusus IPv4 untuk digunakan di subnet apa pun yang dibuat secara otomatis dari jaringan VPC Bersama mode otomatis:
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --network projects/HOST_PROJECT_ID/global/networks/NETWORK
Ganti kode berikut:
TEMPLATE_NAME
: nama template.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.NETWORK
: nama jaringan VPC bersama.
Untuk membuat template instance khusus IPv4 untuk subnet yang dibuat secara manual di jaringan VPC Bersama (baik mode otomatis maupun kustom):
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --region REGION \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Ganti kode berikut:
TEMPLATE_NAME
: nama template.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama.
Buat template instance dual-stack yang menggunakan subnet dalam jaringan VPC Bersama mode kustom:
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type IPV4_IPV6 \ --region REGION \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Ganti kode berikut:
TEMPLATE_NAME
: nama template.SERVICE_PROJECT_ID
: ID project layanan.HOST_PROJECT_ID
: ID project host VPC Bersama.REGION
: region yang berisi subnet bersama.SUBNET
: nama subnet bersama.
API
Untuk membuat template instance khusus IPv4 yang menggunakan subnet yang dibuat secara otomatis dari jaringan VPC Bersama mode otomatis, tentukan jaringan VPC:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK" } ] ... }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.SERVICE_PROJECT_ID
: ID project layanan.NETWORK
: nama jaringan VPC bersama.
Untuk informasi selengkapnya, lihat metode
instanceTemplates.insert
.Untuk membuat template instance khusus IPv4 yang menggunakan subnet yang dibuat secara manual di jaringan VPC Bersama (mode otomatis atau kustom), tentukan subnetnya:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME" } ] ... }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.REGION
: region yang berisi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan.SUBNET_NAME
: nama subnet bersama.
Untuk informasi selengkapnya, lihat metode
instanceTemplates.insert
.Untuk membuat template instance dual-stack yang menggunakan subnet dalam jaringan VPC Bersama mode kustom, tentukan subnet dan jenis tumpukan:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "stackType": "IPV4_IPV6" } ] ... }
Ganti kode berikut:
HOST_PROJECT_ID
: ID project yang berisi jaringan VPC Bersama.REGION
: region yang berisi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan.SUBNET_NAME
: nama subnet bersama.
Untuk informasi selengkapnya, lihat metode
instanceTemplates.insert
.
Terraform
Anda dapat menggunakan blok data Terraform untuk menentukan informasi subnet host. Kemudian, gunakan resource Terraform untuk membuat template instance VM. Alamat IPv4 untuk VM berasal dari subnet bersama project host.
Subnet harus ada di region yang sama tempat instance VM akan dibuat.
Tentukan subnet host:
Buat template instance VM dalam project layanan:
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Membuat grup instance terkelola
Perhatikan hal-hal berikut saat membuat grup instance terkelola menggunakan VPC Bersama:
Grup instance terkelola yang digunakan dengan VPC Bersama memerlukan menjadikan akun layanan Google API sebagai Admin Project Layanan karena tugas seperti pembuatan instance otomatis menggunakan penskalaan otomatis dilakukan oleh akun layanan tersebut.
Proses standar untuk membuat grup instance terkelola meliputi pemilihan zona atau region, bergantung pada jenis grup, dan template instance. (Detail jaringan dan subnet dikaitkan dengan template instance.) Template instance yang memenuhi syarat dibatasi untuk template instance yang mereferensikan subnet di region yang sama dengan yang digunakan oleh grup instance terkelola.
Admin Project Layanan hanya dapat membuat grup instance terkelola yang instance anggotanya menggunakan subnet yang telah diberi izin. Karena detail jaringan dan subnet terikat dengan template instance, Admin Project Layanan hanya dapat menggunakan template yang mereferensikan subnet yang boleh mereka gunakan.
Saat menerima permintaan untuk membuat grup instance terkelola, Google Cloud akan memeriksa apakah akun utama IAM yang membuat permintaan tersebut memiliki izin untuk menggunakan subnet (di region yang sama dengan grup) yang ditentukan di template instance. Jika pemeriksaan gagal, grup instance terkelola tidak akan dibuat, dan Google Cloud akan menampilkan error:
Required 'compute.subnetworks.use' permission for 'projects/SUBNET_NAME
.Cantumkan subnet yang tersedia untuk menentukan subnet yang dapat digunakan, dan hubungi Admin VPC Bersama jika akun layanan memerlukan akses tambahan. Untuk informasi selengkapnya, lihat Akun Layanan sebagai Admin Project Layanan.
Untuk mengetahui informasi selengkapnya, lihat Membuat Grup Instance Terkelola dalam dokumentasi Compute Engine.
Membuat load balancer HTTP(S)
Ada banyak cara untuk mengonfigurasi Load Balancer Aplikasi eksternal dalam jaringan VPC Bersama. Terlepas dari jenis deployment, semua komponen load balancer harus berada di organisasi yang sama dan jaringan VPC Bersama yang sama.
Untuk mempelajari lebih lanjut arsitektur VPC Bersama yang didukung, baca artikel berikut:
- Arsitektur VPC bersama untuk Load Balancer Aplikasi eksternal.
- Arsitektur VPC bersama untuk Load Balancer Aplikasi internal.
Membuat Load Balancer Jaringan passthrough internal
Contoh berikut menggambarkan hal yang harus Anda pertimbangkan saat membuat Load Balancer Jaringan passthrough internal di jaringan VPC Bersama. Admin Project Layanan dapat membuat Load Balancer Jaringan internal yang menggunakan subnet (dalam project host) yang aksesnya mereka miliki. Aturan penerusan internal load balancer ditentukan dalam project layanan, tetapi referensi subnet-nya mengarah ke subnet dalam jaringan VPC Bersama dari project host.
Sebelum Anda membuat Load Balancer Jaringan passthrough internal di lingkungan VPC Bersama, lihat Arsitektur VPC Bersama.
Konsol
Buka halaman Load balancing di Konsol Google Cloud.
Buka halaman Load balancingBuat load balancer TCP/UDP internal dan lakukan penyesuaian berikut: Di bagian Configure frontend services, pilih subnet VPC Bersama yang Anda perlukan dari bagian Networks shared by other project dari menu Subnet.
Selesaikan pembuatan load balancer.
gcloud
Saat Anda membuat aturan penerusan internal, tentukan subnet di project host dengan flag --subnet
:
gcloud compute forwarding-rules create FR_NAME \ --project SERVICE_PROJECT_ID \ --load-balancing-scheme internal \ --region REGION \ --ip-protocol IP_PROTOCOL \ --ports PORT,PORT,... \ --backend-service BACKEND_SERVICE_NAME \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --address INTERNAL_IP
Ganti kode berikut:
FR_NAME
: nama aturan penerusan.SERVICE_PROJECT_ID
: ID project layanan.REGION
: region yang berisi subnet bersama.IP_PROTOCOL
: baikTCP
atauUDP
, cocok dengan protokol layanan backend load balancer.PORT
: port numerik atau daftar port untuk load balancer.BACKEND_SERVICE_NAME
: nama layanan backend (yang sudah dibuat sebagai bagian dari prosedur umum untuk membuat Load Balancer Jaringan internal passthrough).HOST_PROJECT_ID
: ID project host VPC Bersama.SUBNET
: nama subnet bersama.INTERNAL_IP
: alamat IP internal di subnet bersama (jika tidak ditentukan, alamat yang tersedia akan dipilih).
Untuk opsi lainnya, lihat perintah gcloud compute forwarding-rules create
.
API
Buat aturan penerusan internal dan tentukan subnet di project host.
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/forwardingRules { "name": "FR_NAME", "IPAddress": "IP_ADDRESS", "IPProtocol": "PROTOCOL", "ports": [ "PORT", ... ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET", "network": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME", "backendService": "https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/us-west1/backendServices/BE_NAME", "networkTier": "PREMIUM" }
Ganti kode berikut:
BE_NAME
: nama layanan backend (yang sudah dibuat sebagai bagian dari prosedur umum untuk membuat Load Balancer Jaringan internal).FR_NAME
: nama untuk aturan penerusan.HOST_PROJECT_ID
: ID project host VPC Bersama.IP_ADDRESS
: alamat IP internal di subnet bersama.IP_PROTOCOL
:TCP
atauUDP
, cocok dengan protokol layanan backend load balancer.PORT
: port numerik atau daftar port untuk load balancer.REGION
: region yang berisi subnet bersama.SERVICE_PROJECT_ID
: ID project layanan.SUBNET
: nama subnet bersama.
Untuk informasi selengkapnya, lihat metode forwardingRules.insert
.
Terraform
Anda dapat menggunakan blok data Terraform untuk menentukan subnet host dan jaringan host. Kemudian, gunakan resource Terraform untuk membuat aturan penerusan.
Tentukan jaringan host:
Tentukan subnet host:
Pada project layanan, buat aturan penerusan di jaringan dan subnet project host:
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Langkah selanjutnya
- Untuk mengetahui informasi selengkapnya tentang VPC Bersama, lihat VPC Bersama.
- Untuk mendapatkan petunjuk tentang penyiapan cluster Google Kubernetes Engine dengan VPC Bersama, lihat Menyiapkan cluster dengan VPC Bersama.
- Pelajari cara menyiapkan akses ke jaringan VPC Bersama dari Cloud Run, fungsi Cloud Run, atau lingkungan standar App Engine.
- Untuk mendapatkan petunjuk tentang cara menghapus penyiapan VPC Bersama, lihat Mencabut akses VPC Bersama.