Membatasi cipher suite TLS

Halaman ini menjelaskan cara mencegah akses ke resource Google Cloud dengan menolak permintaan yang dibuat menggunakan cipher suite Transport Layer Security (TLS) tertentu yang kurang aman.

Ringkasan

Google Cloud mendukung beberapa cipher suite TLS. Untuk memenuhi persyaratan keamanan atau kepatuhan, Anda dapat menolak permintaan dari klien yang menggunakan cipher suite TLS yang kurang aman.

Kemampuan ini disediakan oleh batasan kebijakan organisasi gcp.restrictTLSCipherSuites. Batasan dapat diterapkan pada organisasi, folder, atau project dalam hierarki resource.

Anda dapat menggunakan batasan gcp.restrictTLSCipherSuites sebagai daftar yang diizinkan atau sebagai daftar yang ditolak:

  • Daftar yang diizinkan: Mengizinkan kumpulan cipher suite tertentu. Semua yang lain akan ditolak.
  • Daftar tolak: menolak kumpulan cipher suite tertentu. Semua yang lain diizinkan.

Karena perilaku evaluasi hierarki kebijakan organisasi, batasan Batasi cipher suite TLS berlaku untuk node resource yang ditentukan dan semua turunannya. Misalnya, jika Anda hanya mengizinkan cipher suite TLS tertentu untuk organisasi, setelan ini juga berlaku untuk semua folder dan project (turunan) yang berasal dari organisasi tersebut.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk menetapkan, mengubah, atau menghapus kebijakan organisasi, minta administrator untuk memberi Anda Administrator kebijakan organisasi (roles/orgpolicy.policyAdmin) peran IAM di organisasi. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menetapkan kebijakan organisasi

Batasan Rangkaian sandi TLS yang Dibatasi adalah jenis batasan daftar. Anda dapat menambahkan dan menghapus cipher suite dari daftar allowed_values atau denied_values dari batasan Restrict TLS cipher suites. Untuk mencegah kebijakan organisasi menjadi terlalu ketat dan menyederhanakan pengelolaan kebijakan, gunakan grup nilai. Grup nilai adalah cipher suite TLS yang direkomendasikan dan diseleksi oleh Google.

Konsol

  1. Buka halaman Organization policies di Google Cloud console.

    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 cipher suite TLS dari daftar di halaman Kebijakan organisasi.

  5. Untuk memperbarui kebijakan organisasi untuk resource ini, klik Manage policy.

  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 Replace.

  8. Klik Tambahkan Aturan.

  9. Di bagian Policy values, pilih Custom.

  10. Di bagian Jenis kebijakan, pilih Izinkan untuk membuat daftar cipher suite yang diizinkan, atau pilih Tolak untuk membuat daftar cipher suite yang ditolak.

  11. Di bagian Custom values, masukkan awalan in: dan string value group, lalu tekan Enter.

    • Misalnya, in:NIST-800-52-recommended-ciphers. Anda dapat memasukkan beberapa string grup nilai dengan mengklik Tambahkan nilai.

    • Anda juga dapat memasukkan string cipher suite tertentu menggunakan awalan is:. Untuk mengetahui daftar nilai yang didukung, lihat cipher suite yang didukung.

  12. Untuk menerapkan kebijakan, klik Set policy.

gcloud

Untuk membuat kebijakan organisasi yang menerapkan batasan Restrict TLS Cipher Suites, buat file YAML kebijakan yang mereferensikan batasan tersebut:

constraint: constraints/gcp.restrictTLSCipherSuites
listPolicy:
  allowedValues:
  - in:CNSA-2.0-recommended-ciphers
  - is:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

Untuk menerapkan kebijakan organisasi yang berisi batasan, jalankan perintah berikut:

gcloud resource-manager org-policies set-policy \
--RESOURCE_TYPE RESOURCE_ID \
POLICY_PATH

Ganti kode berikut:

  • RESOURCE_TYPE dengan organization, folder, atau project.

  • RESOURCE_ID dengan ID organisasi, ID folder, project ID, atau nomor project Anda.

  • POLICY_PATH dengan jalur lengkap ke file YAML yang berisi kebijakan organisasi.

Respons akan ditampilkan dengan hasil kebijakan organisasi baru:

