Amazon EKS クラスターのセキュリティエージェントの手動管理 - Amazon GuardDuty

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

Amazon EKS クラスターのセキュリティエージェントの手動管理

このセクションでは、Runtime Monitoring を有効にした後に Amazon EKS アドオンエージェント (GuardDuty エージェント) を管理する方法について説明します。Runtime Monitoring を使用するには、Runtime Monitoring を有効にして Amazon EKS アドオン aws-guardduty-agent を設定する必要があります。これら 2 つのステップのうち 1 つだけを実行しても、潜在的な脅威 GuardDuty の検出や結果の生成には役立ちません。

GuardDuty セキュリティエージェントをデプロイするための前提条件

このセクションでは、EKS クラスターのセキュリティ GuardDuty エージェントを手動でデプロイするための前提条件について説明します。先に進む前に、アカウントに Runtime Monitoring が既に設定されていることを確認してください。Runtime Monitoring を設定しないと、 GuardDuty セキュリティエージェント (EKS アドオン) は機能しません。詳細については、「Runtime Monitoring GuardDuty の有効化」を参照してください。次のステップが完了したら、「 GuardDuty セキュリティエージェントのデプロイ」を参照してください。

任意のアクセス方法を選択して、Amazon VPC エンドポイントを作成します。

Console
VPC エンドポイントを作成する
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインの [仮想プライベートクラウド] で、[VPC] を選択します。

  3. [エンドポイントの作成] を選択します。

  4. [エンドポイントの作成] ページの [サービスカテゴリ][その他のエンドポイントサービス] を選択します。

  5. [サービス名]com.amazonaws.us-east-1.guardduty-data と入力します。

    必ず us-east-1 を正しいリージョンに置き換えてください。これは、 AWS アカウント ID に属する EKS クラスターと同じリージョンである必要があります。

  6. [サービスの確認] を選択します。

  7. サービス名が正常に確認されたら、クラスターが置かれている [VPC] を選択します。次のポリシーを追加して、VPC エンドポイントの使用を指定されたアカウントのみに制限します。このポリシー下で提供されている組織 Condition を使用して、次のポリシーを更新してエンドポイントへのアクセスを制限できます。組織内の特定のアカウント ID に VPC エンドポイントサポートを提供するには、「Organization condition to restrict access to your endpoint」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow", "Principal": "*" }, { "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "111122223333" } }, "Action": "*", "Resource": "*", "Effect": "Deny", "Principal": "*" } ] }

    aws:PrincipalAccount アカウント ID は、VPC と VPC エンドポイントを含むアカウントと一致する必要があります。次のリストは、VPC エンドポイントを他の AWS アカウント ID と共有する方法を示しています。

    エンドポイントへのアクセスを制限する組織の条件
    • VPC エンドポイントにアクセスする複数のアカウントを指定するには、"aws:PrincipalAccount": "111122223333"を以下に置き換えます。

      "aws:PrincipalAccount": [ "666666666666", "555555555555" ]
    • 組織のすべてのメンバーが VPC エンドポイントにアクセスできるようにするには、"aws:PrincipalAccount": "111122223333" を以下に置き換えます。

      "aws:PrincipalOrgID": "o-abcdef0123"
    • リソースへのアクセスを組織 ID に制限するには、ResourceOrgID をポリシーに追加します。

      詳細については、ResourceOrg「 ID 」を参照してください。

      "aws:ResourceOrgID": "o-abcdef0123"
  8. [追加設定][DNS 名を有効にする] を選択します。

  9. [サブネット] で、クラスターが存在するサブネットを選択します。

  10. [セキュリティグループ] で、VPC (または EKS クラスター) からのインバウンドポート 443 が有効になっているセキュリティグループを選択します。インバウンドポート 443 が有効になっているセキュリティグループがまだない場合は、セキュリティグループを作成します。

    VPC (またはクラスター) へのインバウンド許可を制限する際に問題が発生した場合は、任意の IP アドレス (0.0.0.0/0) からのインバウンド 443 ポートをサポートします。

