翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EKS クラスターのランタイムカバレッジとトラブルシューティング
Runtime Monitoring を有効にして EKS の GuardDuty セキュリティエージェント (アドオン) をインストールした後、EKS クラスターのカバレッジの評価を開始できます。
カバレッジ統計の確認
自分のアカウントまたはメンバーアカウントに関連付けられた EKS クラスターのカバレッジ統計は、選択した AWS リージョンのすべての EKS クラスターに対する正常な EKS クラスターの割合です。次の式はこれを次のように表します。
(正常なクラスター/すべてのクラスター)*100
いずれかのアクセス方法を選択して、アカウントのカバレッジ統計を確認してください。
- Console
-
にサインイン AWS Management Console し、https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。
-
ナビゲーションペインで、[Runtime Monitoring] を選択します。
-
[EKS クラスターのランタイムカバレッジ] タブを選択します。
-
[EKS クラスターのランタイムカバレッジ] タブでは、[クラスターリスト] テーブルにあるカバレッジステータス別に集計されたカバレッジ統計を表示できます。
-
EKS クラスターのいずれかの [カバレッジステータス] が [異常] の場合、[問題] 列には、ステータスが [異常] である理由に関する追加情報が含まれている場合があります。
- API/CLI
-
-
独自の有効なディテクター ID、リージョン、およびサービスエンドポイントを使用して ListCoverage API を実行します。この 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
-
GetCoverageStatistics API を実行すると、statisticsType
に基づいてカバレッジ集計された統計情報を取得できます。
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 クラスターのカバレッジステータスが [異常] と表示されることがあります。カバレッジステータスが [異常] になったことを検出するためにカバレッジステータスを定期的にモニタリングし、ステータスが [異常] の場合はトラブルシューティングすることをお勧めします。または、Amazon EventBridge ルールを作成して、カバレッジステータスが Unhealthy
から Healthy
に変更された場合やそれ以外の変更があった場合に通知を受け取ることもできます。デフォルトでは、GuardDuty はこれをアカウントの EventBridge バスに公開します。
通知スキーマの例
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 EKS ユーザーガイド」の「Amazon EKS リソースのタグ付け」を参照してください。
カバレッジ問題の構造は Issue type:Extra information
です。通常、問題にはオプションの追加情報があり、特定のクライアント側の例外や問題に関する説明が含まれる場合があります。追加情報に基づき、EKS クラスターのカバレッジの問題をトラブルシューティングするための推奨ステップを以下の表に示します。
問題のタイプ (プレフィックス) |
追加情報 |
推奨されるトラブルシューティングの手順 |
アドオンの作成に失敗 |
アドオン 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 を使用する場合のみ
共有 VPC vpcId の所有者アカウント ID 111122223333 では、Runtime Monitoring、自動エージェント設定、またはその両方が有効になっていません。
|
共有 VPC 所有者アカウントは、少なくとも 1 つのリソースタイプ (Amazon EKS または Amazon ECS (AWS Fargate)) の Runtime Monitoring および自動エージェント設定を有効にする必要があります。詳細については、「GuardDuty Runtime Monitoring に固有の前提条件」を参照してください。 |
プライベート DNS を有効にするには、enableDnsSupport とenableDnsHostnames VPC 属性の両方が vpcId に対して true に設定されている必要があります (サービス: Ec2、ステータス コード: 400、リクエスト ID: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 )。 |
次の VPC 属性が true - enableDnsSupport および enableDnsHostnames に設定されていることを確認する必要があります。詳細については、「VPC の DNS 属性」を参照してください。
https://console.aws.amazon.com/vpc/ にある Amazon VPC コンソールを使用して Amazon VPC を作成する場合は、必ず [DNS ホスト名を有効にする] および [解決を有効にする] の両方を選択してください。詳細については、「VPC 設定オプション」を参照してください。 |
共有 VPC エンドポイントの削除に失敗 |
共有 VPC エンドポイントの削除は、アカウント ID 111122223333 、共有 VPC vpcId 、所有者アカウント ID 555555555555 では許可されません。 |
考えられるステップ:
-
共有 VPC 参加者アカウントの Runtime Monitoring ステータスを無効にしても、共有 VPC エンドポイントポリシーと所有者アカウントに存在するセキュリティグループには影響しません。
共有 VPC エンドポイントとセキュリティグループを削除するには、共有 VPC 所有者アカウントで Runtime Monitoring または自動エージェント設定ステータスを無効にする必要があります。
-
共有 VPC 参加者アカウントは、共有 VPC 所有者アカウントでホストされている共有 VPC エンドポイントとセキュリティグループを削除することはできません。
|
ローカル EKS クラスター |
EKS アドオンはローカルのアウトポストクラスターではサポートされていません。 |
実用的ではありません。
詳細については、AWS 「Outposts での Amazon EKS」を参照してください。
|
EKS Runtime Monitoring の有効化許可が付与されていません |
(追加情報が表示される場合と表示されない場合があります) |
-
この問題に関する追加情報がある場合は、根本原因を修正して次の手順に従ってください。
-
EKS Runtime Monitoring を切り替えて、オフにしてから再度オンにします。GuardDuty エージェントも必ず、GuardDuty を使用して自動的にデプロイするか、手動でデプロイしてください。
|
進行中の EKS Runtime Monitoring 有効化リソースのプロビジョニング |
(追加情報が表示される場合と表示されない場合があります) |
実用的ではありません。
EKS Runtime Monitoring を有効にしても、リソースプロビジョニングステップが完了するまでカバレッジステータスが Unhealthy として残る場合があります。カバレッジステータスは定期的に監視および更新されます。 |
その他 (その他の問題) |
承認が失敗したためにエラーが発生しました |
EKS Runtime Monitoring を切り替えて、オフにしてから再度オンにします。GuardDuty エージェントも、GuardDuty を使用して自動的にデプロイするか、手動でデプロイするようにしてください。 |
アドオンの問題コードによるアドオンの作成/更新エラーのトラブルシューティング手順
アドオンの作成または更新エラー |
トラブルシューティングのステップ |
EKS アドオンの問題 - InsufficientNumberOfReplicas : 必要な数の複製がないため、アドオンは異常です。
|
-
問題メッセージを使用して、根本原因を特定して修正できます。クラスターの説明から開始できます。例えば、kubectl describe pods を使用してポッド障害の根本原因を特定します。
根本原因を修正した後、ステップ (アドオンの作成または更新) を再試行します。
-
問題が解決しない場合は、Amazon EKS クラスターの VPC エンドポイントが正しく設定されていることを確認します。詳細については、「VPC エンドポイント設定の検証」を参照してください。
|
EKS アドオンの問題 - InsufficientNumberOfReplicas : 1 つ以上のポッドがスケジュールされた0/x ノードを使用できないため、アドオンが異常です: x Insufficient cpu. preemption: not eligible due to preemptionPolicy=Never 。
|
この問題を解決するには、次のいずれかを実行します。
GuardDuty が最初に検出されたエラーのみをレポートo/x するため、 というメッセージが表示されます。GuardDuty デーモンセットで実行中のポッドの実際の数は 0 を超える可能性があります。
|
EKS アドオンの問題 - InsufficientNumberOfReplicas : 1 つ以上のポッドがスケジュールされた0/x ノードを使用できないため、アドオンが異常です: x Too many pods. preemption: not eligible due to preemptionPolicy=Never 。
|
EKS アドオンの問題 - InsufficientNumberOfReplicas : 1 つ以上のポッドがスケジュールされた0/x ノードを使用できないため、アドオンが異常です: 1 Insufficient memory. preemption: not eligible due to preemptionPolicy=Never 。
|
EKS アドオンの問題 - InsufficientNumberOfReplicas : 1 つ以上のポッドに待機コンテナがあるため、アドオンが異常です CrashLoopBackOff: Completed
|
ポッドに関連付けられたログを表示し、問題を特定できます。これを行う方法については、Kubernetes ドキュメントの「実行中のポッドのデバッグ」を参照してください。
次のチェックリストを使用して、このアドオンの問題をトラブルシューティングします。
-
Runtime Monitoring が有効になっていることを確認します。
-
検証済みの OS ディストリビューションやサポートされている Kubernetes バージョンAmazon EKS クラスターサポートの前提条件などの が満たされていることを確認します。
-
セキュリティエージェントを手動で管理する場合は、すべての VPC の VPCs エンドポイントが作成されたことを確認します。GuardDuty 自動設定を有効にしても、VPC エンドポイントが作成されていることを検証する必要があります。例えば、自動設定で共有 VPC を使用する場合などです。
これを検証するには、「」を参照してくださいVPC エンドポイント設定の検証。
-
GuardDuty セキュリティエージェントが GuardDuty VPC エンドポイントのプライベート DNS を解決できることを確認します。エンドポイントについては、「」の「エンドポイントのプライベート DNS 名」を参照してくださいGuardDuty セキュリティエージェントの管理。
これを行うには、Windows または Mac で nslookup ツールを使用するか、Linux で dig ツールを使用できます。nslookup を使用する場合は、us-west-2 リージョンを自分のリージョンに置き換えた後、次のコマンドを使用できます。
nslookup guardduty-data.us-west-2 .amazonaws.com
-
GuardDuty VPC エンドポイントポリシーまたはサービスコントロールポリシーがguardduty:SendSecurityTelemetry アクションに影響を与えていないことを確認します。
|
EKS アドオンの問題 - InsufficientNumberOfReplicas : 1 つ以上のポッドに待機コンテナがあるため、アドオンが異常です CrashLoopBackOff: Error
|
ポッドに関連付けられたログを表示し、問題を特定できます。これを行う方法については、Kubernetes ドキュメントの「実行中のポッドのデバッグ」を参照してください。
問題を特定したら、次のチェックリストを使用してトラブルシューティングを行います。
-
Runtime Monitoring が有効になっていることを確認します。
-
検証済みの OS ディストリビューションやサポートされている Kubernetes バージョンAmazon EKS クラスターサポートの前提条件などの が満たされていることを確認します。
-
GuardDuty セキュリティエージェントは、GuardDuty VPC エンドポイントのプライベート DNS を解決できます。エンドポイントについては、「」の「エンドポイントのプライベート DNS 名」を参照してくださいGuardDuty セキュリティエージェントの管理。
|
EKS アドオンの問題 - AdmissionRequestDenied : 許可ウェブフック "validate.kyverno.svc-fail" がリクエストを拒否しました: リソース違反のポリシー DaemonSet/amazon-guardduty/aws-guardduty-agent : restrict-image-registries: autogen-validate-registries :... |
-
Amazon EKS クラスターまたはセキュリティ管理者は、アドオンの更新をブロックしているセキュリティポリシーを確認する必要があります。
-
コントローラを無効にする (webhook ) か、コントローラが Amazon EKS からのリクエストを受け付けるようにする必要があります。
|
EKS アドオンの問題 - ConfigurationConflict : 適用しようとしたときにコンフリクトが見つかりました。コンフリクト解決モードのため、続行できません。Conflicts: DaemonSet.apps
aws-guardduty-agent -
.spec.template.spec.containers[name="aws-guardduty-agent"].image |
アドオンを作成または更新するときは、OVERWRITE コンフリクト解決フラグを指定してください。これにより、Kubernetes API を使用して Kubernetes の関連リソースに直接加えられた変更が上書きされる可能性があります。
最初にクラスターから Amazon EKS アドオンを削除してから再インストールできます。
|
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
|
AddonUpdationFailed: EKSAddonIssue - AccessDenied: namespaces\"amazon-guardduty\"isforbidden:User\"eks:addon-manager\"cannotpatchresource\"namespaces\"inAPIgroup\"\"inthenamespace\"amazon-guardduty\"
|
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:
[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 |
GuardDuty のイメージレジストリをアドミッションコントローラーallowed-container-registries の に追加します。詳細については、「」の「EKS v1.8.1-eks-build.2 の ECR リポジトリ」を参照してくださいAmazon ECR リポジトリホスティング GuardDuty エージェント。
|