角色和權限

本頁面說明執行 Connectivity Tests 時所需的 Identity and Access Management (IAM) 角色和權���。

您可以授予使用者或服務帳戶權限或預先定義的角色,也可以建立使用您指定權限的自訂角色。

IAM 權限會使用前置字串 networkmanagement

如要取得或設定 IAM 政策,或透過 Network Management API 測試 IAM 權限,請參閱「管理存取權政策」。

角色

本節將說明如何在授予 Connectivity Tests 權限時,使用預先定義和自訂角色。

如要瞭解各項權限的說明,請參閱權限表格

如要進一步瞭解專案角色和 Google Cloud 資源,請參閱下列說明文件:

預先定義的角色

Connectivity Tests 有下列預先定義的角色:

  • networkmanagement.admin 具有在測試資源上執行所有作業的權限。
  • networkmanagement.viewer 具有列出或取得特定測試資源的權限。

下表列出預先定義的角色,以及適用於各角色的權限。

Role Permissions

(roles/networkmanagement.admin)

Full access to Network Management resources.

Lowest-level resources where you can grant this role:

  • Project

networkmanagement.*

  • networkmanagement.connectivitytests.create
  • networkmanagement.connectivitytests.delete
  • networkmanagement.connectivitytests.get
  • networkmanagement.connectivitytests.getIamPolicy
  • networkmanagement.connectivitytests.list
  • networkmanagement.connectivitytests.rerun
  • networkmanagement.connectivitytests.setIamPolicy
  • networkmanagement.connectivitytests.update
  • networkmanagement.locations.get
  • networkmanagement.locations.list
  • networkmanagement.operations.cancel
  • networkmanagement.operations.delete
  • networkmanagement.operations.get
  • networkmanagement.operations.list
  • networkmanagement.vpcflowlogsconfigs.create
  • networkmanagement.vpcflowlogsconfigs.delete
  • networkmanagement.vpcflowlogsconfigs.get
  • networkmanagement.vpcflowlogsconfigs.list
  • networkmanagement.vpcflowlogsconfigs.update

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/networkmanagement.serviceAgent)

Grants the GCP Network Management API the authority to complete analysis based on network configurations from Compute Engine and Container Engine.

cloudsql.instances.get

cloudsql.instances.list

compute.addresses.get

compute.addresses.list

compute.backendServices.get

compute.backendServices.list

compute.externalVpnGateways.get

compute.externalVpnGateways.list

compute.firewalls.get

compute.firewalls.list

compute.forwardingRules.get

compute.forwardingRules.list

compute.globalAddresses.get

compute.globalAddresses.list

compute.globalForwardingRules.get

compute.globalForwardingRules.list

compute.globalNetworkEndpointGroups.get

compute.globalNetworkEndpointGroups.list

compute.healthChecks.get

compute.healthChecks.list

compute.httpHealthChecks.get

compute.httpHealthChecks.list

compute.httpsHealthChecks.get

compute.httpsHealthChecks.list

compute.instanceGroups.get

compute.instanceGroups.list

compute.instances.get

compute.instances.list

compute.networkEndpointGroups.get

compute.networkEndpointGroups.list

compute.networks.get

compute.networks.getEffectiveFirewalls

compute.networks.list

compute.networks.listPeeringRoutes

compute.packetMirrorings.get

compute.packetMirrorings.list

compute.regionBackendServices.get

compute.regionBackendServices.list

compute.regionHealthChecks.get

compute.regionHealthChecks.list

compute.regionNetworkEndpointGroups.get

compute.regionNetworkEndpointGroups.list

compute.regionTargetHttpProxies.get

compute.regionTargetHttpProxies.list

compute.regionTargetHttpsProxies.get

compute.regionTargetHttpsProxies.list

compute.regionTargetTcpProxies.get

compute.regionTargetTcpProxies.list

compute.regionUrlMaps.get

compute.regionUrlMaps.list

compute.routers.get

compute.routers.list

compute.routes.get

compute.routes.list

compute.subnetworks.get

compute.subnetworks.list

compute.targetGrpcProxies.get

compute.targetGrpcProxies.list

compute.targetHttpProxies.get

compute.targetHttpProxies.list

compute.targetHttpsProxies.get

compute.targetHttpsProxies.list

compute.targetInstances.get

compute.targetInstances.list

compute.targetPools.get

compute.targetPools.list

compute.targetSslProxies.get

compute.targetSslProxies.list

compute.targetTcpProxies.get

compute.targetTcpProxies.list

compute.targetVpnGateways.get

compute.targetVpnGateways.list

compute.urlMaps.get

compute.urlMaps.list

compute.vpnGateways.get

compute.vpnGateways.list

compute.vpnTunnels.get

compute.vpnTunnels.list

container.clusters.get

container.clusters.list

container.nodes.get

container.nodes.list

(roles/networkmanagement.viewer)

Read-only access to Network Management resources.

Lowest-level resources where you can grant this role:

  • Project

networkmanagement.connectivitytests.get

networkmanagement.connectivitytests.getIamPolicy

networkmanagement.connectivitytests.list

networkmanagement.locations.*

  • networkmanagement.locations.get
  • networkmanagement.locations.list

networkmanagement.operations.get

networkmanagement.operations.list

networkmanagement.vpcflowlogsconfigs.get

networkmanagement.vpcflowlogsconfigs.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

自訂角色

您可以從「連線測試」的權限表格中選取權限清單,建立自訂角色。