API/CLI
  • を呼び出しますCreateVpcEndpoint

  • パラメータで以下の値を使用します。

    • [サービス名]com.amazonaws.us-east-1.guardduty-data と入力します。

      必ず us-east-1 を正しいリージョンに置き換えてください。これは、 AWS アカウント ID に属する EKS クラスターと同じリージョンである必要があります。

    • DNSOptions には、プライベート DNS オプションを true に設定して有効にします。

  • については AWS Command Line Interface、「」を参照してくださいcreate-vpc-endpoint

Amazon EKS GuardDuty のセキュリティエージェント (アドオン) パラメータを設定する

Amazon EKS GuardDuty のセキュリティエージェントの特定のパラメータを設定できます。このサポートは、 GuardDuty セキュリティエージェントバージョン 1.5.0 以降で利用できます。最新のアドオンバージョンについては、「」を参照してくださいGuardDuty Amazon EKS クラスター用の セキュリティエージェント

セキュリティエージェント設定スキーマを更新する理由

GuardDuty セキュリティエージェントの設定スキーマは、Amazon EKS クラスター内のすべてのコンテナで同じです。デフォルト値が関連するワークロードとインスタンスサイズと一致しない場合は、CPU 設定、メモリ設定、、PriorityClassおよび dnsPolicy設定を構成することを検討してください。Amazon EKS クラスターの GuardDuty エージェントを管理する方法に関係なく、これらのパラメータの既存の設定を設定または更新できます。

設定済みパラメータによるエージェント設定動作の自動

がユーザーに代わってセキュリティエージェント (EKS アドオン) GuardDuty を管理する場合、必要に応じてアドオンを更新します。 GuardDuty は設定可能なパラメータの値をデフォルト値に設定します。ただし、パラメータを希望の値に更新することはできます。これが競合につながる場合、resolveConflicts のデフォルトオプションは ですNone

設定可能なパラメータと値

アドオンパラメータを設定する手順については、以下を参照してください。

次の表は、Amazon EKS アドオンを手動でデプロイしたり、既存のアドオン設定を更新したりするために使用できる範囲と値を示しています。

CPU 設定

パラメータ

デフォルト値

設定可能な範囲

リクエスト

200m

200 m から 10000 m の間、両方を含む

制限

1000m

メモリ設定

パラメータ

デフォルト値

設定可能な範囲

リクエスト

256Mi

256Mi から 20000Mi の間、両方を含む

制限

1024Mi

PriorityClass 設定

が Amazon EKS アドオン GuardDuty を作成すると、割り当てられた PriorityClassは になりますaws-guardduty-agent.priorityclass。つまり、エージェントポッドの優先度に基づいてアクションは実行されません。このアドオンパラメータは、次のいずれかPriorityClassのオプションを選択して設定できます。

設定可能 PriorityClass

preemptionPolicy

preemptionPolicy 説明

ポッド値

aws-guardduty-agent.priorityclass

Never

アクションなし

1000000

aws-guardduty-agent.priorityclass-high

PreemptLowerPriority

この値を割り当てると、エージェントポッド値よりも低い優先度の値で実行されているポッドが優先されます。

100000000

system-cluster-critical1

PreemptLowerPriority

2000000000

system-node-critical1

PreemptLowerPriority

2000001000

1 Kubernetes には、 system-cluster-criticalと の 2 つのPriorityClassオプションがありますsystem-node-critical。詳細については、Kubernetes ドキュメントPriorityClassの「」を参照してください。

dnsPolicy 設定

Kubernetes がサポートする次の DNS ポリシーオプションのいずれかを選択します。設定が指定されていない場合、 ClusterFirst がデフォルト値として使用されます。

  • ClusterFirst

  • ClusterFirstWithHostNet

  • Default

これらのポリシーの詳細については、Kubernetes ドキュメント「ポッドの DNS ポリシー」を参照してください。

GuardDuty セキュリティエージェントのデプロイ

このセクションでは、特定の EKS クラスターに GuardDuty セキュリティエージェントを初めてデプロイする方法について説明します。このセクションに進む前に、アカウントの前提条件をセットアップし、Runtime Monitoring を有効にしていることを確認してください。Runtime Monitoring GuardDutyを有効にしない場合、セキュリティエージェント (EKS アドオン) は機能しません。

任意のアクセス方法を選択して、 GuardDuty セキュリティエージェントを初めてデプロイします。