constraint: constraints/gcp.restrictTLSCipherSuites
etag: COS9qr0GELii6o0C
listPolicy:
  allowedValues:
  - in:CNSA-2.0-recommended-ciphers
  - is:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
updateTime: '2025-02-11T00:50:44.565875Z'

Grup nilai

Grup nilai adalah kumpulan cipher suite yang dipilih oleh Google untuk memberikan cara yang lebih sederhana dalam menentukan cipher suite TLS yang disukai atau direkomendasikan. Grup nilai mencakup beberapa cipher suite dan diperluas dari waktu ke waktu oleh Google. Anda tidak perlu mengubah kebijakan organisasi untuk mengakomodasi cipher suite baru.

Untuk menggunakan grup nilai dalam kebijakan organisasi Anda, beri awalan pada entri Anda dengan string in:. Untuk informasi selengkapnya tentang penggunaan awalan nilai, lihat Menggunakan Batasan. Nama grup nilai divalidasi pada panggilan untuk menetapkan kebijakan organisasi. Penggunaan nama grup yang tidak valid akan menyebabkan setelan kebijakan gagal.

Tabel berikut berisi daftar grup yang tersedia saat ini:

Grup Detail Anggota langsung
CNSA-2.0-recommended-ciphers Cipher yang direkomendasikan CNSA 2.0 dan didukung oleh Google Cloud:
in:CNSA-2.0-recommended-ciphers
Nilai:
  • TLS_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
NIST-800-52-recommended-ciphers Cipher yang direkomendasikan NIST SP 800-52 yang didukung oleh Google Cloud:
in:NIST-800-52-recommended-ciphers
Nilai:
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Cipher suite yang didukung

Ini adalah daftar cipher suite yang didukung oleh Google Cloud.

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256

Pesan error

Layanan yang mendukung batasan cipher suite TLS Batasi menolak permintaan yang melanggar batasan.

Contoh pesan error

Pesan error memiliki format yang mirip dengan contoh berikut:

Request is disallowed by organization's constraints/gcp.restrictTLSCipherSuites
constraint for 'projects/PROJECT_NUMBER'.
Access to service
'SERVICE_NAME.googleapis.com' attempted with a disallowed TLS Cipher Suite: 'TLS_Cipher_Suite_X`
To access this resource, please use an allowed TLS Cipher Suite.

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 Batasi cipher suite TLS.
  • TLS_Cipher_Suite_X: Suite Cipher TLS yang digunakan dalam permintaan.

Contoh Cloud Audit Log

Entri log audit juga dibuat untuk pemantauan, pemberitahuan, atau proses debug lebih lanjut. Entri log audit terlihat mirip dengan contoh berikut:

{
  logName: "projects/my-project-number/logs/cloudaudit.googleapis.com%2Fpolicy"
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    status: {
      code: 7
      message: "Request is disallowed by organization's TLS Cipher Suite Restriction Org Policy for 'projects/my-project-number'. Attempting to use service 'bigquery.googleapis.com' with a disallowed TLS Cipher Suite: 'TLS_Cipher_Suite_X`."
    }
    serviceName: "bigquery.googleapis.com"
    methodName: "google.cloud.bigquery.v2.TableDataService.InsertAll"
    resourceName: "projects/my-project-number"
    authenticationInfo: {
      principalEmail: "user_or_service_account@example.com"
    }
  }
  requestMetadata: {
    callerIp: "123.123.123.123"
  }
  policyViolationInfo: {
    orgPolicyViolationInfo: {
      violationInfo: [
        {
          constraint: "constraints/gcp.restrictTlsCipherSuites"
          errorMessage: "TLS Cipher Suite Restriction Org Policy is violated"
          policyType: "LIST_CONSTRAINT"
        }
      ]
    }
  }
  resource: {
    type: "audited_resource"
    labels: {
      project_id: "my-project-number"
      method: "google.cloud.bigquery.v2.TableDataService.InsertAll"
      service: "bigquery.googleapis.com"
    }
  }
  severity: "ERROR"
  timestamp: "2023-10-27T19:27:24.633477924Z"
  receiveTimestamp: "2023-10-27T19:27:25.071941737Z"
  insertId "42"
}

