

# 为代理配置权限以传送指标
<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 实例提供凭证的方式相似。建议通过实施 IRSA 来提供 Network Flow Monitor 代理为成功访问 Network Flow Monitor 摄取 API 所需的所有权限。有关更多信息，请参阅《Amazon EKS 用户指南》中的[服务账户的 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)。

   为 Network Flow Monitor 代理设置 IRSA 时，请使用以下信息：
   + **ServiceAccount：**在定义 IAM 角色信任策略时，对于 `ServiceAccount`，指定 `aws-network-flow-monitor-agent-service-account`。
   + **命名空间：**对于 `namespace`，请指定 `amazon-network-flow-monitor`。
   + **临时凭证部署：**完成 Network Flow Monitor 代理容器组的部署后，在配置权限并使用 IAM 角色更新 `ServiceAccount` 时，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 代理容器组的 HTTP 200 日志，检查代理的配置是否正常运行。首先，搜索 Network Flow Monitor 代理容器组，然后搜索日志文件以找到成功的 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 日志。如果您更改了命名空间，请确保使用新命名空间。

      ```
      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 秒发布一次网络流报告。