ランタイムモニタリングのトラブルシューティング - Amazon Elastic Container Service

ランタイムモニタリングのトラブルシューティング

トラブルシューティングをして、タスクやコンテナでランタイムモニタリングが有効になっていて実行されていることを確認する必要がある場合があります。

自分のアカウントでランタイムモニタリングがアクティブかどうかはどうすればわかりますか?

その情報は、Amazon ECS コンソールの [アカウント設定] ページにあります。

effective-settings オプションを使用して list-account-settings を実行することもできます。

aws ecs list-account-settings --effective-settings

Output

[name]guardDutyActivate に設定され、[value]on に設定された設定は、アカウントが設定済みであることを示します。GuardDuty 管理者に問い合わせて、管理が自動か手動かを確認する必要があります。

{ "setting": { "name": "guardDutyActivate", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root", "type": "aws-managed" } }

クラスターでランタイムモニタリングがアクティブかどうかはどうすればわかりますか?

カバレッジ統計は GuardDuty コンソールで確認できます。これには、自分のアカウントまたはメンバーアカウントに関連付けられた Amazon ECS リソース情報が含まれています。カバレッジ統計は、選択した AWS リージョン 内のすべての ECS クラスターに対する正常な ECS クラスターの割合です。この統計には、Fargate および EC2 起動タイプを使用するクラスターのカバレッジが含まれます。詳細については、「Amazon GuardDuty ユーザーガイド」の「カバレッジ統計の確認」を参照してください。

GuardDuty セキュリティエージェントが Fargate タスクで実行されているかどうかはどうすればわかりますか?

Fargate タスクでは、GuardDuty セキュリティエージェントはサイドカーコンテナとして実行されます。

サイドカーは、Amazon ECS コンソールの [タスクの詳細] ページの [コンテナ] に表示されます。

describe-tasks を実行することで、[name]aws-gd-agent に設定され、[lastStatus]RUNNING に設定されているコンテナを探すことができます。

次の例は、タスク aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE のデフォルトのクラスターの出力を示しています。

aws ecs describe-tasks --cluster default --tasks aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE

Output

gd-agent という名前のコンテナは RUNNING 状態にあります。

"containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/4df26bb4-f057-467b-a079-96167EXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE", "lastStatus": "RUNNING", "healthStatus": "UNKNOWN", "memory": "string", "name": "aws-gd-agent" } ]

GuardDuty セキュリティエージェントが EC2 コンテナインスタンスで実行されているかどうかはどうすればわかりますか?

以下のコマンドを実行して、ステータスを表示します。

sudo systemctl status amazon-guardduty-agent

ログファイルは次の場所にあります。

/var/log/amzn-guardduty-agent

クラスターで実行されているタスクにタスク実行ロールがない場合はどうなりますか?

Fargate タスクでは、タスクは GuardDuty セキュリティエージェントのサイドカーコンテナなしで開始されます。GuardDuty ダッシュボードには、カバレッジ統計ダッシュボードにタスクが保護されていないことが表示されます。

ランタイムモニタリング対応のクラスターにタグを付けるための正しいアクセス許可を持っているかどうかはどうすればわかりますか?

クラスターにタグを付けるには、CreateClusterUpdateCluster の両方に対する ecs:TagResource アクションが必要です。

以下はポリシーの例の一部です。

{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction" : "CreateCluster", "ecs:CreateAction" : "UpdateCluster", } } } ] }

Amazon ECR に接続されていない場合はどうなりますか?

Fargate タスクでは、タスクは GuardDuty セキュリティエージェントのサイドカーコンテナなしで開始されます。GuardDuty ダッシュボードには、カバレッジ統計ダッシュボードにタスクが保護されていないことが表示されます。

ランタイムモニタリングを有効にした後、Fargate タスクのメモリ不足エラーに対処するにはどうすればよいですか?

GuardDuty セキュリティエージェントは軽量なプロセスです。しかし、プロセスはそれでもワークロードのサイズに応じてリソースを消費します。クラスターに GuardDuty のデプロイをステージングするには、Amazon CloudWatch Container Insights などのコンテナリソーストラッキングツールを使用することをお勧めします。このようなツールは、アプリケーションの GuardDuty セキュリティエージェントの消費プロファイルを確認するのに役立ちます。そして、必要に応じて Fargate タスクのサイズを調整して、潜在的なメモリ不足状態を回避できます。