Membatasi versi TLS

Halaman ini menjelaskan cara mencegah akses ke resource Google Cloud dengan menolak permintaan yang dibuat menggunakan Transport Layer Security (TLS) 1.0 atau 1.1.

Ringkasan

Google Cloud mendukung beberapa versi protokol TLS. Untuk memenuhi persyaratan kepatuhan, sebaiknya tolak permintaan handshake dari klien yang menggunakan versi TLS sebelumnya. Untuk melakukannya, Anda dapat menggunakan batasan kebijakan organisasi gcp.restrictTLSVersion.

Batasan gcp.restrictTLSVersion dapat diterapkan ke organisasi, folder, atau project dalam hierarki resource. Batasan ini menggunakan daftar yang ditolak, yang menolak nilai eksplisit dan mengizinkan semua nilai lainnya. Error akan terjadi jika Anda mencoba menggunakan daftar yang diizinkan.

Karena perilaku evaluasi hierarki kebijakan organisasi, batasan versi TLS berlaku untuk node resource yang ditentukan dan semua turunannya. Misalnya, jika Anda menolak TLS versi 1.0 untuk organisasi, TLS tersebut juga akan ditolak untuk semua folder dan project (turunan) yang berasal dari organisasi tersebut.

Anda dapat mengganti batasan versi TLS yang diwarisi dengan memperbarui kebijakan organisasi di resource turunan. Misalnya, jika kebijakan organisasi Anda menolak TLS 1.0 di tingkat organisasi, Anda dapat menghapus batasan untuk folder turunan dengan menetapkan kebijakan organisasi terpisah di folder tersebut. Jika folder memiliki turunan, kebijakan folder juga akan diterapkan pada setiap resource turunan karena pewarisan kebijakan.

Sebelum memulai

  • Untuk menetapkan, mengubah, atau menghapus kebijakan organisasi, Anda harus terlebih dahulu diberi peran Identity and Access Management (IAM) Organization Policy Administrator (roles/orgpolicy.policyAdmin).

Membatasi versi TLS

Untuk membatasi satu atau beberapa versi TLS, selesaikan langkah-langkah berikut:

Konsol

  1. Buka halaman Organization policies di konsol Google Cloud .

    Buka Organization policies

  2. Pilih pemilih project di bagian atas halaman.

  3. Dari pemilih project, pilih resource yang ingin Anda tetapkan kebijakan organisasinya.

  4. Pilih batasan Batasi Versi TLS dari daftar di halaman Kebijakan organisasi.

  5. Untuk memperbarui kebijakan organisasi untuk resource ini, klik Edit.

  6. Pada halaman Edit, pilih Customize.

  7. Di bagian Policy enforcement, pilih opsi penerapan:

    • Untuk menggabungkan dan mengevaluasi kebijakan organisasi Anda secara bersamaan, pilih Gabungkan dengan induk. Untuk informasi selengkapnya tentang pewarisan dan hierarki resource, lihat Memahami evaluasi hierarki.

    • Untuk mengganti kebijakan yang diwarisi dari resource induk, pilih Ganti.

  8. Klik Tambahkan Aturan.

  9. Di bagian Policy values, nilai default ditetapkan ke Deny all. Sebagai gantinya, pilih Kustom.

  10. Di bagian Jenis kebijakan, pilih Tolak.

  11. Di bagian Custom values, masukkan versi TLS yang akan ditolak. Nilai berikut adalah nilai kustom yang valid:

    • TLS_VERSION_1 untuk TLS 1.0
    • TLS_VERSION_1_1 untuk TLS 1.1

    Jika Anda membatasi lebih dari satu versi TLS, klik Add value dan masukkan nilai di kolom tambahan.

  12. Untuk menyelesaikan dan menerapkan kebijakan organisasi, klik Save.

gcloud

