本文說明如何建立及管理防火牆政策的安全標記。在防火牆政策中使用安全標記或將其繫結至資源之前,您必須先建立安全標記。
本文涵蓋下列主題:
- 授予適當權限,以便管理及使用代碼
- 建立標記鍵和值
- 建立使用安全標記的防火牆政策和規則
- 將安全標記繫結至虛擬機器 (VM) 執行個體
- 在對等互連網路中使用安全標記
如要進一步瞭解安全標記及其運作方式,請參閱「防火牆的安全標記」。
授予安全標記權限
機構管理員可以在機構層級授予角色,專案擁有者則可以在專案層級授予角色。
授予代碼管理員角色
代碼管理員角色 (roles/resourcemanager.tagAdmin) 可讓您建立、更新及刪除安全代碼。
控制台
如要授予使用者標記管理員角色 (roles/resourcemanager.tagAdmin),請按照下列步驟操作:
前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
在專案選取器清單中,選取要授予角色的機構或專案。
按一下 「授予存取權」。
在「New principals」(新增主體) 欄位中,輸入使用者的電子郵件地址。 例如:
my-user@example.com。在「Select a role」(選取角色) 清單中,於「Filter」(篩選器) 欄位輸入「Tag」(標記),然後選取「Tag administrator」(標記管理員)。
按一下 [儲存]。
gcloud
如要將標記管理員角色 (roles/resourcemanager.tagAdmin) 授予機構 IAM 政策中的 IAM 主體,請使用 gcloud organizations add-iam-policy-binding 指令:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:EMAIL_ADDRESS \
--role=roles/resourcemanager.tagAdmin
更改下列內容:
ORGANIZATION_ID:貴機構的 IDEMAIL_ADDRESS:使用者的電子郵件地址
授予標記使用者角色
標記使用者角色 (roles/resourcemanager.tagUser) 可讓您存取安全標記清單,並管理標記與資源的關聯。
控制台
如要將標記使用者角色 (roles/resourcemanager.tagUser) 授予使用者,請按照下列步驟操作:
前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
在專案選取器清單中,選取要授予角色的機構或專案。
按一下 「授予存取權」。
在「New principals」(新增主體) 欄位中,輸入使用者的電子郵件地址。 例如:
my-user@example.com。在「Select a role」(請選擇角色) 清單中,於「Filter」(篩選器) 欄位輸入「Tag」(標記),然後選取「Tag user」(標記使用者)。
選用:為角色新增條件。
按一下 [儲存]。
gcloud
如要將特定標記的標記使用者角色 (
roles/resourcemanager.tagUser) 授予使用者,請使用gcloud resource-manager tags keys add-iam-policy-binding指令:gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser更改下列內容:
ORGANIZATION_ID:貴機構的 IDTAG_KEY:安全標記金鑰EMAIL_ADDRESS:使用者的電子郵件地址
如要將標記使用者角色 (
roles/resourcemanager.tagUser) 授予 IAM 主體,讓他們可以使用機構中每個標記鍵的所有標記值,請使用gcloud organizations add-iam-policy-binding指令:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser更改下列內容:
ORGANIZATION_ID:貴機構的 IDEMAIL_ADDRESS:使用者的電子郵件地址
如要將標記使用者角色 (
roles/resourcemanager.tagUser) 授予 IAM 主體,讓他們可以使用父項為機構的標記鍵的特定標記值,請使用gcloud resource-manager tags values add-iam-policy-binding指令:gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser更改下列內容:
ORGANIZATION_ID:貴機構的 IDTAG_KEY:安全標記金鑰TAG_VALUE:安全標記值EMAIL_ADDRESS:使用者的電子郵件地址
如要將標記使用者角色 (
roles/resourcemanager.tagUser) 授予 IAM 主體,讓他們可以使用專案中每個標記鍵的所有標記值,請使用gcloud projects add-iam-policy-binding指令:gcloud projects add-iam-policy-binding PROJECT_NAME \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser更改下列內容:
PROJECT_NAME:專案名稱EMAIL_ADDRESS:使用者的電子郵件地址
管理安全標記的自訂角色
代碼管理員角色 (roles/resourcemanager.tagAdmin) 可讓您建立、更新及刪除安全代碼。如需其中幾項功能,您可以建立具備相關權限的自訂身分與存取權管理 (IAM) 角色,然後將新角色授予目標使用者。如需相關權限清單,請參閱「IAM 角色」。
防火牆政策中使用的安全標記必須指定 GCE_FIREWALL 用途。雖然網路功能必須使用 GCE_FIREWALL 目的的安全標記,但您也可以將安全標記用於其他動作。
建立安全標記鍵和值
將安全標記與防火牆政策建立關聯前,請先建立安全標記鍵和值。
標籤鍵建立後就無法變更,且在同一命名空間中不得重複。
控制台
如要建立安全標記鍵和值,請按照下列步驟操作:
前往 Google Cloud 控制台的「標記」頁面。
在專案選擇器清單中,選取要建立標記鍵的機構或專案。
按一下「建立」。
在「標記鍵」欄位中,輸入標記鍵的顯示名稱。這會成為代碼命名空間名稱的一部分。
選用:在「標記鍵說明」欄位中,輸入標記鍵的說明。
在「標記用途」中,選取「適用於 Cloud NGFW」。
如要建立安全標記,請執行下列任一操作:
如果目的資料指定網路,請選取「將範圍限制於單一網路」。
如果目的資料指定了機構,請清除「將範圍限制於單一網路」。
在「網路選取」分頁中,選取要建立安全代碼金鑰的機構或專案。
在「Network」(網路) 清單中選取網路。
如要為這個鍵新增標籤值,請為要建立的每個標籤值點選「新增值」。
在「標記值」欄位中,輸入標記值的顯示名稱。這會成為代碼命名空間名稱的一部分。
選用:在「標記值說明」欄位中,輸入標記值的說明。
新增完標記值後,請按一下「建立標記鍵」。
gcloud
取得必要權限後,請在機構或專案層級建立安全標記金鑰。
如要為機構建立安全代碼金鑰,請使用
gcloud resource-manager tags keys create指令:gcloud resource-manager tags keys create TAG_KEY \ --parent organizations/ORGANIZATION_ID \ --purpose GCE_FIREWALL \ --purpose-data organization=auto更改下列內容:
TAG_KEY:安全標記金鑰ORGANIZATION_ID:貴機構的 ID
如要為父項專案或機構建立安全標記鍵,且該專案或機構的目的資料會識別單一虛擬私有雲網路,請使用
gcloud resource-manager tags keys create指令:gcloud resource-manager tags keys create TAG_KEY \ --parent organizations/ORGANIZATION_ID \ --purpose GCE_FIREWALL \ --purpose-data network=PROJECT_ID/NETWORK更改下列內容:
TAG_KEY:安全標記金鑰ORGANIZATION_ID:貴機構的 IDPROJECT_ID:專案 IDNETWORK:網路名稱
如要將相關安全標記值新增至安全標記鍵,請使用
gcloud resource-manager tags values create指令:gcloud resource-manager tags values create TAG_VALUE \ --parent ORGANIZATION_ID/TAG_KEY更改下列內容:
TAG_VALUE:要指派給安全代碼鍵的值ORGANIZATION_ID:貴機構的 IDTAG_KEY:安全標記金鑰
如要新增多個值,請多次執行這項指令。請確保新增至安全代碼鍵的每個安全代碼值都是唯一的。
建立防火牆政策
建立安全標記鍵後,即可在防火牆政策中使用。您可以在階層式防火牆政策或網路防火牆政策中,使用機構層級定義的安全標記鍵。您只能在網路防火牆政策中使用網路層級定義的安全標記。
建立階層式防火牆政策
您可以在機構階層的任何資源 (機構或資料夾) 下建立政策。
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在專案選取器清單中,選取您的機構 ID 或機構內的資料夾。
按一下「建立防火牆政策」。
在「Policy name」(政策名稱) 欄位中輸入名稱。
如要為政策建立規則,請依序點按「繼續」>「建立防火牆規則」。
詳情請參閱「使用安全標記建立階層式防火牆政策規則」。
如要將政策與資源建立關聯,請依序點選「繼續」>「新增」。
詳情請參閱「將政策與機構或資料夾建立關聯」。
依序點選「繼續」>「建立」。
gcloud
如要建立階層式防火牆政策,請使用 gcloud compute firewall-policies create 指令:
gcloud compute firewall-policies create \
[--organization ORGANIZATION_ID] | [--folder FOLDER_ID] \
--short-name SHORT_NAME
更改下列內容:
ORGANIZATION_ID:貴機構的 ID如果您要在機構層級建立政策,請指定這個 ID。這個 ID 只會指出政策的位置,不會自動將政策與機構資源建立關聯。
FOLDER_ID:資料夾的 ID如要在特定資料夾中建立政策,請指定這組 ID。這個 ID 只會指出政策的位置,不會自動將政策與該資料夾建立關聯。
SHORT_NAME:政策名稱使用 Google Cloud CLI 建立的政策會有兩個名稱:系統產生的名稱和您提供的簡短名稱。使用 Google Cloud CLI 更新現有政策時,您可以提供系統產生的名稱,或是簡短名稱和機構 ID。使用 API 更新政策時,必須提供系統產生的名稱。
建立全域網路防火牆政策
建立安全標記後,您可以在全域網路防火牆政策的規則中使用該標記。
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在專案選取器清單中,選取機構內的專案。
按一下「建立防火牆政策」。
在「Policy name」(政策名稱) 欄位中輸入名稱。
在「Deployment scope」(部署範圍) 部分,選取「Global」(全域)。
如要為政策建立規則,請依序點按「繼續」>「建立防火牆規則」。
詳情請參閱「建立含有安全標記的網路防火牆政策規則」。
如要將政策與聯播網建立關聯,請依序點選「繼續」>「建立關聯」。
詳情請參閱「將政策與網路建立關聯」。
依序點選「繼續」>「建立」。
gcloud
如要建立網路防火牆政策,請使用 gcloud compute network-firewall-policies create 指令:
gcloud compute network-firewall-policies create \
NETWORK_FIREWALL_POLICY_NAME \
--description DESCRIPTION \
--global
更改下列內容:
NETWORK_FIREWALL_POLICY_NAME:政策名稱DESCRIPTION:政策說明
使用安全標記建立防火牆政策規則
建立安全標記和防火牆政策後,您可以建立防火牆政策規則,指定來源標記值和目標標記值,允許來源標記和目的地標記的 VM 之間傳輸所選流量。
使用安全標記建立階層式防火牆政策規則
只有在建立階層式防火牆政策後,才能使用特定來源和目標鍵/值建立階層式防火牆政策規則。詳情請參閱「建立階層式防火牆政策」。
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在專案選取器清單中,選取機構 ID 或包含政策的資料夾。
按一下政策名稱,然後點選「建立防火牆規則」。
輸入規則的優先順序。
指定車流方向。
在「相符時執行的動作」中選擇設定。
針對「記錄」,選擇「開啟」或「關閉」。
在「目標」中選取「安全標記」,然後按一下「選取標記的範圍」。
在「選取資源」頁面中,選取要建立安全標記的機構或專案。
輸入要套用規則的鍵/值組合。
如要新增更多鍵/值組合,請按一下「新增代碼」。
在「來源」部分,針對「標記」,按一下「選取標記的範圍」。
在「選取資源」頁面中,選取含有安全代碼金鑰的機構或資料夾。
點選「建立」。
gcloud
如要建立階層式防火牆政策規則,請使用 gcloud compute firewall-policies rules create 指令:
gcloud compute firewall-policies rules create \
--firewall-policy FIREWALL_POLICY_NAME \
--src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
--target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
--direction DIRECTION \
--action ACTION \
--layer4-configs tcp:PORT
更改下列內容:
FIREWALL_POLICY_NAME:階層式防火牆政策的名稱ORGANIZATION_ID:貴機構的 IDTAG_KEY:安全標記金鑰TAG_VALUE:要指派給安全代碼鍵的值DIRECTION:表示規則是ingress還是egress規則ACTION:下列其中一項動作:allow:允許符合規則的連線deny:拒絕符合規則的連線goto_next:將連線評估結果傳遞至階層中的下一個層級,也就是資料夾或網路
PORT:存取資源的通訊埠編號
建立含有安全標記的網路防火牆政策規則
您可以建立網路防火牆政策規則,指定來源標記值和目標標記值,允許來源標記和目的地標記的 VM 之間傳輸所選流量。詳情請參閱「建立全域網路防火牆政策」。
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在專案選取器清單中,選取專案或包含政策的資料夾。
按一下政策名稱,然後點選「建立防火牆規則」。
輸入規則的優先順序。
指定車流方向。
在「相符時執行的動作」中選擇設定。
針對「記錄」,選擇「開啟」或「關閉」。
在「目標」中選取「安全標記」,然後按一下「選取標記的範圍」。
在「選取資源」頁面中,選取要建立安全標記的機構或專案。
輸入要套用規則的鍵/值組合。
如要新增更多鍵/值組合,請按一下「新增代碼」。
在「來源」部分,針對「標記」,按一下「選取標記的範圍」。
在「選取資源」頁面中,選取含有安全代碼金鑰的機構或資料夾。
點選「建立」。
gcloud
如要建立網路防火牆政策規則,請使用 gcloud compute network-firewall-policies rules create 指令:
gcloud compute network-firewall-policies rules create \
--firewall-policy FIREWALL_POLICY_NAME \
--src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
--target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
--direction DIRECTION \
--action ACTION \
--layer4-configs tcp:PORT \
--global-firewall-policy
更改下列內容:
FIREWALL_POLICY_NAME:新網路全域網路防火牆政策的名稱ORGANIZATION_ID:貴機構的 IDTAG_KEY:標記鍵TAG_VALUE:要指派給標記鍵的值DIRECTION:指出規則是ingress還是egress規則ACTION:下列其中一項動作:allow:允許符合規則的連線deny:拒絕符合規則的連線goto_next:將連線評估結果傳遞至階層中的下一個層級,也就是資料夾或網路
PORT:存取資源的通訊埠編號
繫結安全標記
如要瞭解網路防火牆政策和階層式防火牆政策的安全標記繫結運作方式,請參閱「繫結安全標記」。
事前準備
確認您具備代碼管理員角色 (
roles/resourcemanager.tagAdmin)。代碼管理員可將安全代碼繫結至個別 VM 執行個體。如果您沒有代碼管理員角色 (
roles/resourcemanager.tagAdmin),可以請機構管理員授予代碼使用者角色 (roles/resourcemanager.tagUser)。如需更多資訊,請參閱「授予權限來保護代碼」。確認您在標記繫結的資源上擁有「標記使用者」角色 (
roles/resourcemanager.tagUser)。如要進一步瞭解如何為要繫結代碼的資源授予代碼使用者角色 (roles/resourcemanager.tagUser),請參閱「授予權限來保護代碼」。請確認您已建立安全標記鍵和值,以及含有安全標記的防火牆政策規則。
確認您已建立 VM 執行個體。詳情請參閱「建立及啟動 Compute Engine 執行個體」。
將安全標記繫結至 VM 執行個體
您可以將現有標記附加至特定資源。建立資源後,請按照下列操作說明為該資源附加標記。
控制台
如要將安全標記繫結至 VM 執行個體,請按照下列步驟操作:
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取您的專案並點選 [繼續]。
在「Name」(名稱) 欄中,按一下要新增標記的 VM 名稱。
在「VM 執行個體詳細資料」頁面上,完成下列步驟:
- 按一下 [編輯]。
- 在「基本資訊」部分,按一下「管理標記」,然後為執行個體新增所需標記。
- 按一下 [儲存]。
gcloud
如要瞭解如何使用這些標記,請參閱 Resource Manager 說明文件中的「將標記附加至資源」。
舉例來說,下列指令會將標記附加至 VM:
gcloud resource-manager tags bindings create \
--location=LOCATION_NAME \
--tag-value=tagValues/TAGVALUE_ID \
--parent=FULL_RESOURCE_NAME
更改下列內容:
LOCATION_NAME:執行個體所在的區域。如果是全域資源,請省略--location旗標。TAGVALUE_ID:標記值的數值 IDFULL_RESOURCE_NAME:目標資源的完整資源名稱。在本範例中,VM 執行個體的完整資源名稱為://compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID
更改下列內容:
PROJECT_NUMBER:包含目標資源的專案數值 IDZONE:包含執行個體的可用區INSTANCE_ID:VM 執行個體 ID
REST
如要將標記附加至資源,請先建立標記繫結的 JSON 表示法,其中包含標記值的永久 ID 或命名空間名稱,以及資源的永久 ID。如要進一步瞭解標記繫結的格式,請參閱標記繫結參考資料。
如要將標記附加至區域資源 (例如 VM 執行個體),請使用 tagBindings.create 方法,並搭配資源所在的區域端點。例如:
POST https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings
要求主體可以是下列其中一個選項:
{
"parent": "FULL_RESOURCE_NAME",
"tagValue": "tagValue/TAGVALUE_ID"
}
{
"parent": "FULL_RESOURCE_NAME",
"tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME
}更改下列內容:
LOCATION_NAME:資源的可用區或區域位置。如果是 VM 執行個體,請指定可用區。如果是全域資源,請省略LOCATION_NAME-參數FULL_RESOURCE_NAME:目標資源的完整資源名稱。在本範例中,VM 執行個體的完整資源名稱為://compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID
更改下列內容:
PROJECT_NUMBER:包含目標資源的專案數值 IDZONE:包含執行個體的可用區INSTANCE_ID:VM 執行個體 ID
TAGVALUE_ID:附加的標記值永久 ID,例如:4567890123TAGVALUE_NAMESPACED_NAME:附加的標記值命名空間名稱,格式如下:parentNamespace/tagKeyShortName/tagValueShortName
在建立 VM 時,為 VM 執行個體新增安全標記
在某些情況下,您可能想在建立資源時標記資源,而不是在資源建立後標記。
控制台
視資源類型而定,確切步驟可能會有所不同。以下步驟適用於 VM:
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取您的專案並點選 [繼續]。
按一下「Create instance」(建立執行個體)。「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。
在導覽選單中,按一下「進階」。在隨即顯示的「Advanced」(進階) 窗格中,執行下列操作:
- 展開「管理標記和標籤」部分。
- 按一下「新增標記」。
- 在隨即開啟的「Tags」(標記) 窗格中,按照操作說明將標記新增至執行個體。
- 按一下 [儲存]。
指定執行個體的其他設定選項。詳情請參閱「建立執行個體時的設定選項」。
如要建立並啟動 VM,請按一下 [Create] (建立)。
gcloud
如要在建立資源時附加標記,請使用相應的 create 指令新增 --resource-manager-tags 旗標。舉例來說,如要將標記附加至 VM,請使用下列指令:
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID更改下列內容:
INSTANCE_NAME:VM 執行個體的名稱ZONE:包含 VM 執行個體的可用區TAGKEY_ID:標記鍵編號數值 IDTAGVALUE_ID:附加標記值的永久數字 ID,例如:4567890123
如要指定多個標記,請以半形逗號分隔,例如 TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2。
REST
請對以下網址提出 POST 要求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
加入下列 JSON 要求主體:
{
"name": INSTANCE_NAME,
"params": {
"resourceManagerTags": {
"tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID",
},
}
// other fields omitted
}更改下列內容:
INSTANCE_NAME:VM 執行個體的名稱TAGKEY_ID:標記鍵編號數值 IDTAGVALUE_ID:附加標記值的永久數字 ID,例如:4567890123
在對等互連網路中使用安全標記
您可以在虛擬私有雲網路對等互連中使用安全標記。假設連線的網路為 server 和 client。如要在兩個已連結的Google Cloud 聯播網中使用安全代碼,請依指定順序完成下列工作。
將代碼管理員角色 (
roles/resourcemanager.tagAdmin) 指派給使用者。機構管理員會在機構層級授予使用者「標記管理員」角色 (roles/resourcemanager.tagAdmin),專案擁有者則會在專案層級授予「標記管理員」角色 (roles/resourcemanager.tagAdmin)。詳情請參閱「授予安全代碼權限」。在
server聯播網中建立安全標記鍵和值。 如要瞭解如何建立安全標記鍵和值,請參閱「建立安全標記鍵和值」。在
server網路中建立防火牆政策規則,允許來自上一個步驟建立的安全標記的輸入流量。詳情請參閱「使用安全標記建立防火牆政策規則」。授予
client使用者必要權限,確保兩個虛擬私有雲網路中的標記安全無虞。詳情請參閱「授予安全代碼權限」。在
client網路中,將安全標記繫結至 VM 執行個體。 詳情請參閱「繫結安全標記」。 現在clientVM 會開啟與serverVM 的連線。伺服器的防火牆政策規則允許流量,因為流量來自與這些規則綁定的安全標記。這項規則也允許回應封包,因為輸出流量預設為允許。