

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GuardDuty 自動セキュリティエージェントでの Infrastructure as Code (IaC) の使用
<a name="using-iac-with-gdu-automated-agents-runtime-monitoring"></a>

このセクションは、次のリストがユースケースに適用される場合にのみ使用します。
+  AWS リソースを管理するには、 AWS Cloud Development Kit (AWS CDK) や Terraform などの Infrastructure as Code (IaC) ツールを使用します。
+ Amazon EKS、Amazon EC2、または Amazon ECS-Fargate の 1 つ以上のリソースタイプに対して GuardDuty 自動エージェント設定を有効にする必要があります。

## IaC リソース依存関係グラフの概要
<a name="runtime-monitoring-dependency-overview"></a>

リソースタイプの GuardDuty 自動エージェント設定を有効にすると、GuardDuty は VPC エンドポイントと、この VPC エンドポイントに関連付けられたセキュリティグループを自動的に作成し、このリソースタイプのセキュリティエージェントをインストールします。デフォルトでは、GuardDuty は、Runtime Monitoring を無効にした後にのみ VPC エンドポイントと関連するセキュリティグループを削除します。詳細については、「[Runtime Monitoring でのリソースの無効化、アンインストール、クリーンアップ](runtime-monitoring-agent-resource-clean-up.md)」を参照してください。

IaC ツールを使用すると、リソースの依存関係グラフが維持されます。IaC ツールを使用してリソースを削除すると、リソースの依存関係グラフの一部として追跡できるリソースのみが削除されます。IaC ツールは、指定された設定外で作成されたリソースを認識できない場合があります。たとえば、IaC ツールを使用して VPC を作成し、 AWS コンソールまたは API オペレーションを使用してこの VPC にセキュリティグループを追加します。リソース依存関係グラフでは、作成する VPC リソースは、関連するセキュリティグループによって異なります。IaC ツールを使用してこの VPC リソースを削除すると、エラーが発生します。このエラーを回避するには、関連付けられたセキュリティグループを手動で削除するか、この追加されたリソースを含めるように IaC 設定を更新します。

## 一般的な問題 - IaC でのリソースの削除
<a name="runtime-monitoring-iac-delete-failure"></a>

GuardDuty 自動エージェント設定を使用する場合、IaC ツールを使用して作成したリソース (Amazon EKS、Amazon EC2、または Amazon ECS-Fargate) を削除できます。ただし、このリソースは、GuardDuty が作成した VPC エンドポイントに依存します。これにより、IaC ツールがリソース自体を削除するのを防ぎ、VPC エンドポイントを自動的に削除する Runtime Monitoring を無効にする必要があります。

例えば、GuardDuty がユーザーに代わって作成した VPC エンドポイントを削除しようとすると、次の例のようなエラーが発生します。

**Example**  
**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)
```

**Example**  
**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
```

### 解決策 - リソース削除の問題を防ぐ
<a name="runtime-monitoring-iac-delete-fail-solution"></a>

このセクションでは、GuardDuty とは独立して VPC エンドポイントとセキュリティグループを管理するのに役立ちます。

IaC ツールを使用して設定されたリソースの完全な所有権を取得するには、記載されている順序で次のステップを実行します。

1. VPC を作成します。イングレスアクセス許可を許可するには、GuardDuty VPC エンドポイントをセキュリティグループにこの VPC に関連付けます。

1. リソースタイプの GuardDuty 自動エージェント設定を有効にする

上記のステップを完了すると、GuardDuty は独自の VPC エンドポイントを作成せず、IaC ツールを使用して作成したエンドポイントを再利用します。

ユーザー独自の VPC の作成については、「*Amazon VPC Transit Gateways*」で「[VPC のみを作成する](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html#create-vpc-only)」を参照してください。VPC エンドポイントの作成については、リソースタイプの次のセクションを参照してください。
+ Amazon EC2 については、「[前提条件 - Amazon VPC エンドポイントの手動作成](creating-vpc-endpoint-ec2-agent-manually.md)」を参照してください。
+ Amazon EKS については、「[前提条件 – Amazon VPC エンドポイントの作成](eksrunmon-prereq-deploy-security-agent.md)」を参照してください。