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

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

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

Runtime Monitoring を有効にし、EKS手動または自動エージェント設定を使用して GuardDuty セキュリティエージェント (アドオン) をインストールしたら、EKSクラスターのカバレッジの評価を開始できます。

カバレッジ統計の確認

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

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

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

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

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

  • EKS クラスターランタイムカバレッジタブを選択します。

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

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

      • クラスター名

      • アカウント ID

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

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

      • [アドオンバージョン]

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

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

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

      • ACCOUNT_ID

      • CLUSTER_NAME

      • RESOURCE_TYPE

      • COVERAGE_STATUS

      • ADDON_VERSION

      • MANAGEMENT_TYPE

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

      • ACCOUNT_ID

      • CLUSTER_NAME

      • COVERAGE_STATUS

      • ISSUE

      • ADDON_VERSION

      • UPDATED_AT

    • を変更できます。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": "EKS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }' --max-results 5
  • を実行してGetCoverageStatisticsAPI、 に基づいてカバレッジ集計統計を取得しますstatisticsType

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

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

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

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

        • ACCOUNT_ID

        • CLUSTER_NAME

        • RESOURCE_TYPE

        • COVERAGE_STATUS

        • ADDON_VERSION

        • MANAGEMENT_TYPE

    • アカウントと現在のリージョン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"}}] }'

EKS クラスターのカバレッジステータスが異常の場合は、「」を参照してくださいAmazon EKS ランタイムカバレッジの問題のトラブルシューティング

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

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

通知スキーマの例

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

さらに、次の通知スキーマの例を使用して、カスタムイベントパターンを作成します。アカウントの値を必ず置き換えてください。Amazon EKSクラスターのカバレッジステータスが から 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": "EKS", "eksClusterDetails": { "clusterName": "string", "availableNodes": "string", "desiredNodes": "string", "addonVersion": "string" } }, "issue": "string", "lastUpdatedAt": "timestamp" } }

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

EKS クラスターのカバレッジステータスが の場合Unhealthy、対応するエラーは、 GuardDuty コンソールの問題列またはCoverageResourceデータ型を使用して表示できます。

EKS クラスターを選択的にモニタリングするために包含タグまたは除外タグを使用する場合、タグが同期するまでに時間がかかる場合があります。これは、関連付けられたEKSクラスターのカバレッジステータスに影響を与える可能性があります。対応するタグ (包含または除外) を削除してから、もう一度追加してみることができます。詳細については、「Amazon ユーザーガイド」の「Amazon EKSリソースのタグ付け」を参照してください。 EKS

カバレッジ問題の構造は Issue type:Extra information です。通常、問題にはオプションの追加情報があり、特定のクライアント側の例外や問題に関する説明が含まれる場合があります。追加情報 に基づいて、次の表にEKSクラスターのカバレッジ問題のトラブルシューティングの推奨手順を示します。

問題のタイプ (プレフィックス)

追加情報

推奨されるトラブルシューティングの手順

アドオンの作成に失敗しました

Addon aws-guardduty-agentはクラスターの現在のクラスターバージョンと互換性がありません ClusterName。 指定されたアドオンはサポートされていません。

aws-guardduty-agent EKS アドオンのデプロイをサポートする Kubernetes バージョンのいずれかを使用していることを確認してください。詳細については、「 GuardDuty セキュリティエージェントがサポートする Kubernetes バージョン」を参照してください。Kubernetes バージョンの更新については、「Amazon EKSクラスター Kubernetes バージョンの更新」を参照してください。

アドオンの作成に失敗しました

アドオンの更新に失敗しました

アドオンステータス異常

EKS アドオンの問題 - AddonIssueCode: AddonIssueMessage

特定のアドオン問題コードの推奨手順については、「」を参照してくださいTroubleshooting steps for Addon creation/updatation error with Addon issue code

この問題で発生する可能性のあるアドオンの問題コードのリストについては、「」を参照してくださいAddonIssue

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

VPC エンドポイントの作成は共有ではサポートされていません VPC vpcId

Runtime Monitoring は、組織VPC内で共有された の使用をサポートするようになりました。アカウントがすべての前提条件を満たしていることを確認します。詳細については、「共有を使用するための前提条件 VPC」を参照してください。

自動エージェント設定VPCで共有を使用する場合のみ

所有者アカウント ID 111122223333 共有 用 VPC vpcId では、ランタイムモニタリング、自動エージェント設定、またはその両方が有効になっていません。

共有VPC所有者アカウントは、少なくとも 1 つのリソースタイプ (Amazon EKSまたは Amazon ECS (AWS Fargate)) のランタイムモニタリングと自動エージェント設定を有効にする必要があります。詳細については、「 GuardDuty ランタイムモニタリングに固有の前提条件」を参照してください。