Console
  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. [クラスター名] を選択します。

  3. [アドオン] タブを選択します。

  4. [その他のアドオンを入手] を選択します。

  5. アドオンの選択ページで、Amazon GuardDuty Runtime Monitoring を選択します。

  6. [選択したアドオン設定の設定] ページで、デフォルトの設定を使用します。EKS アドオンのステータスアクティベーション を必要とする場合は、アクティブ化 GuardDutyを選択します。このアクションにより、 GuardDuty コンソールが開き、アカウントの Runtime Monitoring が設定されます。

  7. アカウントに Runtime Monitoring を設定したら、Amazon EKS コンソールに戻ってください。EKS アドオンの [ステータス] は、[インストール準備完了] に変わっているはずです。

  8. (オプション) EKS アドオン設定スキーマの提供

    アドオンバージョン では、v1.5.0 以降を選択した場合、Runtime Monitoring は GuardDuty エージェントの特定のパラメータの設定をサポートします。パラメータ範囲の詳細については、「」を参照してくださいEKS アドオンパラメータを設定する

    1. オプションの設定を展開して、設定可能なパラメータとその想定値と形式を表示します。

    2. パラメータを設定します。値は、 で指定された範囲内である必要がありますEKS アドオンパラメータを設定する

    3. 変更を保存 を選択して、詳細設定に基づいてアドオンを作成します。

    4. 競合解決方法 では、パラメータの値をデフォルト以外の値に更新するときに、選択したオプションを使用して競合を解決します。リストされているオプションの詳細については、「Amazon EKS API リファレンス」のresolveConflicts」を参照してください。

  9. [次へ] をクリックします。

  10. [確認と作成] ページで、すべての詳細を確認し、[作成] を選択します。

  11. クラスターの詳細に戻り、[リソース] タブを選択します。

  12. 新しいポッドは、プレフィックス で表示できますaws-guardduty-agent

API/CLI

Amazon EKS アドオンエージェント (aws-guardduty-agent) は、次のオプションのいずれかを使用して設定できます。

  • アカウントCreateAddonに対して を実行します。

  • 注記

    アドオン で versionv1.5.0 以上を選択した場合、Runtime Monitoring は GuardDuty エージェントの特定のパラメータの設定をサポートします。詳細については、「EKS アドオンパラメータを設定する」を参照してください。

    リクエストパラメータに以下の値を使用します。

    • addonName に「aws-guardduty-agent」と入力します。

      アドオンバージョン v1.5.0 以降でサポートされている設定可能な値を使用する場合は、次の AWS CLI 例を使用できます。赤で強調表示されているプレースホルダー値と、設定された値Example.jsonに関連付けられている を必ず置き換えてください。

      aws eks create-addon --region us-east-1 --cluster-name myClusterName --addon-name aws-guardduty-agent --addon-version v1.5.0-eksbuild.1 --configuration-values 'file://example.json'
      例 Example.json
      { "priorityClassName": "aws-guardduty-agent.priorityclass-high", "dnsPolicy": "Default", "resources": { "requests": { "cpu": "237m", "memory": "512Mi" }, "limits": { "cpu": "2000m", "memory": "2048Mi" } } }
    • サポートされている addonVersion については、「 GuardDuty セキュリティエージェントがサポートする Kubernetes バージョン」を参照してください。

  • または、 を使用することもできます AWS CLI。詳細については、「create-addon」を参照してください。

設定スキーマの更新の検証

パラメータを設定したら、次のステップを実行して、設定スキーマが更新されていることを確認します。

  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. ナビゲーションペインで [クラスター] を選択します。

  3. クラスターページで、更新を検証するクラスター名を選択します。

  4. [リソース] タブを選択します。

  5. リソースタイプペインのワークロード で、 を選択しますDaemonSets

  6. を選択しますaws-guardduty-agent

  7. aws-guardduty-agent ページで、未加工ビューを選択して、フォーマットされていない JSON レスポンスを表示します。設定可能なパラメータに、指定した値が表示されていることを確認します。

確認したら、 GuardDuty コンソールに切り替えます。対応する AWS リージョン を選択し、Amazon EKS クラスターのカバレッジステータスを表示します。詳細については、「Amazon EKS クラスターのカバレッジ」を参照してください。