角色和權限

本頁面說明執行連線測試時所需的 Identity and Access Management (IAM) 角色和權限。

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

IAM 權限的前置字元為 networkmanagement

如要使用 Network Management API 取得或設定 IAM 政策,或是測試 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.topologygraphs.read
  • 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.topologygraphs.read

networkmanagement.vpcflowlogsconfigs.get

networkmanagement.vpcflowlogsconfigs.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

自訂角色

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

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

專案角色

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

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

權限

本節說明 Connectivity Tests 的權限,以及測試不同類型網路設定時如何使用這些權限。

連線能力測試權限

連線能力測試具有下列 IAM 權限。

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

如果沒有建立或更新測試的權限,對應的按鈕會呈現非使用中狀態。包括「建立連線能力測試」按鈕,以及「連線能力測試詳細資料」頁面上的「編輯」按鈕。在上述任一情況下,當您將指標懸停在停用的按鈕上時,連線測試會顯示訊息,說明您需要的權限。

執行測試的權限

如要執行測試,您需要下列角色和權限:

  • 專案中的 networkmanagement.connectivitytests.create 權限 (或 networkmanagement.connectivitytests.rerun),且該專案具有連線測試資源。
  • Compute 網路檢視者角色 (roles/compute.networkViewer) 或舊版檢視者角色 (roles/viewer),適用於追蹤路徑中的所有專案。

請注意,不同類型的連線選項有下列額外考量。

VPC 網路對等互連、NCC 或 Cloud VPN 連線

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

共用虛擬私有雲專案

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

  • 如果您有權存取主專案和服務專案,追蹤記錄資訊會包含所有相關資源的詳細資料。
  • 如果沒有存取其中一個專案的權限,追蹤記錄中會隱藏這個專案定義的資源相關資訊。系統顯示權限錯誤。
範例
  • 您有權存取 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 角色或舊版檢視者角色 (roles/viewer)。

階層式防火牆政策

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

後續步驟