舉例來說,您可以建立名為 reachabilityUsers 的角色,並授予該角色 listgetrerun 權限。具備這個角色的使用者可以重新執行現有的連線測試,並根據最新的網路設定查看更新的測試結果。

專案角色

您可以使用專案角色設定 Google Cloud 資源的權限。由於連線測試必須具備對虛擬私有雲 (VPC) 網路中Google Cloud 資源設定的��取權,才能執行測試,因此您必須至少將 Compute Network Viewer 角色 (roles/compute.networkViewer) 授予對這些資源執行測試的使用者或服務帳戶。您也可以為特定使用者建立自訂角色,或暫時授權與上述角色相關聯的權限。

或者,您也可以為 Google Cloud 專案授予使用者或服務帳戶下列其中一個預先定義的角色:

權限

本節將說明連線能力測試的權限,以及在測試不同類型的網路設定時如何使用這些權限。

Connectivity Tests 權限

連線測試具備下列身分與存取權管理權限。

權限 說明
networkmanagement.connectivitytests.list 列出指定專案中設定的所有測試。
networkmanagement.connectivitytests.get 取得特定測試的詳細資料。
networkmanagement.connectivitytests.create 使用您為測試指定的資料,在指定專案中建立新測試物件。這項權限包括更新、重新執行或刪除測試的權限。
networkmanagement.connectivitytests.update 更新現有測試中一或多個欄位。
networkmanagement.connectivitytests.delete 刪除指定的測試。
networkmanagement.connectivitytests.rerun 針對指定測試重新執行一次性可及性驗證。

如果您沒有建立或更新測試的權限,對應的按鈕就會處於停用狀態。包括「Create Connectivity Test」按鈕,以及「Connectivity Test Details」頁面上的「Edit」按鈕。在每個情況下,當您將游標懸停在未啟用的按鈕上時,Connectivity Tests 會顯示一則訊息,說明您需要哪些權限。

執行測試所需的權限

您必須具備下列角色和權限,才能執行測試:

  • 在包含連線測試資源的專案中,具備 networkmanagement.connectivitytests.create 權限 (或 networkmanagement.connectivitytests.rerun)。
  • Compute 網路檢視者角色 (roles/compute.networkViewer) 或舊版檢視者角色 (roles/viewer) 指派給追蹤路徑中包含的所有專案。

請注意下列不同類型連線選項的其他注意事項。

虛擬私有雲網路對等互連、Network Connectivity Center 或 Cloud VPN 連線

如果追蹤路徑包含虛擬私有雲網路對等互連、Network Connectivity Center 或 Cloud VPN 連線至其他專案中的網路,則只有在您擁有該專案的權限時,系統才會模擬該網路中的封包路徑。否則會傳回不完整的測試結果 (例如,追蹤記錄結束於 Forward 最終狀態)。

共用虛擬私有雲專案

如果來源或目的地端點 (例如虛擬機器 (VM) 執行個體) 使用共用虛擬私有雲,您必須具備主機和服務專案的存取權。

  • 如果您有權存取主機和服務專案,追蹤記錄資訊就會包含所有相關資源的詳細資料。
  • 如果您沒有存取其中一個專案的權限,系統就會在追蹤記錄中隱藏該專案中定義的資源相關資訊。系統會顯示權限錯誤。
範例
  • 您可以存取 VM 執行個體專案 (服務專案),但無法存取其網路專案 (主專案)。如果您以這個 VM 執行個體做為來源 (透過名稱指定) 執行測試,與主機專案相關聯的任何步驟 (例如套用防火牆或路由) 都會隱藏。

  • 您可以存取網路專案 (主專案),但無法存取 VM 專案 (服務專案)。如果您以此 VM 執行個體做為來源 (透過其 IP 位址指定) 執行測試,則與服務專案相關聯的任何步驟 (例如含有 VM 執行個體詳細資料的步驟) 都會隱藏。

Private Service Connect 發布的服務

如果封包傳送至 Private Service Connect 發布的服務 (透過 Private Service Connect 端點或 Private Service Connect 後端),則只有在您有存取權時,才會顯示供應者專案中的追蹤記錄。否則,追蹤記錄會以一般最終狀態結束,例如封包已提交至 PSC 供應端專案封包已在 PSC 供應端專案中捨棄

Google 代管服務

如果封包是從 Google 代管服務 (例如 Cloud SQL) 相關聯的 Google 代管網路傳送或傳送至該網路,則不會顯示 Google 代管專案中的步驟。系統會顯示一般起始步驟或最後步驟。

Google Cloud 資源的公開 IP 位址

如果您指定的公開 IP 位址是指派給某個專案資源的測試來源或目的地,但您沒有存取該專案的權限 (其中定義了含有這個位址的資源),系統就會將這個 IP 位址視為網際網路 IP 位址。系統不會顯示任何有關底層資源或封包路徑的詳細資料。

查看測試結果的權限

如要查看測試結果,請注意下列事項:

  • 如要查看 2024 年 10 月後建立或更新的測試結果,您只需要查看測試資源 (networkmanagement.connectivitytests.get) 的權限,不需要追蹤路徑中所含資源和專案的權限。
  • 如要查看 2024 年 10 月前執行的測試結果,您必須具備 Compute Network Viewer 角色,或是追蹤路徑中所有專案的舊版 Viewer 角色 (roles/viewer)。

階層式防火牆政策

追蹤記錄可能包含您沒有權限查看的階層式防火牆政策。不過,即使您沒有權限查看政策詳細資料,仍可查看適用於 VPC 網路的政策規則。詳情請參閱「階層式防火牆政策」總覽中的「IAM 角色」

後續步驟