Amazon ECSクラスターのランタイムカバレッジとトラブルシューティング - Amazon GuardDuty

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

Amazon ECSクラスターのランタイムカバレッジとトラブルシューティング

Amazon ECSクラスターのランタイムカバレッジには、 AWS Fargate および Amazon ECSコンテナインスタンス で実行されるタスクが含まれます1

Fargate で実行される Amazon ECSクラスターの場合、ランタイムカバレッジはタスクレベルで評価されます。ECS クラスターのランタイムカバレッジには、Fargate のランタイムモニタリングと自動エージェント設定 (ECS のみ) を有効にした後に実行を開始した Fargate タスクが含まれます。デフォルトでは、Fargate タスクはイミュータブルです。 GuardDuty は、セキュリティエージェントをインストールして、既に実行されているタスクのコンテナをモニタリングすることはできません。このような Fargate タスクを含めるには、タスクを停止して再度開始する必要があります。関連付けられたサービスがサポートされていることを確認します。

Amazon ECSコンテナの詳細については、「キャパシティの作成」を参照してください。

カバレッジ統計の確認

独自のアカウントまたはメンバーアカウントに関連付けられた Amazon ECSリソースのカバレッジ統計は、選択した 内のすべての Amazon ECSクラスターにおける正常な Amazon ECSクラスターの割合です AWS リージョン。これには、Fargate インスタンスと Amazon EC2インスタンスの両方に関連付けられた Amazon ECSクラスターのカバレッジが含まれます。次の式はこれを次のように表します。

(正常なクラスター/すべてのクラスター)*100

考慮事項

  • ECS クラスターのカバレッジ統計には、そのECSクラスターに関連付けられた Fargate タスクまたはECSコンテナインスタンスのカバレッジステータスが含まれます。Fargate タスクのカバレッジステータスには、実行中の状態であるか、最近実行が終了したタスクが含まれます。

  • ECS クラスターランタイムカバレッジタブの コンテナインスタンスの対象フィールドは、Amazon ECSクラスターに関連付けられたコンテナインスタンスのカバレッジステータスを示します。

    Amazon ECSクラスターに Fargate タスクのみが含まれている場合、カウントは 0/0 と表示されます。

  • Amazon ECSクラスターがセキュリティエージェントを持たない Amazon EC2インスタンスに関連付けられている場合、Amazon ECSクラスターには異常なカバレッジステータスもあります。

    関連付けられた Amazon EC2インスタンスのカバレッジの問題を特定してトラブルシューティングするには、Amazon EC2インスタンスAmazon EC2 ランタイムカバレッジの問題のトラブルシューティングの「」を参照してください。

いずれかのアクセス方法を選択して、アカウントのカバレッジ統計を確認してください。

Console
  • にサインイン AWS Management Console し、 で GuardDuty コンソールを開きますhttps://console.aws.amazon.com/guardduty/

  • ナビゲーションペインで、[Runtime Monitoring] を選択します。

  • [ランタイムカバレッジ] タブを選択します。

  • ECS クラスターランタイムカバレッジタブでは、クラスターリストテーブルで使用可能な各 Amazon ECSクラスターのカバレッジステータス別に集計されたカバレッジ統計を表示できます。

    • [クラスターリスト] テーブルは次の列でフィルタリングできます。

      • アカウント ID

      • [クラスター名]

      • [エージェント管理タイプ]

      • [カバレッジステータス]

  • Amazon ECSクラスターのいずれかでカバレッジステータス異常 の場合、問題列には異常ステータスの理由に関する追加情報が含まれます。

    Amazon ECSクラスターが Amazon EC2インスタンスに関連付けられている場合は、EC2インスタンスランタイムカバレッジタブに移動し、クラスター名フィールドでフィルタリングして、関連する問題 を表示します。

