Ringkasan
Panduan ini menjelaskan cara menetapkan kebijakan organisasi yang menyertakan batasan lokasi resource.
Anda dapat membatasi lokasi fisik resource baru dengan batasan lokasi resource Organization Policy Service. Anda dapat menggunakan properti lokasi resource untuk mengidentifikasi tempat resource tersebut di-deploy dan dikelola oleh layanan. Untuk resource yang memuat data dari beberapa layanan Google Cloud, properti ini juga mencerminkan lokasi tempat data disimpan. Batasan ini memungkinkan Anda menentukan lokasi Google Cloud yang diizinkan tempat resource untuk layanan yang didukung dalam hierarki Anda dapat dibuat.
Setelah Anda menentukan lokasi resource, batasan ini hanya akan berlaku untuk resource yang baru dibuat. Resource yang Anda buat sebelum menetapkan batasan lokasi resource akan terus ada dan menjalankan fungsinya.
Kebijakan yang mencakup batasan ini tidak akan diterapkan pada pembuatan sub-resource untuk layanan tertentu, seperti Cloud Storage dan Dataproc.
Batasan
Batasan Layanan Kebijakan Organisasi lokasi resource mengontrol kemampuan untuk membuat resource yang lokasi dapat dipilih. Batasan ini tidak memengaruhi lokasi pembuatan resource global, seperti alamat global Compute Engine, atau resource yang tidak mendukung pemilihan lokasi.
Agar tidak merusak infrastruktur penayangan yang ada, Anda harus menguji kebijakan baru pada project dan folder non-produksi, lalu menerapkan kebijakan tersebut secara bertahap dalam organisasi.
Untuk mengetahui komitmen penyimpanan data, lihat Persyaratan Layanan Google Cloud dan Persyaratan Khusus Layanan. Kebijakan organisasi yang berisi batasan lokasi resource bukanlah komitmen penyimpanan data.
Batasan ini berlaku untuk subset produk dan jenis resource tertentu. Untuk daftar layanan yang didukung dan detail tentang perilaku setiap layanan, lihat halaman Layanan yang Didukung Lokasi Resource.
Jenis lokasi
Anda dapat men-deploy resource Google Cloud di jenis lokasi yang mewakili berbagai kategori ukuran.
Jenis lokasi terbesar adalah multi-region
, yang mencakup lebih dari satu
region
. Setiap region
dibagi lagi menjadi zones
. Untuk mengetahui informasi selengkapnya
tentang region dan zona, lihat
Ringkasan Region dan Zona.
Lokasi
Multi-region
didukung oleh resource fisik di lebih dari saturegion
dan biasanya hanya digunakan oleh resource berbasis penyimpanan. Beberapa contohnya meliputius
,asia
,europe
, danglobal
.Lokasi
Region
secara geografis terpisah satu sama lain. Beberapa contohnya mencakupus-west1
(Oregon),asia-northeast1
(Tokyo), daneurope-west1
(Belgia).Lokasi
Zone
adalah jenis lokasi yang paling terperinci dan terisolasi yang digunakan untuk men-deploy resource.zone
adalah domain kegagalan independen dalamregion
. Contohnya adalahus-east1-a
,us-west1-b
, danasia-northeast1-a
.
Saat menyiapkan lokasi, Anda harus menggunakan awalan in:
dan Grup Nilai. Dengan menggunakan Grup Nilai yang diseleksi oleh Google Cloud, Anda dapat memilih lokasi geografis, tanpa harus menentukan lokasi Cloud saat ini atau di masa mendatang.
Awalan in:
untuk Grup Nilai menentukan bahwa semua nilai yang ada dalam
grup nilai dianggap sebagai bagian dari kebijakan. Jika Anda memasukkan nilai grup atau region Google Cloud tanpa awalan, awalan in:
akan otomatis ditambahkan, sesuai dengan aturan ini:
- Jika Anda memasukkan lokasi yang menggunakan awalan
in:
, dan lokasi tersebut berisi grup yang tidak valid, perubahan kebijakan akan gagal. - Jika Anda memasukkan lokasi yang merupakan sebuah wilayah, seperti
us-east1
, lokasi tersebut akan ditambahi awalanin:
, kein:us-east1-locations
dalam contoh ini. - Jika Anda memasukkan grup nilai wilayah atau multi-region seperti
us-locations
, awalanin:
akan ditambahkan kein:us-locations
dalam contoh ini. - Jika Anda memasukkan zona atau multi-region seperti
us-east1-a
atauus
, nilai tidak akan diubah.
Menetapkan kebijakan organisasi
Batasan lokasi resource adalah jenis
batasan daftar.
Anda dapat menambahkan dan menghapus lokasi dari daftar allowed_values
atau denied_values
batasan lokasi resource. Untuk mencegah kebijakan organisasi
membatasi perilaku layanan secara tidak terduga saat lokasi baru ditambahkan ke
daftar yang tersedia, gunakan grup nilai, atau daftar
allowed_values
yang mewakili seluruh batas geografis yang ingin
Anda tentukan.
Untuk menyetel kebijakan organisasi termasuk batasan lokasi resource:
Konsol
Di konsol Google Cloud, buka halaman Organization policies.
Dari pemilih project, pilih organisasi, folder, atau project yang ingin Anda tetapkan kebijakan organisasinya.
Pilih batasan Google Cloud Platform - Resource Location Restriction untuk membuka halaman Policy details.
Klik Manage Policy.
Di halaman Edit policy, pilih Override parent's policy.
Di bagian Policy enforcement, pilih Replace.
Klik Tambahkan Aturan.
Di bagian Policy values, pilih Custom.
Di bagian Jenis kebijakan, pilih Izinkan untuk membuat daftar lokasi yang diizinkan, atau pilih Tolak untuk membuat daftar lokasi yang ditolak.
Di kotak Policy value, masukkan awalan
in
dan string lokasi value group, lalu tekan Enter.Misalnya
in:us-locations
atauin:us-west1-locations
. Anda dapat memasukkan beberapa string lokasi dengan mengklik Nilai kebijakan baru.Anda juga dapat memasukkan lokasi zona, region, atau multi-region tertentu sebagai string lokasi. Untuk daftar lokasi yang tersedia, lihat halaman Layanan yang Didukung Lokasi Resource.
Untuk menerapkan kebijakan, klik Tetapkan kebijakan.
gcloud
Untuk membuat kebijakan organisasi yang menerapkan batasan lokasi resource, buat file YAML kebijakan yang merujuk batasan tersebut:
constraint: constraints/gcp.resourceLocations listPolicy: deniedValues: - in:us-east1-locations - in:northamerica-northeast1-locations
Untuk menerapkan kebijakan organisasi yang berisi batasan, jalankan perintah berikut:
gcloud org-policies set-policy \ --organization 'ORGANIZATION_ID' \ POLICY_PATH
Ganti kode berikut:
- ORGANIZATION_ID: ID organisasi Anda, seperti 01234567890.
- POLICY_PATH: jalur lengkap ke file YAML yang berisi kebijakan organisasi.
Respons akan ditampilkan dengan hasil kebijakan organisasi baru:
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
rules:
- values:
allowedValues:
- in:us-east1-locations
- in:northamerica-northeast1-locations
Anda juga dapat memasukkan lokasi zona, region, atau multi-region tertentu sebagai string lokasi. Untuk daftar lokasi yang tersedia, lihat halaman Layanan yang Didukung Lokasi Resource.
API
Anda dapat menggunakan Resource Manager API untuk menyetel kebijakan organisasi pada resource. Anda memerlukan token pemilik OAuth 2.0 untuk autentikasi dan otorisasi.
Untuk menetapkan kebijakan organisasi menggunakan batasan lokasi resource:
curl -X POST -H "Content-Type: application/json" -H "Authorization: \ Bearer ${bearer_token}" -d '{policy: {etag: "BwVtXec438Y=", constraint: \ "constraints/gcp.resourceLocations", list_policy: {denied_values: \ ["in:europe-locations", "in:southamerica-locations"] }}}' \ https://cloudresourcemanager.googleapis.com/v1/organizations/123456789:setOrgPolicy
Respons akan ditampilkan beserta hasil kebijakan organisasi baru:
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
rules:
- values:
deniedValues:
- in:europe-locations
- in:southamerica-locations
Anda juga dapat memasukkan lokasi zona, region, atau multi-region tertentu sebagai string lokasi. Untuk daftar lokasi yang tersedia, lihat halaman Layanan yang Didukung Lokasi Resource.
Untuk mempelajari cara menggunakan batasan dalam kebijakan organisasi, lihat Menggunakan Batasan.
Menggunakan pewarisan dalam kebijakan organisasi
Anda dapat meningkatkan kebijakan organisasi untuk mewarisi kebijakan organisasi dari node induk resource. Pewarisan memberi Anda kontrol terperinci atas kebijakan organisasi yang digunakan di seluruh hierarki resource.
Untuk mengaktifkan pewarisan pada node resource, tetapkan inheritFromParent = true
dalam file .yaml
kebijakan organisasi. Contoh:
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
inheritFromParent: true
rules:
- values:
deniedValues:
- in:us-west1
Contoh pesan error
Layanan yang mendukung batasan lokasi resource tidak dapat membuat resource baru di lokasi yang akan melanggar batasan. Jika layanan mencoba membuat resource di lokasi yang melanggar batasan, upaya tersebut akan gagal dan pesan error akan muncul.
Pesan error ini akan memiliki format berikut:
LOCATION_IN_REQUEST violates constraint
constraints/gcp.resourceLocations on the resource RESOURCE_TESTED.
Pada contoh berikut, resource Compute Engine gagal membuat instance baru karena penegakan kebijakan:
Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3.
Entri log Kemampuan Observabilitas Google Cloud dan Cloud Audit Logs:
{ insertId: "5u759gdngec" logName: "projects/policy-violation-test/logs/cloudaudit.googleapis.com%2Factivity" protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" authenticationInfo: {…} authorizationInfo: [6] methodName: "beta.compute.instances.insert" request: {…} requestMetadata: {…} resourceLocation: {…} resourceName: "projects/policy-violation-test/zones/us-east1-b/instances/instance-3" response: { @type: "type.googleapis.com/error" error: { code: 412 errors: [ 0: { domain: "global" location: "If-Match" locationType: "header" message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3." reason: "conditionNotMet" } ] message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3." } } serviceName: "compute.googleapis.com" status: { code: 3 message: "INVALID_ARGUMENT" } } receiveTimestamp: "2019-06-14T03:04:23.660988360Z" resource: { labels: {…} type: "gce_instance" } severity: "ERROR" timestamp: "2019-06-14T03:04:22.783Z" }
Temuan kerentanan dan perbaikan
Batasan lokasi resource membatasi pembuatan resource saat runtime. Fitur ini membantu mencegah terjadinya pelanggaran lokasi, tetapi tidak mengidentifikasi atau memperbaiki pelanggaran yang ada. Anda dapat menggunakan Security Health Analytics, layanan bawaan Security Command Center, untuk menemukan pelanggaran lokasi dalam hierarki resource Anda. Untuk informasi selengkapnya, lihat Temuan kerentanan Kebijakan Organisasi.
Jika ada temuan Security Health Analytics terkait pelanggaran lokasi, lihat Memperbaiki temuan Security Health Analytics untuk mengetahui langkah-langkah memperbaiki temuan tersebut.
Grup nilai
Grup nilai adalah kumpulan grup dan lokasi yang diseleksi oleh Google untuk menyediakan cara yang mudah dalam menentukan lokasi resource Anda. Grup nilai mencakup banyak lokasi terkait dan diperluas dari waktu ke waktu oleh Google tanpa perlu mengubah kebijakan organisasi Anda untuk mengakomodasi lokasi baru.
Untuk menggunakan grup nilai dalam kebijakan organisasi Anda, awali entri Anda dengan
string in:
. Untuk mengetahui informasi selengkapnya tentang penggunaan awalan nilai, lihat Menggunakan Batasan. Nama grup tidak divalidasi pada panggilan untuk menetapkan kebijakan organisasi. Jika nama grup yang diberikan tidak ada, tidak ada nilai baru yang akan ditambahkan ke kebijakan organisasi yang berlaku, kecuali jika nama grup tersebut dibuat oleh Google nanti.
Tabel berikut berisi daftar grup yang tersedia saat ini:
Grup | Detail | Anggota langsung |
---|---|---|
Johannesburg | Semua lokasi di Johannesburg:in:africa-south1-locations |
Nilai:
|
Asia | Semua lokasi di Asia:in:asia-locations |
Grup:
Nilai:
|
Taiwan | Semua lokasi di Taiwan:in:asia-east1-locations |
Nilai:
|
Hong Kong | Semua lokasi di Hong Kong:in:asia-east2-locations |
Nilai:
|
Tokyo | Semua lokasi di Tokyo:in:asia-northeast1-locations |
Nilai:
|
Osaka | Semua lokasi di Osaka:in:asia-northeast2-locations |
Nilai:
|
Seoul | Semua lokasi di Seoul:in:asia-northeast3-locations |
Nilai:
|
Mumbai | Semua lokasi di Mumbai:in:asia-south1-locations |
Nilai:
|
Delhi | Semua lokasi di Delhi:in:asia-south2-locations |
Nilai:
|
Singapura | Semua lokasi di Singapura:in:asia-southeast1-locations |
Nilai:
|
Jakarta | Semua lokasi di Jakarta:in:asia-southeast2-locations |
Nilai:
|
Doha | Semua lokasi di Doha:in:me-central1-locations |
Nilai:
|
Dammam | Semua lokasi di Dammam:in:me-central2-locations |
Nilai:
|
Israel | Semua lokasi di Israel:in:me-west1-locations |
Nilai:
|
Australia | Semua lokasi di Australia:in:australia-locations |
Grup:
|
Sydney | Semua lokasi di Sydney:in:australia-southeast1-locations |
Nilai:
|
Melbourne | Semua lokasi di Melbourne:in:australia-southeast2-locations |
Nilai:
|
AWS | Semua lokasi AWS:in:aws-locations |
Nilai:
|
Azure | Semua lokasi Azure:in:azure-locations |
Nilai:
|
Uni Eropa | Semua lokasi di Uni Eropa:in:eu-locations |
Grup:
Nilai:
|
Warsawa | Semua lokasi di Warsawa:in:europe-central2-locations |
Nilai:
|
Finlandia | Semua lokasi di Finlandia:in:europe-north1-locations |
Nilai:
|
Madrid | Semua lokasi di Madrid:in:europe-southwest1-locations |
Nilai:
|
Belgia | Semua lokasi di Belgia:in:europe-west1-locations |
Nilai:
|
Berlin | Semua lokasi di Berlin:in:europe-west10-locations |
Nilai:
|
Turin | Semua lokasi di Turin:in:europe-west12-locations |
Nilai:
|
Frankfurt | Semua lokasi di Frankfurt:in:europe-west3-locations |
Nilai:
|
Belanda | Semua lokasi di Belanda:in:europe-west4-locations |
Nilai:
|
Milan | Semua lokasi di Milan:in:europe-west8-locations |
Nilai:
|
Paris | Semua lokasi di Paris:in:europe-west9-locations |
Nilai:
|
Eropa | Semua lokasi di Eropa:in:europe-locations |
Grup:
Nilai:
|
London | Semua lokasi di London:in:europe-west2-locations |
Nilai:
|
Zurich | Semua lokasi di Zurich:in:europe-west6-locations |
Nilai:
|
Jepang | Semua lokasi di Jepang:in:jp-locations |
Grup:
|
Lokasi dengan karbon rendah | Semua lokasi dengan dampak karbon rendah:in:low-carbon-locations |
Grup:
|
Kanada rendah karbon | Semua lokasi di Kanada dengan dampak karbon rendah:in:canada-low-carbon-locations |
Grup:
|
Montréal | Semua lokasi di Montréal:in:northamerica-northeast1-locations |
Nilai:
|
Toronto | Semua lokasi di Toronto:in:northamerica-northeast2-locations |
Nilai:
|
Uni Eropa rendah karbon | Semua lokasi di Uni Eropa dengan dampak karbon rendah:in:eu-low-carbon-locations |
Grup:
|
Eropa rendah karbon | Semua lokasi di Eropa dengan dampak karbon rendah:in:europe-low-carbon-locations |
Grup:
|
Karbon rendah Amerika Utara | Semua lokasi di Amerika Utara dengan dampak karbon rendah:in:northamerica-low-carbon-locations |
Grup:
|
Iowa | Semua lokasi di Iowa:in:us-central1-locations |
Nilai:
|
Oregon | Semua lokasi di Oregon:in:us-west1-locations |
Nilai:
|
Amerika Selatan rendah karbon | Semua lokasi di Amerika Selatan dengan dampak karbon rendah:in:southamerica-low-carbon-locations |
Grup:
|
Sao Paulo | Semua lokasi di Sao Paulo:in:southamerica-east1-locations |
Nilai:
|
Karbon rendah Amerika Serikat | Semua lokasi di Amerika Serikat dengan dampak karbon rendah:in:us-low-carbon-locations |
Grup:
|
Amerika Utara | Semua lokasi di Amerika Utara:in:northamerica-locations |
Grup:
Nilai:
|
Kanada | Semua lokasi di Kanada.in:canada-locations |
Grup:
Nilai:
|
Amerika Serikat | Semua lokasi di Amerika Serikat:in:us-locations |
Grup:
Nilai:
|
Oklahoma | Semua lokasi di Oklahoma:in:us-central2-locations |
Nilai:
|
South Carolina | Semua zona di Carolina Selatan:in:us-east1-locations |
Nilai:
|
Northern Virginia | Semua lokasi di Virginia Utara:in:us-east4-locations |
Nilai:
|
Columbus | Semua lokasi di Columbus:in:us-east5-locations |
Nilai:
|
Dallas | Semua lokasi di Bandung:in:us-south1-locations |
Nilai:
|
Los Angeles | Semua lokasi di Los Angeles:in:us-west2-locations |
Nilai:
|
Salt Lake City | Semua lokasi di Salt Lake City:in:us-west3-locations |
Nilai:
|
Las Vegas | Semua lokasi di Las Vegas:in:us-west4-locations |
Nilai:
|
Amerika Selatan | Semua lokasi di Amerika Selatan:in:southamerica-locations |
Grup:
|
Santiago | Semua lokasi di Santiago:in:southamerica-west1-locations |
Nilai:
|
Authentication
Organization Policy Service menggunakan OAuth 2.0 untuk autentikasi dan otorisasi API. Untuk mendapatkan token pemilik OAuth 2.0:
Dalam daftar cakupan Langkah 1, pilih Cloud Resource Manager API v2 > https://www.googleapis.com/auth/cloud-platform, lalu klik Authorize APIs.
Di halaman Sign in with Google yang muncul, pilih akun Anda dan login.
Untuk memberikan akses ke Google Oauth 2.0 Playground, klik Allow pada perintah yang muncul.
Pada Langkah 2, klik Exchange authorization code for tokens.
Di bagian bawah panel Request / Response di sebelah kanan, string token akses Anda akan ditampilkan:
{ "access_token": "ACCESS_TOKEN", "token_type": "Bearer", "expires_in": 3600 }
Dengan ACCESS_TOKEN adalah string token pemilik OAuth 2.0 yang dapat Anda gunakan untuk otorisasi API.