本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将基础设施即代码(IaC)与 GuardDuty 自动安全代理结合使用
本节的内容仅在以下列表适用于您的应用场景时适用:
-
您使用基础设施即代码(IaC)工具(例如 Amazon Cloud Development Kit (Amazon CDK) 和 Terraform)来 Amazon 管理资源,以及
-
您需要为一种或多种资源类型(Amazon EKS、Amazon 或 Amazon ECS-Farg EC2 ate)启用 GuardDuty 自动代理配置。
IaC 资源依赖关系图概述
当您为某个资源类型启用 GuardDuty 自动代理配置时, GuardDuty会自动创建与该 VPC 端点关联的 VPC 端点和安全组,并为该资源类型安装安全代理。默认情况下,只有在 GuardDuty 您禁用运行时监控后,VPC 端点和关联的安全组。有关更多信息,请参阅 在运行时监控中禁用、卸载和清理资源。
当您使用 IaC 工具时,该工具会维护资源的依赖关系图。使用 IaC 工具删除资源时,将仅会删除可以作为资源依赖关系图的一部分进行跟踪的资源。IaC 工具可能不知道在其指定配置之外创建的资源。例如,您使用某个 IaC 工具创建了一个 VPC,然后使用 Amazon 控制台或 API 操作向该 VPC 添加了安全组。在资源依赖关系图中,您创建的 VPC 资源依赖关联的安全组。如果您使用该 IaC 工具删除了该 VPC 资源,则会出现错误。解决此错误的方法是手动删除关联的安全组,或者更新 IaC 配置以包含此添加的资源。
常见问题 – 在 IaC 中删除资源
使用 GuardDuty 自动代理配置时,您可能需要删除使用 IaC 工具创建的某个资源(Amazon EKS、Amazon EKS EC2、Amazon EKS、Amazon ECS-Fargate)。但由于该资源依赖 VPC 端 GuardDuty 点,这会阻止 IaC 工具自行删除该资源,并且您需要禁用运行时监控,这会进一步该自动删除 VPC 端点。
例如,当您尝试删除代表您 GuardDuty 创建的 VPC 端点时,您会收到与以下示例类似的错误。
使用 CDK 时的错误示例
The following resource(s) failed to delete: [
mycdkvpcapplicationpublicsubnet1Subnet1SubnetEXAMPLE1
,mycdkvpcapplicationprivatesubnet1Subnet2SubnetEXAMPLE2
]. Resource handler returned message: "The subnet 'subnet-APKAEIVFHP46CEXAMPLE
' has dependencies and cannot be deleted. (Service: Ec2, Status Code: 400, Request ID:e071c3c5-7442-4489-838c-0dfc6EXAMPLE
)" (RequestToken:4381cff8-6240-208a-8357-5557b7EXAMPLE
, HandlerErrorCode: InvalidRequest)
使用 Terraform 时的错误示例
module.vpc.aws_subnet.private[1]: Still destroying... [id=subnet-
APKAEIVFHP46CEXAMPLE
, 19m50s elapsed] module.vpc.aws_subnet.private[1]: Still destroying... [id=subnet-APKAEIVFHP46CEXAMPLE
, 20m0s elapsed] Error: deleting EC2 Subnet (subnet-APKAEIBAERJR2EXAMPLE
): DependencyViolation: The subnet 'subnet-APKAEIBAERJR2EXAMPLE
' has dependencies and cannot be deleted. status code: 400, request id:e071c3c5-7442-4489-838c-0dfc6EXAMPLE
解决方法 – 防止资源删除问题
本节的内容有助您独立于 VPC 端点和安全组管理 GuardDuty。
对于使用 IaC 工具配置的资源,要获得其完全所有权,请按所列顺序执行以下步骤:
-
创建 VPC。要允许入口权限,请将某 GuardDuty 个 VPC 端点及安全组关联到此 VPC。
-
为您的资源类型启用 GuardDuty 自动代理配置
完成上述步骤后, GuardDuty 将不会创建自己的 VPC 端点,而是会再利用您使用 IaC 工具创建的端点。
有关创建您自己的 VPC 的信息,请参阅《Amazon VPC 中转网关》中的仅创建 VPC。有关创建 VPC 端点的信息,请参阅以下适用于您的资源类型的章节:
-
有关亚马逊的信息 EC2,请参阅先决条件 – 手动创建 Amazon VPC 端点。
-
对于 Amazon EKS,请参阅先决条件 – 创建 Amazon VPC 端点。