Menguji kebijakan

Anda dapat menguji batasan kebijakan pembatasan cipher TLS untuk layanan dalam cakupan. Contoh perintah curl berikut memvalidasi cipher suite Restrict TLS untuk ring kunci Cloud Key Management Service.

curl --ciphers TLS_CIPHER_SUITE --tls_max 1.2 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings" --verbose

Ganti variabel berikut:

  • TLS_CIPHER_SUITE: nama cipher suite TLS dalam konvensi penamaan OpenSSL, misalnya ECDHE-ECDSA-AES128-SHA yang merupakan nama OpenSSL untuk TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.

  • PROJECT_ID: Nama project yang berisi ring kunci

Contoh permintaan curl berikut menunjukkan PROJECT_ID yang disetel ke my-project-id dan TLS_CIPHER_SUITE yang disetel ke ECDHE-ECDSA-AES128-SHA:

curl --ciphers ECDHE-ECDSA-AES128-SHA --tls-max 1.2 \
  GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://cloudkms.googleapis.com/v1/projects/my-project-id/locations/global/keyRings" --verbose

Jika kebijakan organisasi untuk 'my-project-id' dikonfigurasi untuk menolak TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA , setiap upaya untuk mengakses resource dengan cipher dalam project yang dibatasi kebijakan dalam contoh perintah ini akan gagal. Pesan error yang mirip dengan contoh berikut akan ditampilkan yang menjelaskan alasan kegagalan ini.

Request is disallowed by organization's constraints/gcp.restrictTLSCipherSuites
constraint for 'projects/my-project-id'.
Access to service cloudkms.googleapis.com attempted with a disallowed TLS Cipher
Suite: `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`.
To access this resource, please use an allowed TLS Cipher Suite.

Membuat kebijakan organisasi dalam mode uji coba

Kebijakan organisasi dalam mode uji coba adalah jenis kebijakan organisasi yang pelanggaran kebijakannya dicatat ke dalam log audit, tetapi tindakan yang melanggar tidak ditolak. Anda dapat membuat kebijakan organisasi dalam mode uji coba menggunakan batasan TLS Cipher Suite Restriction untuk memantau pengaruhnya terhadap organisasi Anda sebelum menerapkan kebijakan aktif. Untuk mengetahui informasi selengkapnya, lihat Membuat kebijakan organisasi dalam mode uji coba.

Layanan yang didukung

Layanan berikut mendukung cipher suite Restrict TLS. Batasan ini berlaku untuk semua variasi endpoint API, termasuk endpoint global, lokasi, dan regional. Lihat halaman Jenis endpoint API untuk mengetahui informasi selengkapnya.

