

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 手动管理 Amazon EKS 集群的安全代理
<a name="managing-gdu-agent-eks-manually"></a>

本节介绍在启用运行时监控（或 EKS 运行时监控）后如何管理 Amazon EKS 附加GuardDuty 代理（代理）。要使用运行时监控，您必须启用运行时监控并配置 Amazon EKS 附加组件 `aws-guardduty-agent`。您需要执行的两个步骤 GuardDuty 才能检测和生成潜在威胁[GuardDuty 运行时监控查找类型](findings-runtime-monitoring.md)。

要手动管理代理，一个先决条件是创建一个 VPC 端点。这有助于 GuardDuty 接收运行时事件。之后，您可以安装安全代理，这样它 GuardDuty 就可以开始接收来自 Amazon EKS 资源的运行时事件。 GuardDuty 发布此资源的新代理版本时，您可以更新账户中的代理版本。

**Topics**
+ [先决条件 – 创建 Amazon VPC 端点](eksrunmon-prereq-deploy-security-agent.md)
+ [在 Amazon EKS 资源上手动安装 GuardDuty 安全代理](eksrunmon-deploy-security-agent.md)
+ [手动更新 Amazon EKS 资源的安全代理](eksrunmon-update-security-agent.md)

# 先决条件 – 创建 Amazon VPC 端点
<a name="eksrunmon-prereq-deploy-security-agent"></a>

在安装 GuardDuty 安全代理之前，必须先创建亚马逊虚拟私有云 (Amazon VPC) 终端节点。这将有助于 GuardDuty 接收您的 Amazon EKS 资源的运行时事件。

**注意**  
使用 VPC 端点不会产生额外的成本。

选择一种您偏好的访问方法，创建一个 Amazon VPC 端点。

------
#### [ Console ]

**创建 VPC 端点**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中的**虚拟私有云**下，选择**端点**。

1. 选择**创建端点**。

1. 在**创建端点**页面​​上，对于**服务类别**，选择**其他端点服务**。

1. 对于**服务名称**，输入 **com.amazonaws.*us-east-1*.guardduty-data**。

   请务必*us-east-1*替换为正确的区域。该区域必须与属于您的 AWS 账户 ID 的 EKS 集群位于同一区域。

1. 选择**验证服务**。

