

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定代理程式傳送指標的許可
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-permissions"></a>

安裝 Network Flow Monitor 代理程式後，必須啟用這些代理程式，使其能夠將網路指標傳送至 Network Flow Monitor 擷取 API。Network Flow Monitor 中的代理程式必須具有存取 Network Flow Monitor 擷取 API 許可，以便他們可以傳送為每個執行個體收集的網路流量指標。您可以透過為服務帳戶 (IRSA) 實作 IAM 角色來授與此存取權。

若要讓代理程式能夠將網路指標傳送至 Network Flow Monitor，請依循本節中的步驟。

1. **為服務帳戶實作 IAM 角色**

   服務帳戶的 IAM 角色提供管理應用程式憑證的功能，類似 Amazon EC2 執行個體設定檔將憑證提供給 Amazon EC2 執行個體的方式。若要提供 Network Flow Monitor 代理程式所需的所有許可，使其能夠成功存取 Network Flow Monitor 擷取 API，建議的做法是實作 IRSA。如需詳細資訊，請參閱《Amazon EKS 使用者指南》中的[服務帳戶的 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)。

   為 Network Flow Monitor 代理程式設定 IRSA 時，請使用下列資訊：
   + **服務帳戶：**當您定義 IAM 角色信任政策時，對於 `ServiceAccount`，指定 `aws-network-flow-monitor-agent-service-account`。
   + **命名空間：**對於 `namespace`，指定 `amazon-network-flow-monitor`。
   + **暫時憑證部署：**當您在部署完 Network Flow Monitor 代理程式 Pod 之後設定許可時，`ServiceAccount`請使用 IAM 角色更新 ，Kubernetes 不會部署 IAM 角色憑證。為了確保 Network Flow Monitor 代理程式取得您指定的 IAM 角色憑證，必須逐步重新啟動 `DaemonSet`。例如，使用如下命令：

     `kubectl rollout restart daemonset -n amazon-network-flow-monitor aws-network-flow-monitor-agent`

1. **確認 Network Flow Monitor 代理程式可成功存取 Network Flow Monitor 擷取 API**

   可以透過檢視 Network Flow Monitor 代理程式 Pod 的 HTTP 200 日誌，確認代理程式的設定是否運作正常。首先，搜尋 Network Flow Monitor 代理程式 Pod，然後搜尋日誌檔案以尋找成功的 HTTP 200 請求。例如，您可以執行下列動作：

   1. 尋找網路流量監控代理程式 Pod 名稱。舉例而言，您可以使用下列命令：

      ```
      RANDOM_AGENT_POD_NAME=$(kubectl get pods -o wide -A | grep amazon-network-flow-monitor | grep Running | head -n 1 | tr -s ' ' | cut -d " " -f 2)
      ```

   1. 在所有 HTTP 日誌中搜尋您已定位的 Pod 名稱。如果您已變更 NAMESPACE，請務必使用新的命名空間。

      ```
      NAMESPACE=amazon-network-flow-monitor
      kubectl logs $RANDOM_AGENT_POD_NAME -\-namespace ${NAMESPACE} | grep HTTP
      ```

   如果已成功授與存取權，您應該會看到類似如下的日誌項目：

   ```
   ...
   {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027525679}
   {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027552827}
   ```

   請注意，Network Flow Monitor 代理程式會呼叫 Network Flow Monitor 擷取 API，每 30 秒發布一次網路流量報告。