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, Anda mungkin ingin menolak permintaan handshake dari klien yang menggunakan versi TLS yang lebih lama.

Fungsi ini disediakan oleh batasan kebijakan organisasi gcp.restrictTLSVersion. Batasan ini dapat diterapkan pada organisasi, folder, atau project dalam hierarki resource. Batasan gcp.restrictTLSVersion menggunakan daftar tolak, 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, pembatasan versi TLS berlaku untuk node resource yang ditentukan dan semua turunannya. Misalnya, jika Anda menolak TLS versi 1.0 untuk suatu organisasi, TLS juga akan ditolak untuk semua folder dan project (turunan) yang berasal dari organisasi tersebut.

Anda dapat mengganti batasan versi TLS yang diwariskan dengan memperbarui kebijakan organisasi pada resource turunan. Misalnya, jika kebijakan organisasi Anda menolak TLS 1.0 di tingkat organisasi, Anda dapat menghapus pembatasan untuk folder turunan dengan menyetel 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 Organization Policy Administrator (roles/orgpolicy.policyAdmin) Identity and Access Management (IAM).

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 kebijakan organisasinya ingin Anda tetapkan.

  4. Pilih batasan Restrict TLS Version 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 Penegakan kebijakan, pilih opsi penerapan:

    • Untuk menggabungkan dan mengevaluasi kebijakan organisasi Anda bersama-sama, pilih Merge with parent. Untuk mengetahui 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 Nilai kebijakan, nilai default ditetapkan ke Tolak semua. Pilih Custom sebagai gantinya.

  10. Di bagian Jenis kebijakan, pilih Tolak.

  11. Di bagian Nilai kustom, 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, lalu 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 yang diinginkan:

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 dalam RESOURCE_TYPE.

Jalankan perintah berikut untuk memastikan 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 dalam RESOURCE_TYPE.

Menguji kebijakan

Batasan kebijakan pembatasan versi TLS dapat diuji untuk layanan dalam cakupan apa pun. Contoh perintah curl berikut memvalidasi pembatasan 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, upaya apa pun untuk mengakses resource dengan TLS_VERSION_X dalam project yang dibatasi kebijakan dalam contoh perintah ini akan gagal. Pesan error 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 layanan berikut:

  • apigateway.googleapis.com
  • appengine.googleapis.com
  • artifactregistry.googleapis.com
  • assuredworkloads.googleapis.com
  • bigquery.googleapis.com
  • bigqueryreservation.googleapis.com
  • bigtableadmin.googleapis.com
  • binaryauthorization.googleapis.com
  • cloudasset.googleapis.com
  • cloudbuild.googleapis.com
  • clouddebugger.googleapis.com
  • cloudfunctions.googleapis.com
  • cloudkms.googleapis.com
  • cloudresourcemanager.googleapis.com
  • cloudscheduler.googleapis.com
  • cloudsearch.googleapis.com
  • cloudtasks.googleapis.com
  • cloudtrace.googleapis.com
  • composer.googleapis.com
  • compute.googleapis.com
  • container.googleapis.com
  • containeranalysis.googleapis.com
  • datacatalog.googleapis.com
  • dataflow.googleapis.com
  • datafusion.googleapis.com
  • datalabeling.googleapis.com
  • datamigration.googleapis.com
  • dataproc.googleapis.com
  • datastore.googleapis.com
  • deploymentmanager.googleapis.com
  • dialogflow.googleapis.com
  • dlp.googleapis.com
  • dns.googleapis.com
  • domains.googleapis.com
  • file.googleapis.com
  • firebaserules.googleapis.com
  • firestore.googleapis.com
  • genomics.googleapis.com
  • healthcare.googleapis.com
  • iam.googleapis.com
  • iamcredentials.googleapis.com
  • iap.googleapis.com
  • identitytoolkit.googleapis.com
  • language.googleapis.com
  • lifesciences.googleapis.com
  • logging.googleapis.com
  • managedidentities.googleapis.com
  • memcache.googleapis.com
  • metastore.googleapis.com
  • ml.googleapis.com
  • monitoring.googleapis.com
  • networkmanagement.googleapis.com
  • notebooks.googleapis.com
  • osconfig.googleapis.com
  • policytroubleshooter.googleapis.com
  • privateca.googleapis.com
  • pubsub.googleapis.com
  • pubsublite.googleapis.com
  • recommender.googleapis.com
  • redis.googleapis.com
  • run.googleapis.com
  • runtimeconfig.googleapis.com
  • secretmanager.googleapis.com
  • servicecontrol.googleapis.com
  • servicedirectory.googleapis.com
  • servicenetworking.googleapis.com
  • sourcerepo.googleapis.com
  • spanner.googleapis.com
  • sqladmin.googleapis.com
  • storage.googleapis.com

  • storagetransfer.googleapis.com

  • sts.googleapis.com

  • texttospeech.googleapis.com

  • tpu.googleapis.com

  • videointelligence.googleapis.com

  • vision.googleapis.com

  • workflowexecutions.googleapis.com

  • workflows.googleapis.com

Layanan yang tidak didukung

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

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

Guna membatasi versi TLS untuk layanan tersebut, gunakan Cloud Load Balancing bersama dengan kebijakan keamanan SSL.

Langkah selanjutnya