Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
手动管理 Amazon EKS 集群的安全代理
本节介绍在启用运行时监控后如何管理您的 Amazon EKS 附加GuardDuty 代理(代理)。要使用运行时监控,您必须启用运行时监控并配置 Amazon EKS 附加组件aws-guardduty-agent
。仅执行这两个步骤中的一个步骤无助于 GuardDuty 检测潜在威胁或生成调查结果。
部署 GuardDuty 安全代理的先决条件
本节介绍手动为 EKS 集群部署 GuardDuty 安全代理的先决条件。在继续操作之前,请确保您已经为账户配置了运行时监控。如果您不配置运行时监控,则 GuardDuty 安全代理(EKS 附加组件)将无法运行。有关更多信息,请参阅 启用 GuardDuty 运行时监控。完成下列步骤后,请参阅 部署 GuardDuty 安全代理。
选择您的首选访问方法来创建 Amazon VPC 端点。
- Console
-
创建 VPC 端点
通过 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。
-
在导航窗格中的虚拟私有云下,选择端点。
-
选择 Create Endpoint(创建端点)。
-
在创建端点页面上,对于服务类别,选择其他端点服务。
-
对于服务名称,输入 com.amazonaws.us-east-1
.guardduty-data
。
确保将 us-east-1
替换为正确的区域。该区域必须与属于您的 Amazon Web Services 账户 ID 的 EKS 集群位于同一区域。
-
选择验证服务。
-
成功验证服务名称后,选择集群所在的 VPC。添加以下策略,仅限指定账户使用 VPC 端点。使用此策略下面提供的组织 Condition
,您可以更新以下策略来限制对端点的访问。要为组织中的特定账户 ID 提供 VPC 端点支持,请参阅 Organization condition to restrict access to your endpoint。
{
"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 端点的账户匹配。以下列表显示了如何与其他 Amazon Web Services 账户
ID 共享 VPC 端点:
限制访问端点的组织条件
-
要指定多个账户访问 VPC 端点,请将 "aws:PrincipalAccount":
"111122223333
"
替换为以下内容:
"aws:PrincipalAccount": [
"666666666666
",
"555555555555
"
]
-
要允许组织中的所有成员访问 VPC 端点,请将 "aws:PrincipalAccount":
"111122223333
"
替换为以下内容:
"aws:PrincipalOrgID": "o-abcdef0123
"
-
要限制组织 ID 的访问资源,请将您的 ResourceOrgID
添加到策略中。
有关更多信息,请参阅 ResourceOrgID。
"aws:ResourceOrgID": "o-abcdef0123
"
-
在其他设置下,选择启用 DNS 名称。
-
在子网下,选择集群所在的子网。
-
在安全组下,选择从 VPC(或 EKS 集群)启用了入站端口 443 的安全组。如果您还没有启用入站端口 443 的安全组,请创建安全组。
如果在限制 VPC(或集群)的入站权限时出现问题,请为来自任何 IP 地址(0.0.0.0/0
)的入站 443 端口提供支持。
- API/CLI
-
-
调用CreateVpcEndpoint。
-
为参数使用以下值:
-
对于服务名称,输入 com.amazonaws.us-east-1
.guardduty-data
。
确保将 us-east-1
替换为正确的区域。该区域必须与属于您的 Amazon Web Services 账户 ID 的 EKS 集群位于同一区域。
-
对于 DNSOptions,通过将其设置为 true
来启用私有 DNS 选项。
您可以为 Amazon EKS 配置 GuardDuty 安全代理的特定参数。此支持适用于 GuardDuty 安全代理版本 1.5.0 及更高版本。有关最新插件版本的信息,请参阅GuardDuty 适用于 Amazon EKS 集群的安全代理。
- 我为什么要更新安全代理配置架构
在 Amazon EKS 集群中的所有容器中, GuardDuty 安全代理的配置架构都是相同的。当默认值与关联的工作负载和实例大小不一致时,可以考虑配置 CPU 设置PriorityClass
、内存设置和dnsPolicy
设置。无论您如何管理 Amazon EKS 集群的 GuardDuty 代理,都可以配置或更新这些参数的现有配置。
使用已配置参数自动配置代理的行为
代表您 GuardDuty 管理安全代理(EKS 附加组件)时,它会根据需要更新插件。 GuardDuty 会将可配置参数的值设置为默认值。但是,您仍然可以将参数更新为所需的值。如果这导致冲突,则 ResolveCon flicts 的默认选项为。None
有关配置插件参数的步骤的信息,请参阅:
下表提供了可用于手动部署 Amazon EKS 附加组件或更新现有插件设置的范围和值。
- CPU 设置
-
参数 |
默认值 |
可配置范围 |
请求
|
200m
|
介于 200 米到 10000 米之间,两者兼而有之
|
限制
|
1000m
|
- 内存设置
-
参数 |
默认值 |
可配置范围 |
请求
|
256Mi
|
介于 256 英里和 200000 英里之间,两者兼而有之
|
限制
|
1024 英里
|
PriorityClass
设置
-
在 GuardDuty 为您创建 Amazon EKS 加载项时,分配的PriorityClass
为aws-guardduty-agent.priorityclass
。这意味着不会根据代理窗格的优先级采取任何操作。您可以通过选择以下PriorityClass
选项之一来配置此插件参数:
可配置 PriorityClass |
preemptionPolicy 值
|
preemptionPolicy 描述
|
Pod 值 |
aws-guardduty-agent.priorityclass
|
Never
|
无需操作
|
1000000
|
aws-guardduty-agent.priorityclass-high
|
PreemptLowerPriority
|
分配此值将抢占优先级值低于代理 pod 值的 Pod 运行。
|
100000000
|
system-cluster-critical 1
|
PreemptLowerPriority
|
2000000000
|
system-node-critical 1
|
PreemptLowerPriority
|
2000001000
|
1 Kubernetes 提供了这两个PriorityClass
选项——和。system-cluster-critical
system-node-critical
有关更多信息,请参阅 Kubernetes 文档PriorityClass中的。
dnsPolicy
设置
选择以下 Kubernetes 支持的 DNS 策略选项之一。如果未指定任何配置,ClusterFirst
则用作默认值。
-
ClusterFirst
-
ClusterFirstWithHostNet
-
Default
有关这些策略的信息,请参阅 Kubernet es 文档中的 Pod 的 DNS 政策。
部署 GuardDuty 安全代理
本节介绍如何首次为特定 EKS 集群部署 GuardDuty 安全代理。在继续本节之前,请确保您已经为账户设置了先决条件并启用了运行时监控。如果您不启用运行时监控,则 GuardDuty安全代理(EKS 附加组件)将无法运行。
选择您的首选访问方法以首次部署 GuardDuty 安全代理。
- Console
-
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters。
-
选择集群名称。
-
选择附加组件选项卡。
-
选择获取更多附加组件。
-
在选择插件页面上,选择 Amazon GuardDuty 运行时监控。
-
在配置选定插件设置页面上,使用默认设置。如果您的 EKS 附加组件的状态为 “需要激活”,请选择 “激活” GuardDuty。此操作将打开 GuardDuty 控制台,为您的账户配置运行时监控。
-
为账户配置运行时监控后,切换回 Amazon EKS 控制台。您的 EKS 插件的状态应变为准备安装。
-
(可选)提供 EKS 插件配置架构
对于附加版本,如果您选择 v1.5.0 及更高版本,则运行时监控支持配置代理的 GuardDuty 特定参数。有关参数范围的信息,请参见配置 EKS 插件参数。
-
展开可选配置设置以查看可配置参数及其预期值和格式。
-
设置参数。这些值必须在中提供的范围内配置 EKS 插件参数。
-
选择 “保存更改”,根据高级配置创建插件。
-
对于冲突解决方法,当您将参数的值更新为非默认值时,将使用您选择的选项来解决冲突。有关所列选项的更多信息,请参阅《亚马逊 EKS API 参考》中的 ResolveConflicts。
-
选择下一步。
-
在查看和创建页面上,验证所有详细信息,然后选择创建。
-
导航回集群详细信息,然后选择资源选项卡。
-
您可以查看带有前缀的新窗格aws-guardduty-agent。
- API/CLI
-
您可以使用以下任一选项来配置 Amazon EKS 插件代理(aws-guardduty-agent
):
-
CreateAddon为你的账户跑步。
-
对于附加组件version
,如果您选择 v1.5.0 及更高版本,则运行时监控支持配置代理的 GuardDuty 特定参数。有关更多信息,请参阅 配置 EKS 插件参数。
对请求参数使用以下值:
-
对于 addonName
,输入 aws-guardduty-agent
。
在使用插件版本 1.5.0 及更高版本支持的可配置值时,可以使用以下 Amazon CLI 示例。确保替换以红色突出显示的占位符值以及Example.json
与配置值关联的占位符值。
aws eks create-addon --region us-east-1
--cluster-name myClusterName
--addon-name aws-guardduty-agent --addon-version v1.5.0-eksbuild.1
--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 。
验证配置架构更新
配置完参数后,请执行以下步骤以验证配置架构是否已更新:
验证后,切换到 GuardDuty 控制台。选择相应的, Amazon Web Services 区域 然后查看您的 Amazon EKS 集群的覆盖状态。有关更多信息,请参阅 Amazon EKS 集群的覆盖范围。