Produk Endpoint API
Gateway API apigateway.googleapis.com
Kunci API apikeys.googleapis.com
Access Context Manager accesscontextmanager.googleapis.com
Apigee apigee.googleapis.com
Hub Apigee API apihub.googleapis.com
Apigee API Management API apim.googleapis.com
Apigee Connect API apigeeconnect.googleapis.com
Apigee portal API apigeeportal.googleapis.com
Apigee Registry API apigeeregistry.googleapis.com
App Config Manager API appconfigmanager.googleapis.com
Application Design Center designcenter.googleapis.com
Application Integration integrations.googleapis.com
Artifact Analysis containeranalysis.googleapis.com
ondemandscanning.googleapis.com
Artifact Registry artifactregistry.googleapis.com
Assured Open Source Software assuredoss.googleapis.com
Assured Workloads assuredworkloads.googleapis.com
Audit Manager auditmanager.googleapis.com
Authorization Toolkit API authztoolkit.googleapis.com
Batch batch.googleapis.com
Chrome Enterprise Premium beyondcorp.googleapis.com
BigLake biglake.googleapis.com
BigQuery bigquery.googleapis.com
Koneksi BigQuery bigqueryconnection.googleapis.com
Kebijakan Data BigQuery bigquerydatapolicy.googleapis.com
BigQuery Data Transfer bigquerydatatransfer.googleapis.com
BigQuery Migration bigquerymigration.googleapis.com
Reservasi BigQuery bigqueryreservation.googleapis.com
BigQuery Saved Query API bigquery-sq.googleapis.com
BigQuery Storage bigquerystorage.googleapis.com
Bigtable bigtable.googleapis.com
bigtableadmin.googleapis.com
Otorisasi Biner binaryauthorization.googleapis.com
Blockchain Analytics blockchain.googleapis.com
Blockchain Node Engine blockchainnodeengine.googleapis.com
Blockchain Validator Manager blockchainvalidatormanager.googleapis.com
Capacity Planner capacityplanner.googleapis.com
Certificate Authority Service privateca.googleapis.com
Certificate Manager certificatemanager.googleapis.com
Inventaris Aset Cloud cloudasset.googleapis.com
Cloud Build cloudbuild.googleapis.com
Cloud CDN compute.googleapis.com
Cloud Commerce Producer API cloudcommerceproducer.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Controls Partner API cloudcontrolspartner.googleapis.com
Cloud DNS dns.googleapis.com
Cloud Data Fusion datafusion.googleapis.com
Cloud Deployment Manager runtimeconfig.googleapis.com
deploymentmanager.googleapis.com
Cloud Domains domains.googleapis.com
Cloud Healthcare API healthcare.googleapis.com
Cloud Interconnect compute.googleapis.com
Cloud Intrusion Detection System ids.googleapis.com
Cloud Key Management Service cloudkms.googleapis.com
Cloud Life Sciences lifesciences.googleapis.com
Cloud Load Balancing compute.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Monitoring monitoring.googleapis.com
Cloud NAT compute.googleapis.com
Cloud Natural Language API language.googleapis.com
Cloud Next Generation Firewall Essentials compute.googleapis.com
networksecurity.googleapis.com
Cloud Next Generation Firewall Standard compute.googleapis.com
networksecurity.googleapis.com
Cloud OS Login API oslogin.googleapis.com
Cloud Router compute.googleapis.com
Cloud Run run.googleapis.com
Cloud SQL sqladmin.googleapis.com
Mesh Layanan Cloud meshconfig.googleapis.com
networksecurity.googleapis.com
Cloud Support API cloudsupport.googleapis.com
Cloud Tool Results API toolresults.googleapis.com
Cloud VPN compute.googleapis.com
Cloud Workstations workstations.googleapis.com
Commerce Agreement Publishing API commerceagreementpublishing.googleapis.com
Commerce Business Enablement API commercebusinessenablement.googleapis.com
Commerce Price Management API commercepricemanagement.googleapis.com
Compute Engine compute.googleapis.com
Confidential Computing confidentialcomputing.googleapis.com
Hubungkan gkeconnect.googleapis.com
Menghubungkan gateway connectgateway.googleapis.com
Contact Center AI Platform API contactcenteraiplatform.googleapis.com
Container Threat Detection containerthreatdetection.googleapis.com
Content Warehouse API contentwarehouse.googleapis.com
Continuous Validation API continuousvalidation.googleapis.com
Data Labeling API datalabeling.googleapis.com
Data Security Posture Management API dspm.googleapis.com
Database Migration Service datamigration.googleapis.com
Dataflow dataflow.googleapis.com
Dataproc di GDC dataprocgdc.googleapis.com
Google Distributed Cloud opsconfigmonitoring.googleapis.com
gdcvmmanager.googleapis.com
gdchardwaremanagement.googleapis.com
Distributed Cloud Edge Container API edgecontainer.googleapis.com
Distributed Cloud Edge Network API edgenetwork.googleapis.com
Enterprise Knowledge Graph enterpriseknowledgegraph.googleapis.com
Error Reporting clouderrorreporting.googleapis.com
Kontak Penting essentialcontacts.googleapis.com
Eventarc eventarc.googleapis.com
Filestore file.googleapis.com
Financial Services API financialservices.googleapis.com
Firebase App Hosting firebaseapphosting.googleapis.com
Firebase Data Connect firebasedataconnect.googleapis.com
Aturan Keamanan Firebase firebaserules.googleapis.com
GKE Dataplane Management gkedataplanemanagement.googleapis.com
GKE Enterprise Edge API anthosedge.googleapis.com
GKE Multi-Cloud gkemulticloud.googleapis.com
GKE On-Prem API gkeonprem.googleapis.com
Gemini for Google Cloud API cloudaicompanion.googleapis.com
Google Cloud API cloud.googleapis.com
Google Cloud Armor compute.googleapis.com
Google Cloud Migration Center migrationcenter.googleapis.com
Google Cloud Observability stackdriver.googleapis.com
Google Kubernetes Engine container.googleapis.com
configdelivery.googleapis.com
Google Security Operations SIEM chronicle.googleapis.com
chronicleservicemanager.googleapis.com
Google Security Operations Partner API chroniclepartner.googleapis.com
Add-on Google Workspace gsuiteaddons.googleapis.com
Identity and Access Management iam.googleapis.com
Identity-Aware Proxy iap.googleapis.com
Streaming Imersif stream.googleapis.com
Infrastructure Manager config.googleapis.com
Integration Connectors connectors.googleapis.com
KRM API Hosting krmapihosting.googleapis.com
Live Stream API livestream.googleapis.com
BigQuery Engine untuk Apache Flink managedflink.googleapis.com
Managed Kafka API managedkafka.googleapis.com
Media Asset Manager mediaasset.googleapis.com
Memorystore for Memcached memcache.googleapis.com
Memorystore for Redis redis.googleapis.com
Message Streams API messagestreams.googleapis.com
Microservices API microservices.googleapis.com
Model Armor modelarmor.googleapis.com
Network Connectivity Center networkconnectivity.googleapis.com
Network Intelligence Center networkmanagement.googleapis.com
Network Service Tiers compute.googleapis.com
Persistent Disk compute.googleapis.com
Oracle Database@Google Cloud oracledatabase.googleapis.com
Parallelstore parallelstore.googleapis.com
Penganalisis Kebijakan policyanalyzer.googleapis.com
Pemecah Masalah Kebijakan policytroubleshooter.googleapis.com
Peluncuran Progresif progressiverollout.googleapis.com
Pub/Sub pubsub.googleapis.com
Public Certificate Authority publicca.googleapis.com
Pemberi Rekomendasi recommender.googleapis.com
Remote Build Execution remotebuildexecution.googleapis.com
Retail API retail.googleapis.com
Cyber Insurance Hub riskmanager.googleapis.com
SaaS Service Management API saasservicemgmt.googleapis.com
SecLM API seclm.googleapis.com
Secret Manager secretmanager.googleapis.com
Security Command Center securitycenter.googleapis.com
securitycentermanagement.googleapis.com
securityposture.googleapis.com
Cloud Data Loss Prevention dlp.googleapis.com
Service Account Credentials API iamcredentials.googleapis.com
Direktori Layanan servicedirectory.googleapis.com
Service Networking servicenetworking.googleapis.com
Spanner spanner.googleapis.com
ID Pembicara speakerid.googleapis.com
Speech-to-Text speech.googleapis.com
Insight Penyimpanan storageinsights.googleapis.com
Storage Transfer Service storagebatchoperations.googleapis.com
Text-to-Speech texttospeech.googleapis.com
Timeseries Insights API timeseriesinsights.googleapis.com
Transcoder API transcoder.googleapis.com
Transfer Appliance transferappliance.googleapis.com
VM Manager osconfig.googleapis.com
Vertex AI API aiplatform.googleapis.com
Vertex AI Workbench notebooks.googleapis.com
Vertex AI in Firebase firebasevertexai.googleapis.com
Virtual Private Cloud (VPC) compute.googleapis.com
Video Search API cloudvideosearch.googleapis.com
Video Stitcher API videostitcher.googleapis.com
Web Risk webrisk.googleapis.com
Web Security Scanner websecurityscanner.googleapis.com
Workflows workflows.googleapis.com
Workload Certificate API workloadcertificate.googleapis.com

Layanan yang tidak didukung

Batasan kebijakan organisasi Batasi cipher suite 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 cipher suite TLS untuk layanan ini, gunakan Cloud Load Balancing bersama dengan kebijakan keamanan SSL.

Google Cloud preferensi cipher suite

Endpoint untuk layanan yang didukung memprioritaskan AES-256 daripada AES-128 daripada ChaCha20. Klien yang mendukung AES-256 akan berhasil melakukan negosiasi tanpa memerlukan perubahan konfigurasi apa pun.