プライベートを有効にするDNSには、 の enableDnsSupportenableDnsHostnames VPC 属性の両方を に設定trueする必要があります。vpcId (サービス: Ec2、ステータスコード: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「設定オプション」を参照してください。

共有VPCエンドポイントの削除に失敗しました

アカウント ID の共有VPCエンドポイントの削除は許可されません 111122223333、共有 VPC vpcId、所有者アカウント ID 555555555555.

考えられるステップ:
  • 共有VPC参加者アカウントのランタイムモニタリングステータスを無効にしても、共有VPCエンドポイントポリシーと所有者アカウントに存在するセキュリティグループには影響しません。

    共有VPCエンドポイントとセキュリティグループを削除するには、共有VPC所有者アカウントでランタイムモニタリングまたは自動エージェント設定ステータスを無効にする必要があります。

  • 共有VPC参加者アカウントは、共有VPC所有者アカウントでホストされている共有VPCエンドポイントとセキュリティグループを削除することはできません。

ローカルEKSクラスター

EKS アドオンは、ローカル outpost クラスターではサポートされていません。

実用的ではありません。

詳細については、「Amazon EKS on AWS outposts」を参照してください。

EKS ランタイムモニタリング有効化許可が付与されていません

(追加情報が表示される場合と表示されない場合があります)

  1. この問題に関する追加情報がある場合は、根本原因を修正して次の手順に従ってください。

  2. EKS Runtime Monitoring を切り替えてオフにしてから、再度オンにします。エージェントも、自動で を介して、 GuardDuty または手動でデプロイされることを確認します GuardDuty。

EKS ランタイムモニタリングの有効化リソースのプロビジョニングが進行中

(追加情報が表示される場合と表示されない場合があります)

実用的ではありません。

EKS Runtime Monitoring を有効にすると、Unhealthyリソースプロビジョニングステップが完了するまでカバレッジステータスが維持される可能性があります。カバレッジステータスは定期的に監視および更新されます。

その他 (その他の問題)

認証失敗によるエラー

EKS Runtime Monitoring を切り替えてオフにしてから、再度オンにします。 GuardDuty エージェントも、 を介して自動的に、 GuardDuty または手動でデプロイされていることを確認します。

アドオンの作成または更新エラー

トラブルシューティングのステップ

EKS アドオンの問題 - InsufficientNumberOfReplicas: 必要な数のレプリカがないため、アドオンが異常です。

  • 問題メッセージを使用して、根本原因を特定して修正できます。クラスターの説明から開始できます。例えば、 kubectl describe pods を使用してポッド障害の根本原因を特定します。

    根本原因を修正したら、ステップ (アドオンの作成または更新) を再試行します。

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

EKS アドオンの問題 - AdmissionRequestDenied: アドミッションウェブフックがリクエスト"validate.kyverno.svc-fail"を拒否しました: リソース違反DaemonSet/amazon-guardduty/aws-guardduty-agentのポリシー: restrict-image-registries: autogen-validate-registries: ...

  1. Amazon EKSクラスターまたはセキュリティ管理者は、アドオンの更新をブロックしているセキュリティポリシーを確認する必要があります。

  2. コントローラー (webhook) を無効にするか、コントローラーに Amazon からのリクエストを受け入れさせる必要がありますEKS。

EKS アドオンの問題 - ConfigurationConflict: 適用しようとしたときに競合が見つかりました。コンフリクト解決モードのため、続行できません。Conflicts: DaemonSet.apps aws-guardduty-agent - .spec.template.spec.containers[name="aws-guardduty-agent"].image

アドオンを作成または更新するときは、OVERWRITE コンフリクト解決フラグを指定してください。これにより、Kubernetes の関連リソースに対して直接行われた変更が、Kubernetes を使用して上書きされる可能性がありますAPI。

最初に「アドオンを削除」してから再インストールできます。

EKS アドオンの問題 - AccessDenied: priorityclasses.scheduling.k8s.io "aws-guardduty-agent.priorityclass" is forbidden: User "eks:addon-manager" cannot patch resource "priorityclasses" in API group "scheduling.k8s.io" at the cluster scope

不足している権限を手動で eks:addon-cluster-admin ClusterRoleBinding に追加する必要があります。以下を yaml から eks:addon-cluster-admin に追加します。

--- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: eks:addon-cluster-admin subjects: - kind: User name: eks:addon-manager apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io ---

次のコマンドを使用してyaml、これを Amazon EKSクラスターに適用できるようになりました。

kubectl apply -f eks-addon-cluster-admin.yaml

EKS アドオンの問題 - AccessDenied: admission webhook "validation.gatekeeper.sh" denied the request: [all-namespace-must-have-label-owner] All namespaces must have an `owner` label

コントローラーを無効にするか、コントローラーに Amazon EKSクラスターからのリクエストを受け入れるようにする必要があります。

アドオンを作成または更新する前に、 GuardDuty 名前空間を作成して としてラベル付けすることもできますowner

EKS アドオンの問題 - AccessDenied: admission webhook "validation.gatekeeper.sh" denied the request: [allowed-container-registries] container <aws-guardduty-agent> has an invalid image registry

「」で指定されているように、アドミッションコントローラーのウェブフックがリージョンのレジストリにアクセスすることを明示的に許可する必要がありますEKS エージェントバージョン 1.6.0 以降のリポジトリ