限制 TLS 版本
本頁說明如何拒絕使用傳輸層安全標準 (TLS) 1.0 或 1.1 發出的要求,防止存取 Google Cloud 資源。
總覽
Google Cloud 支援多個 TLS 通訊協定版本。為符合法規要求,您可能會想拒絕使用舊版 TLS 的用戶端提出的握手要求。如要這麼做,請使用 gcp.restrictTLSVersion
機構政策限制。
gcp.restrictTLSVersion
限制可套用至資源階層中的機構、資料夾或專案。這項限制使用拒絕清單,拒絕明確的值,並允許所有其他值。如果您嘗試使用允許清單,就會發生錯誤。
由於組織政策階層評估的行為,TLS 版本限制會套用至指定的資源節點及其所有子項。舉例來說,如果您拒絕機構使用 TLS 1.0 版,該機構的所有資料夾和專案 (子項) 也會拒絕使用。
如要覆寫沿用的 TLS 版本限制,請更新子項資源的機構政策。舉例來說,如果機構政策在機構層級禁止使用 TLS 1.0,您可以在子資料夾中設定個別的機構政策,移除該資料夾的限制。如果資料夾有任何子項,由於政策繼承,資料夾的政策也會套用至每個子項資源。
事前準備
- 如要設定、變更或刪除機構政策,您必須先獲得機構政策管理員 (
roles/orgpolicy.policyAdmin
) 身分與存取權管理 (IAM) 角色。
限制 TLS 版本
如要限制一或多個 TLS 版本,請完成下列步驟:
主控台
在 Google Cloud 控制台中開啟「Organization policies」(機構政策) 頁面。
選取頁面頂端的專案挑選器。
在專案選擇工具中,選取要設定機構政策的資源。
在「Organization policies」(機構政策) 頁面上的清單中,選取「Restrict TLS Version」(限制 TLS 版本) 限制。
如要更新資源的機構政策,請按一下「編輯」。
在「Edit」(編輯) 頁面選取 [Customize] (自訂)。
在「Policy enforcement」(強制執行) 下方,選取強制執行選項:
如要合併與評估機構政策,請選取「與上層合併」。如要進一步瞭解繼承和資源階層,請參閱「瞭解階層評估」。
如要覆寫從父項資源繼承的政策,請選取「取代」。
按一下 [新增規則]。
在「Policy values」(政策值) 下,預設值為「Deny all」(全部拒絕)。請改選「自訂」。
在「政策類型」下方,選取「拒絕」。
在「自訂值」下方,輸入要拒絕的 TLS 版本。以下為有效的自訂值:
TLS_VERSION_1
for TLS 1.0TLS_VERSION_1_1
,適用於 TLS 1.1
如要限制多個 TLS 版本,請按一下「新增值」,然後在額外欄位中輸入值。
如要完成並套用機構政策,請按一下 [Save] (儲存)。
gcloud
使用 gcloud org-policies set-policy
指令在資源上設定機構政策:
gcloud org-policies set-policy POLICY_PATH
POLICY_PATH 是組織政策檔案的完整路徑,如果使用 YAML 格式,應如下所示:
name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictTLSVersion
spec:
rules:
- values:
deniedValues:
- TLS_VERSION_1
- TLS_VERSION_1_1
請替換成下列內容:
RESOURCE_TYPE
為organizations
、folders
或projects
。RESOURCE_ID
是機構 ID、資料夾 ID、專案 ID 或專案編號,視RESOURCE_TYPE
中指定的資源類型而定。
執行下列指令,確認政策已套用:
gcloud org-policies describe gcp.restrictTLSVersion --RESOURCE_TYPE=RESOURCE_ID --effective
請替換成下列內容:
RESOURCE_TYPE
為organization
、folder
或project
。RESOURCE_ID
是機構 ID、資料夾 ID、專案 ID 或專案編號,視RESOURCE_TYPE
中指定的資源類型而定。
測試政策
您可以針對任何適用範圍內的服務,測試 TLS 版本限制政策限制。下列範例 curl 指令會驗證 Cloud Storage bucket 的 TLS 版本限制。
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
--tlsv
和值之間沒有空格。例如:--tlsv1.1
請替換成下列內容:
GCS_BUCKET_NAME
是專案中的 Cloud Storage 值區名稱,例如mybucketname
。TLS_VERSION
是傳輸層安全標準 (TLS) 版本,例如在設定的政策中遭到拒絕的1.0
或1.1
。
下列 curl
要求範例顯示 GCS_BUCKET_NAME 設為 mybucketname
,而 TLS_VERSION 設為 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
如果機構政策設定為限制 TLS_VERSION_X
,則任何嘗試存取政策限制專案中 TLS_VERSION_X
的資源,都會失敗 (如本範例指令所示)。系統會傳回錯誤訊息,說明失敗原因。
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`
這項輸出內容包含下列值:
PROJECT_NUMBER
:託管先前指令中參照資源的專案編號。SERVICE_NAME
:受 TLS 限制政策封鎖的適用範圍內服務名稱。
支援的服務
凡是標頭由 Google Front End (GFE) 簽署的 Google Cloud 資源 API,都支援 TLS 版本限制。
不支援的服務
下列服務不適用於 TLS 版本限制機構政策限制:
- Apigee
- App Engine (
*.appspot.com
) - Cloud Run functions (
*.cloudfunctions.net
), - Cloud Run (
*.run.app
) - Private Service Connect
- 自訂網域
如要限制這些服務的 TLS 版本,請搭配使用 Cloud Load Balancing 和 SSL 政策。您也可以使用預先定義的 constraints/compute.requireSslPolicy
限制,以及 SSL 政策的自訂限制,為負載平衡器強制執行 TLS 版本和加密套件限制。
後續步驟
- 瞭解每個控管套件支援哪些產品。