API/CLI
  • 独自の有効なディテクター ID、現在のリージョン、サービスエンドポイントListCoverageAPIを使用して を実行します。この を使用して、インスタンスリストをフィルタリングおよびソートできますAPI。

    • 以下の CriterionKey のオプションのいずれかを使用して例 filter-criteria を変更できます。

      • ACCOUNT_ID

      • ECS_CLUSTER_NAME

      • COVERAGE_STATUS

      • MANAGEMENT_TYPE

    • 以下のオプションで sort-criteria の例 AttributeName を変更できます。

      • ACCOUNT_ID

      • COVERAGE_STATUS

      • ISSUE

      • ECS_CLUSTER_NAME

      • UPDATED_AT

        フィールドは、関連付けられた Amazon ECSクラスターに新しいタスクが作成されるか、対応するカバレッジステータスが変更された場合にのみ更新されます。

    • を変更できます。max-results (最大 50)。

    • アカウントと現在のリージョンdetectorIdの を検索するには、https://console.aws.amazon.com/guardduty/コンソールの設定ページを参照するか、 を実行します。 ListDetectors API.

    aws guardduty --region us-east-1 list-coverage --detector-id 12abc34d567e8fa901bc2d34e56789f0 --sort-criteria '{"AttributeName": "ECS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }' --max-results 5
  • を実行してGetCoverageStatisticsAPI、 に基づいてカバレッジ集計統計を取得しますstatisticsType

    • statisticsType を次のオプションのいずれかに変更できます。

      • COUNT_BY_COVERAGE_STATUS – カバレッジステータス別に集計されたECSクラスターのカバレッジ統計を表します。

      • COUNT_BY_RESOURCE_TYPE – リスト内の AWS リソースのタイプに基づいて集計されたカバレッジ統計。

      • コマンドで例 filter-criteria を変更できます。CriterionKey に対して次のオプションを設定できます。

        • ACCOUNT_ID

        • ECS_CLUSTER_NAME

        • COVERAGE_STATUS

        • MANAGEMENT_TYPE

        • INSTANCE_ID

    • アカウントと現在のリージョンdetectorIdの を検索するには、https://console.aws.amazon.com/guardduty/コンソールの設定ページを参照するか、 を実行します。 ListDetectors API.

    aws guardduty --region us-east-1 get-coverage-statistics --detector-id 12abc34d567e8fa901bc2d34e56789f0 --statistics-type COUNT_BY_COVERAGE_STATUS --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"123456789012"}}] }'

カバレッジ問題を解決する方法の詳細については、「Amazon ECS-Fargate ランタイムカバレッジ問題のトラブルシューティング」を参照してください。

通知による EventBridgeカバレッジステータスの変更

Amazon ECSクラスターのカバレッジステータスが異常 として表示される場合があります。カバレッジステータスの変化を検出するためにカバレッジステータスを定期的に監視し、ステータスが [異常] の場合はトラブルシューティングすることをお勧めします。または、カバレッジステータスが Unhealthy から Healthy またはその他に変わったときに通知を受け取る Amazon EventBridge ルールを作成することもできます。デフォルトでは、 はこれをアカウントのEventBridge バスに GuardDuty 発行します。

通知スキーマの例

EventBridge ルールでは、事前定義されたサンプルイベントとイベントパターンを使用して、カバレッジステータス通知を受信できます。 EventBridge ルールの作成の詳細については、「Amazon ユーザーガイド」の「ルールの作成」を参照してください。 EventBridge

さらに、次の通知スキーマの例を使用して、カスタムイベントパターンを作成します。アカウントの値を必ず置き換えてください。Amazon ECSクラスターのカバレッジステータスが から Healthyに変わったときに通知を受け取るにはUnhealthy、 を detail-typeにする必要があります。GuardDuty Runtime Protection Unhealthy。 カバレッジステータスが から Unhealthyに変更されたときに通知を受け取るにはHealthy、 の値を detail-type に置き換えます。GuardDuty Runtime Protection Healthy.

{ "version": "0", "id": "event ID", "detail-type": "GuardDuty Runtime Protection Unhealthy", "source": "aws.guardduty", "account": "AWS アカウント ID", "time": "event timestamp (string)", "region": "AWS リージョン", "resources": [ ], "detail": { "schemaVersion": "1.0", "resourceAccountId": "string", "currentStatus": "string", "previousStatus": "string", "resourceDetails": { "resourceType": "ECS", "ecsClusterDetails": { "clusterName":"", "fargateDetails":{ "issues":[], "managementType":"" }, "containerInstanceDetails":{ "coveredContainerInstances":int, "compatibleContainerInstances":int } } }, "issue": "string", "lastUpdatedAt": "timestamp" } }

Amazon ECS-Fargate ランタイムカバレッジ問題のトラブルシューティング

Amazon ECSクラスターのカバレッジステータスが異常の場合、問題列に理由が表示されます。

次の表は、Fargate (Amazon ECSのみ) の問題の推奨されるトラブルシューティング手順を示しています。Amazon EC2インスタンスのカバレッジの問題の詳細については、「Amazon EC2インスタンスAmazon EC2 ランタイムカバレッジの問題のトラブルシューティングの」を参照してください。

問題タイプ 追加情報 推奨されるトラブルシューティングの手順

エージェントが報告しない

エージェントが TaskDefinition - 'TASK_DEFINITION' のタスクを報告しない

Amazon ECSクラスターのタスクのVPCエンドポイントが正しく設定されていることを確認します。詳細については、「VPC エンドポイント設定の検証」を参照してください。