Gunakan perintah gcloud org-policies set-policy untuk menetapkan kebijakan organisasi pada resource:

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH adalah jalur lengkap ke file kebijakan organisasi Anda, yang akan terlihat seperti berikut jika menggunakan format YAML:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictTLSVersion
spec:
  rules:
  - values:
    deniedValues:
    - TLS_VERSION_1
    - TLS_VERSION_1_1

Ganti dengan kode berikut:

  • RESOURCE_TYPE adalah organizations, folders, atau projects.

  • RESOURCE_ID adalah ID organisasi, ID folder, project ID, atau nomor project Anda, bergantung pada jenis resource yang ditentukan di RESOURCE_TYPE.

Jalankan perintah berikut untuk memverifikasi bahwa kebijakan Anda telah diterapkan:

gcloud org-policies describe gcp.restrictTLSVersion --RESOURCE_TYPE=RESOURCE_ID --effective

Ganti dengan kode berikut:

  • RESOURCE_TYPE adalah organization, folder, atau project.

  • RESOURCE_ID adalah ID organisasi, ID folder, project ID, atau nomor project Anda, bergantung pada jenis resource yang ditentukan di RESOURCE_TYPE.

Menguji kebijakan

Batasan kebijakan pembatasan versi TLS dapat diuji untuk layanan dalam cakupan. Contoh perintah curl berikut memvalidasi batasan versi TLS untuk bucket Cloud Storage.

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/GCS_BUCKET_NAME/o" \
  --tlsvTLS_VERSION --tls-max TLS_VERSION --ciphers DEFAULT@SECLEVEL=0

Tidak ada spasi di antara --tlsv dan nilai. Contoh: --tlsv1.1

Ganti dengan kode berikut:

  • GCS_BUCKET_NAME adalah nama bucket Cloud Storage di project Anda, seperti mybucketname.

  • TLS_VERSION adalah versi TLS seperti 1.0 atau 1.1 yang ditolak dalam kebijakan yang dikonfigurasi.

Contoh permintaan curl berikut menunjukkan GCS_BUCKET_NAME yang ditetapkan ke mybucketname dan TLS_VERSION yang ditetapkan ke 1.1:

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/mybucketname/o" \
  --tlsv1.1 --tls-max 1.1 --ciphers DEFAULT@SECLEVEL=0

Jika kebijakan organisasi dikonfigurasi untuk membatasi TLS_VERSION_X, setiap upaya untuk mengakses resource dengan TLS_VERSION_X dalam project yang dibatasi kebijakan dalam contoh perintah ini akan gagal. Pesan error akan ditampilkan yang menjelaskan alasan kegagalan ini.

Request is disallowed by organization's constraints/gcp.restrictTLSVersion
constraint for 'projects/PROJECT_NUMBER' to use service
'SERVICE_NAME.googleapis.com' by violated TLS version `TLS_VERSION_X`

Output ini mencakup nilai-nilai berikut:

  • PROJECT_NUMBER: nomor project yang menghosting resource yang dirujuk dalam perintah sebelumnya.
  • SERVICE_NAME: nama layanan dalam cakupan yang diblokir oleh kebijakan pembatasan TLS.

Layanan yang didukung

Pembatasan versi TLS didukung oleh API resource Google Cloud yang memiliki header yang ditandatangani oleh Google Front End (GFE).

Layanan yang tidak didukung

Batasan kebijakan organisasi pembatasan versi TLS tidak berlaku untuk layanan berikut:

  • App Engine (*.appspot.com)
  • Fungsi Cloud Run (*.cloudfunctions.net),
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Domain kustom

Untuk membatasi versi TLS untuk layanan ini, gunakan Cloud Load Balancing bersama dengan kebijakan SSL. Anda juga dapat menggunakan batasan constraints/compute.requireSslPolicy yang telah ditentukan sebelumnya bersama dengan batasan kustom untuk kebijakan SSL guna menerapkan batasan versi TLS dan cipher suite untuk load balancer.

Langkah selanjutnya