1. 成功验证服务名称后，选择集群所在的 **VPC**。添加以下策略，仅限指定账户使用 VPC 端点。使用此策略下面提供的组织 `Condition`，您可以更新以下策略来限制对端点的访问。要向组织 IDs 中的特定账户提供 VPC 终端节点支持，请参阅[Organization condition to restrict access to your endpoint](#gdu-shared-vpc-endpoint-org)。

------
#### [ JSON ]

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Action": "*",
   			"Resource": "*",
   			"Effect": "Allow",
   			"Principal": "*"
   		},
   		{
   			"Condition": {
   				"StringNotEquals": {
   					"aws:PrincipalAccount": "111122223333" 
   				}
   			},
   			"Action": "*",
   			"Resource": "*",
   			"Effect": "Deny",
   			"Principal": "*"
   		}
   	]
   }
   ```

------

   `aws:PrincipalAccount` 账户 ID 必须与包含 VPC 和 VPC 端点的账户匹配。以下列表显示了如何与其他人共享 VPC 终端节点 AWS 账户 IDs：

**限制访问端点的组织条件**
   + 要指定多个账户访问 VPC 端点，请将 `"aws:PrincipalAccount": "111122223333"` 替换为以下内容：

     ```
     "aws:PrincipalAccount": [
               "666666666666",
               "555555555555"
         ]
     ```
   + 要允许组织中的所有成员访问 VPC 端点，请将 `"aws:PrincipalAccount": "111122223333"` 替换为以下内容：

     ```
     "aws:PrincipalOrgID": "o-abcdef0123"
     ```
   + 要限制组织 ID 的访问资源，请将您的 `ResourceOrgID` 添加到策略中。

     有关更多信息，请参阅 [ResourceOrgID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceorgid)。

     ```
     "aws:ResourceOrgID": "o-abcdef0123"
     ```

1. 在**其他设置**下，选择**启用 DNS 名称**。

1. 在**子网**下，选择集群所在的子网。

1. 在**安全组**下，选择从 VPC（或 EKS 集群）启用了入站端口 443 的安全组。如果您还没有启用入站端口 443 的安全组，请[创建安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group)。

   如果将入站权限限定为您的 VPC（或实例）时出现问题，您可以从任何 IP 地址 `(0.0.0.0/0)` 提供入站 443 端口支持。但是， GuardDuty 建议使用与您的 VPC 的 CIDR 块相匹配的 IP 地址。有关更多信息，请参阅《Amazon VPC 用户指南》中的 [VPC CIDR 块](https://docs.aws.amazon.com//vpc/latest/userguide/vpc-cidr-blocks.html)**。

------
#### [ API/CLI ]

**创建 VPC 端点**
+ 调用[CreateVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpcEndpoint.html)。
+ 为参数使用以下值：
  + 对于**服务名称**，输入 **com.amazonaws.*us-east-1*.guardduty-data**。

    请务必*us-east-1*替换为正确的区域。该区域必须与属于您的 AWS 账户 ID 的 EKS 集群位于同一区域。
  + 对于 [DNSOptions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DnsOptions.html)，启用私有 DNS 选项，将其设置为`true`。
+ 有关信息 AWS Command Line Interface，请参阅[create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)。

------

完成这些步骤后，请参阅[验证 VPC 端点配置](validate-vpc-endpoint-config-runtime-monitoring.md)以确保 VPC 端点的设置正确。

# 在 Amazon EKS 资源上手动安装 GuardDuty 安全代理
<a name="eksrunmon-deploy-security-agent"></a>

本节介绍如何首次为特定 EKS 集群部署 GuardDuty 安全代理。在继续本节内容之前，确保您已满足了先决条件并为账户启用了运行时监控。如果您不启用运行时监控，则 GuardDuty安全代理（EKS 附加组件）将无法运行。

选择您的首选访问方法以首次部署 GuardDuty 安全代理。

------
#### [ Console ]

1. 在 [https://console.aws.amazon.com/eks/home\$1/](https://console.aws.amazon.com/eks/home#/clusters) clusters 中打开 Amazon EKS 控制台。

1. 选择**集群名称**。

1. 选择**附加组件**选项卡。

1. 选择**获取更多附加组件**。

1. 在**选择插件**页面上，选择 **Amazon GuardDuty EKS 运行时监控**。

1. GuardDuty 建议选择最新的和默认的代理**版本**。

1. 在**配置选定插件设置**页面上，使用默认设置。如果您的 EKS 附加组件的**状态**为 “**需要激活**”，请选择 “**激活**” GuardDuty。此操作将打开 GuardDuty 控制台，为您的账户配置运行时监控。

1. 为账户配置运行时监控后，切换回 Amazon EKS 控制台。您的 EKS 插件的**状态**应变为**准备安装**。

1. 

**（可选）提供 EKS 附加组件配置架构**

   对于附加**版本**，如果您选择 **v1.5.0 或更**高版本，则运行时监控支持配置代理的 GuardDuty 特定参数。有关参数范围的信息，请参阅[配置 EKS 附加组件参数](guardduty-configure-security-agent-eks-addon.md)。

   1. 展开**可选配置设置**，以查看可配置参数及其预期值和格式。

   1. 设置参数。值必须在 [配置 EKS 附加组件参数](guardduty-configure-security-agent-eks-addon.md) 中提供的范围内。

   1. 选择**保存更改**，以根据高级配置创建附加组件。

   1. 对于**冲突解决方法**，如果将参数的值更新为非默认值，则将使用您选择的选项来解决冲突。有关所列选项的更多信息，请参阅《Amazon EKS API 参考》中的 [resolveConflicts](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html#AmazonEKS-UpdateAddon-request-resolveConflicts)**。

1. 选择**下一步**。

1. 在**查看和创建**页面上，验证所有详细信息，然后选择**创建**。

1. 导航回集群详细信息，然后选择**资源**选项卡。

1. 您可以查看带有前缀的新窗格**aws-guardduty-agent**。

------
#### [ API/CLI ]

您可以使用以下任一选项来配置 Amazon EKS 插件代理（`aws-guardduty-agent`）：
+ [CreateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateAddon.html)为你的账户跑步。
+ 
**注意**  
对于插件`version`，如果您选择 **v1.5.0 或更高**版本，则运行时监控支持配置代理的 GuardDuty 特定参数。有关更多信息，请参阅 [配置 EKS 附加组件参数](guardduty-configure-security-agent-eks-addon.md)。

  对请求参数使用以下值：
  + 对于 `addonName`，输入 `aws-guardduty-agent`。

    在使用附加版本`v1.5.0`或更高版本支持的可配置值时，可以使用以下 AWS CLI 示例。务必要将以红色突出显示的占位符值以及相关的 `Example.json` 替换为配置的值。

    ```
    aws eks create-addon --region us-east-1 --cluster-name myClusterName --addon-name aws-guardduty-agent --addon-version v1.12.1-eksbuild.2 --configuration-values 'file://example.json'
    ```  
**Example.json**  

    ```
    {
    	"priorityClassName": "aws-guardduty-agent.priorityclass-high",
    	"dnsPolicy": "Default",
    	"resources": {
    		"requests": {
    			"cpu": "237m",
    			"memory": "512Mi"
    		},
    		"limits": {
    			"cpu": "2000m",
    			"memory": "2048Mi"
    		}
    	}	
    }
    ```
  + 有关支持的 `addonVersion` 的信息，请参阅 [安全代理支持的 Kubernetes 版本 GuardDuty](prereq-runtime-monitoring-eks-support.md#gdu-agent-supported-k8-version)。
+ 或者，你可以使用 AWS CLI。有关更多信息，请参阅 [create-addon](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html)。

------

**VPC 端点的私有 DNS 名称**  
默认情况下，安全代理会解析并连接到 VPC 端点的私有 DNS 名称。对于非 FIPS 端点，您的私有 DNS 将按以下格式显示：  
非 FIPS 端点 – `guardduty-data.us-east-1.amazonaws.com`  
 AWS 区域、*us-east-1*、将根据您所在的地区而变化。

# 手动更新 Amazon EKS 资源的安全代理
<a name="eksrunmon-update-security-agent"></a>

当你手动管理 GuardDuty 安全代理时，你有责任为你的账户更新安全代理。如需获得新代理版本的通知，您可以订阅 [GuardDuty 安全代理发布版本](runtime-monitoring-agent-release-history.md) RSS 源。

您可以将安全代理更新到最新版本，以受益于新增的支持和改进。如果您当前的代理版本已接近标准支持结束日期，则要继续使用运行时监控（或 EKS 运行时监控），则必须更新到下一个可用版本或最新的代理版本。

**先决条件**  
在更新安全代理版本之前，请确保您当前计划使用的代理版本与您的 Kubernetes 版本兼容。有关更多信息，请参阅 [安全代理支持的 Kubernetes 版本 GuardDuty](prereq-runtime-monitoring-eks-support.md#gdu-agent-supported-k8-version)。

------
#### [ Console ]

1. 在 [https://console.aws.amazon.com/eks/home\$1/](https://console.aws.amazon.com/eks/home#/clusters) clusters 中打开 Amazon EKS 控制台。

1. 选择**集群名称**。

1. 在**集群信息**下，选择**附加组件**选项卡。

1. 在 “**插件**” 选项卡下，选择 “**GuardDutyEKS 运行时监控**”。

1. 选择**编辑**以更新代理详细信息。

1. 在**配置 GuardDuty EKS 运行时监控**页面上，更新详细信息。

1. 

**（可选）更新可选配置设置**

   如果您的 EKS 附加组件**版本**为 *1.5.0* 或更高版本，则还可以更新附加组件配置架构。

   1. 展开**可选配置设置**以查看配置架构。

   1. 根据[配置 EKS 附加组件参数](guardduty-configure-security-agent-eks-addon.md)中提供的范围更新参数值。

   1. 选择**保存更改**以开始更新。

   1. 对于**冲突解决方法**，如果将参数的值更新为非默认值，则将使用您选择的选项来解决冲突。有关所列选项的更多信息，请参阅《Amazon EKS API 参考》中的 [resolveConflicts](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html#AmazonEKS-UpdateAddon-request-resolveConflicts)**。

------
#### [ API/CLI ]

要更新您的 Amazon EKS 集群 GuardDuty 的安全代理，请参阅[更新插件](https://docs.aws.amazon.com/eks/latest/userguide/managing-add-ons.html#updating-an-add-on)。

**注意**  
对于插件`version`，如果您选择 **1.5.0 或更高**版本，则运行时监控支持配置 GuardDuty 代理的特定参数。有关参数范围的信息，请参阅[配置 EKS 附加组件参数](guardduty-configure-security-agent-eks-addon.md)。

在使用附加版本 *1.5.0 及更高*版本支持的可配置值时，可以使用以下 AWS CLI 示例。务必要将以红色突出显示的占位符值以及相关的 `Example.json` 替换为配置的值。

```
aws eks update-addon --region us-east-1 --cluster-name myClusterName --addon-name aws-guardduty-agent --addon-version v1.12.1-eksbuild.2 --configuration-values 'file://example.json'
```

**Example.json**  

```
{
	"priorityClassName": "aws-guardduty-agent.priorityclass-high",
	"dnsPolicy": "Default",
	"resources": {
		"requests": {
			"cpu": "237m",
			"memory": "512Mi"
		},
		"limits": {
			"cpu": "2000m",
			"memory": "2048Mi"
		}
	}	
}
```

------

如果您的 Amazon EKS 附加组件版本为 1.5.0 或更高版本，并且您已配置了附加组件架构，则可以验证为集群显示的值是否正确。有关更多信息，请参阅 [验证配置架构更新](guardduty-configure-security-agent-eks-addon.md#gdu-verify-eks-add-on-configuration-param)。