組織にサービスコントロールポリシー (SCP) がある場合は、アクセス許可の境界がguardduty:SendSecurityTelemetryアクセス許可を制限していないことを確認します。詳細については、「組織サービスコントロールポリシーの検証」を参照してください。

VPC_ISSUE; for task in TaskDefinition - 'TASK_DEFINITION'

追加情報でVPC問題の詳細を表示します。

エージェントが終了した

ExitCode: でのタスクEXIT_CODEの場合 TaskDefinition - 'TASK_DEFINITION'

追加情報で問題の詳細を表示します。

理由:REASON でのタスクの TaskDefinition - 'TASK_DEFINITION'

ExitCode: EXIT_CODE 理由: 'EXIT_CODEのタスクの ' TaskDefinition - 'TASK_DEFINITION'

エージェントが終了しました: 理由: CannotPullContainerError: プルイメージマニフェストが再試行されました...

タスク実行ロールには、次の Amazon Elastic Container Registry (Amazon ECR) アクセス許可が必要です。

... "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ...

詳細については、「アクセスECR許可とサブネットの詳細を指定する」を参照してください。

Amazon アクセスECR許可を追加したら、タスクを再起動する必要があります。

問題が解決しない場合は、「」を参照してくださいAWS Step Functions ワークフローが予期せず失敗している

VPC エンドポイントの作成に失敗しました

プライベートを有効にするDNSには、 の enableDnsSupportenableDnsHostnames VPC 属性の両方を に設定trueする必要があります。vpcId (サービス: ECS、ステータスコード:400、リクエスト ID: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111).

次のVPC属性が true - enableDnsSupportおよび に設定されていることを確認しますenableDnsHostnames。詳細については、 DNS の属性VPCを参照してください。

で Amazon VPCコンソールを使用して Amazon https://console.aws.amazon.com/vpc/を作成する場合はVPC、DNSホスト名を有効にするDNS解決を有効にする の両方を選択してください。詳細については、VPC「設定オプション」を参照してください。

エージェントはプロビジョニングされていません

のタスク (複数可) SERVICE に対する によるサポートされていない呼び出し TaskDefinition - 'TASK_DEFINITION'

このタスクは、サポートSERVICEされていない によって呼び出されました。

サポートされていないCPUアーキテクチャ 'TYPEのタスク (複数可) の ' TaskDefinition - 'TASK_DEFINITION'

このタスクは、サポートされていないCPUアーキテクチャで実行されています。サポートされているCPUアーキテクチャの詳細については、「」を参照してくださいアーキテクチャ要件の検証

TaskExecutionRole に がありません TaskDefinition - 'TASK_DEFINITION'

ECS タスク実行ロールがありません。タスク実行ロールと必要なアクセス許可の提供については、「」を参照してくださいアクセスECR許可とサブネットの詳細を指定する

のタスク (複数可) のネットワーク設定 'CONFIGURATION_DETAILS' がありません TaskDefinition - 'TASK_DEFINITION'

ネットワーク設定の問題は、VPC設定が欠落しているか、サブネットが欠落しているか空になっているために発生する可能性があります。

ネットワーク設定が正しいことを確認します。詳細については、「アクセスECR許可とサブネットの詳細を指定する」を参照してください。

詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECSタスク定義パラメータ」を参照してください。

その他

TaskDefinition - 'TASK_DEFINITION' のタスクにおける未確認の問題

次の質問を使用して、問題の根本原因を特定します。

  • ランタイムモニタリングを有効にする前にタスクは開始されましたか?

    Amazon ではECS、タスクはイミュータブルです。実行中の Fargate タスクのランタイム動作を評価するには、ランタイムモニタリングがすでに有効になっていることを確認し、 のタスクを再起動 GuardDuty してコンテナサイドカーを追加します。

  • このタスクは、ランタイムモニタリングを有効にする前に開始されたサービスデプロイの一部ですか?

    「はい」の場合は、サービスを再起動するか、「サービスの更新」の手順に従い、forceNewDeployment によってサービスを更新できます。

    UpdateService または を使用することもできますAWS CLI

  • ランタイムモニタリングからECSクラスターを除外した後、タスクは起動しましたか?

    事前定義された GuardDuty タグを GuardDutyManaged-true から GuardDutyManaged- に変更するとfalse、 GuardDuty はECSクラスターのランタイムイベントを受信しません。

  • サービスには、古い形式の のタスクが含まれていますtaskArnか?

    GuardDuty ランタイムモニタリングは、古い形式の を持つタスクのカバレッジをサポートしていませんtaskArn

    Amazon リソースの Amazon ECSリソースネーム (ARNs) の詳細については、「Amazon リソースネーム (ARNs)」とIDs「」を参照してください。