バケットの Malware Protection for S3 の有効化
このセクションでは、独自のアカウントでバケットの Malware Protection for S3 を有効にする方法の詳細な手順について説明します。以下の考慮事項を確認してから作業を進めてください。
-
GuardDuty コンソールを使用してこの保護プランを有効にすると、[サービスアクセス] セクションで新しいロールを作成するか、既存のロールを使用するステップが含まれます。
-
GuardDuty API または CLI を使用してこの保護プランを有効にする場合は、先に進む前に IAM ロールポリシーの作成または更新 を実行する必要があります。
-
この保護プランを有効にする方法にかかわらず、必要な Malware Protection プランリソースを作成するためのアクセス許可 が必要です。
- Amazon S3 バケットスロットリングの検討
-
S3 スロットリングは、Amazon S3 バケットとの間でデータを転送できるレートを制限する場合があります。これは、新しくアップロードしたオブジェクトのマルウェアスキャンを遅らせる可能性があります。
S3 バケットへの大量の
GETおよびPUTリクエストが予想される場合は、スロットリングを防ぐための対策の実施を検討してください。これを行う方法については、「Amazon Athena ユーザーガイド」の「Amazon S3 スロットリングを防ぐ」を参照してください。
トピック
Amazon S3 バケットで Malware Protection for S3 を有効にすると、GuardDuty はバケットの保護プランの識別子として機能する Malware Protection プランリソースを作成します。AWS 管理ポリシー: AmazonGuardDutyFullAccess_v2 (推奨) をまだ使用していない場合は、次のアクセス許可を追加して、このリソースを作成する必要があります。
-
guardDuty:CreateMalwareProtectionPlan -
iam:PassRole
以下のカスタムポリシーの例を使用して、プレースホルダの値を、アカウントに適した値に置き換えることができます。
以下のセクションでは、GuardDuty コンソールで体験できるステップバイステップのチュートリアルを提供します。
GuardDuty コンソールを使用して Malware Protection for S3 を有効にするには
S3 バケットの詳細を入力する
次の手順に従って、Amazon S3 バケットの詳細を指定します。
-
AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/guardduty/
で GuardDuty コンソールを開きます。 -
ページの右上隅にある AWS リージョンセレクターを使用して、Malware Protection for S3 を有効にするリージョンを選択します。
-
ナビゲーションペインで、[Malware Protection for S3] を選択します。
-
[保護されたバケット] セクションで、[有効化] を選択して、独自の AWS アカウントに属する S3 バケットの Malware Protection for S3 を有効にします。
-
[S3 バケットの詳細を入力する] で、Amazon S3 バケット名を入力します。または、[S3 を参照] を選択して S3 バケットを選択します。
S3 バケットと、Malware Protection for S3 を有効にする AWS アカウントの AWS リージョンは同じである必要があります。例えば、アカウントが
us-east-1リージョンに属している場合、Amazon S3 バケットリージョンもus-east-1である必要があります。 -
[プレフィックス] では、[S3 バケット内のすべてのオブジェクト] または [特定のプレフィックスで始まるオブジェクト] を選択できます。
-
選択したバケットに新しくアップロードされたすべてのオブジェクトを GuardDuty がスキャンできるようにするときは、[S3 バケット内のすべてのオブジェクト] を選択します。
-
特定のプレフィックスに属する新しくアップロードされたオブジェクトをスキャンするときは、[特定のプレフィックスで始まるオブジェクト] を選択します。このオプションは、選択したオブジェクトプレフィックスのみにマルウェアスキャンの範囲を集中させるのに役立ちます。プレフィックスの使用の詳細については、「Amazon S3 ユーザーガイド」の「フォルダを使用して Amazon S3 コンソールのオブジェクトを整理する」を参照してください。
[プレフィックスの追加] を選択し、プレフィックスを入力します。最大 5 つのプレフィックスを追加できます。
-
スキャンされたオブジェクトのタグ付けを有効にする
これは任意の手順です。オブジェクトがバケットにアップロードされる前にタグ付けオプションを有効にした場合、スキャンが完了すると、GuardDuty はキーを GuardDutyMalwareScanStatus、値をスキャン結果として事前定義されたタグを追加します。Malware Protection for S3 を最適に使用するには、スキャン終了後に S3 オブジェクトにタグを追加するオプションを有効にすることをお勧めします。標準の S3 オブジェクトのタグ付けコストが適用されます。詳細については、「Malware Protection for S3 の料金と使用コスト」を参照してください。
- タグ付けを有効にする理由
-
-
タグ付けを有効にすることは、マルウェアスキャンの結果を知る方法の 1 つです。S3 マルウェアスキャン結果の詳細については、「Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング」を参照してください。
-
悪意の可能性のあるオブジェクトを含む S3 バケットにタグベースのアクセスコントロール (TBAC) ポリシーを設定します。考慮事項とタグベースのアクセスコントロール (TBAC) の実装方法については、「Malware Protection for S3 によるタグベースのアクセスコントロール (TBAC) の使用」を参照してください。
-
GuardDuty による S3 オブジェクトへのタグの追加に関する考慮事項:
-
デフォルトでは、1 つのオブジェクトに最大 10 個のタグを関連付けることができます。詳細については、「Amazon S3 ユーザーガイド」の「タグを使用してストレージを分類する」を参照してください。
10 個すべてのタグが既に使用されている場合、GuardDuty はスキャンされたオブジェクトに事前定義されたタグを追加できません。GuardDuty はまた、スキャン結果をデフォルトの EventBridge イベントバスにも発行します。詳細については、「Amazon EventBridge による S3 オブジェクトスキャンのモニタリング」を参照してください。
-
選択した IAM ロールに GuardDuty が S3 オブジェクトにタグ付けするアクセス許可が含まれていない場合は、保護されたバケットに対してタグ付けが有効になっていても、GuardDuty はこのスキャンされた S3 オブジェクトにタグを追加できません。タグ付けに必要な IAM ロールのアクセス許可の詳細については、「IAM ロールポリシーの作成または更新」を参照してください。
GuardDuty はまた、スキャン結果をデフォルトの EventBridge イベントバスにも発行します。詳細については、「Amazon EventBridge による S3 オブジェクトスキャンのモニタリング」を参照してください。
[スキャンしたオブジェクトのタグ付け] でオプションを選択するには
-
GuardDuty でスキャンした S3 オブジェクトにタグを追加する場合は、[オブジェクトをタグ付けする] を選択します。
-
GuardDuty でスキャンした S3 オブジェクトにタグを追加しない場合は、[オブジェクトにタグ付けしない] を選択します。
サービスアクセス
次の手順に従って、既存のサービスロールを選択するか、ユーザーに代わってマルウェアスキャンアクションを実行するために必要なアクセス許可を持つ新しいサービスロールを作成します。これらのアクションには、新しくアップロードされた S3 オブジェクトのスキャンや、(オプションで) これらのオブジェクトへのタグの追加が含まれる場合があります。このロールが持つアクセス許可ポリシーについては、「IAM ロールポリシーの作成または更新」を参照してください。
[サービスアクセス] セクションで、次のいずれかを実行できます。
-
新しいサービスロールを作成して使用する — マルウェアスキャンを実行するために必要なアクセス許可を持つ新しいサービスロールを作成および使用できます。
[ロール名] では、GuardDuty によって事前入力された名前を使用するか、任意の意味のある名前を入力してロールを識別できます。例:
GuardDutyS3MalwareScanRole。ロール名は 1~64 文字にする必要があります。有効な文字は、a~z、A~Z、0~9、および「+=,.@-_」です。 -
既存のサービスロールを使用する — [サービスロール名] リストから既存のサービスロールを選択できます。
[ポリシーテンプレート] では、S3 バケットのポリシーを表示できます。[S3 バケットの詳細を入力する] セクションで S3 バケットを入力または選択したことを確認します。
[サービスロール名] で、サービスロールのリストからサービスロールを選択します。
要件に基づいてポリシーを変更することができます。IAM ロールの作成または更新方法の詳細については、「Create or update IAM role policy」を参照してください。
IAM ロールのアクセス許可に関する問題については、「IAM ロールのアクセス許可エラーのトラブルシューティング」を参照してください。
(オプション) Malware Protection プラン ID にタグを付ける
これは、S3 バケットリソース用に作成される Malware Protection プランのリソースにタグを追加するのに役立つオプションの手順です。
各タグには、タグキーとオプションのタグ値という 2 つの部分があります。タグ付けとそのメリットの詳細については、「AWS リソースのタグ付け」を参照してください。
Malware Protection プランのリソースにタグを追加するには
-
タグのキーと、オプションで値を入力します。タグキーとタグ値は両方とも大文字と小文字が区別されます。タグキーとタグ値の名前については、「タグの命名制限と要件」を参照してください。
-
Malware Protection プランのリソースにタグを追加するには、[新しいタグを追加] を選択し、前のステップを繰り返します。リソースごとに最大 50 個のタグを追加できます。
-
[有効化] を選択します。
このセクションでは、AWS 環境でプログラムにより Malware Protection for S3 を有効にする場合の手順について説明します。これには、「IAM ロールポリシーの作成または更新」のステップで作成した IAM ロールの Amazon リソースネーム (ARN) が必要です。
API/CLI を使用してプログラムにより Malware Protection for S3 を有効にするには
-
API を使用する
CreateMalwareProtectionPlan を実行して、自分のアカウントに属するバケットの Malware Protection for S3 を有効にします。
-
を使用する場合AWS CLI
Malware Protection for S3 を有効にする方法に応じて、次のリストに、特定のユースケースの AWS CLI コマンドの例を示します。これらのコマンドを実行するときは、
赤で示されているプレースホルダーの例を、アカウントに適した値に置き換えます。AWS CLI コマンドの例
-
次の AWS CLI コマンドを使用して、スキャンした S3 オブジェクトのタグ付けがないバケットの Malware Protection for S3 を有効にします。
aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource "S3Bucket"={"BucketName"="amzn-s3-demo-bucket1"} -
次の AWS CLI コマンドを使用して、特定のオブジェクトプレフィックスがあり、スキャンした S3 オブジェクトのタグ付けがないバケットの Malware Protection for S3 を有効にします。
aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource '{"S3Bucket":{"BucketName":"amzn-s3-demo-bucket1", "ObjectPrefixes": ["Object1","Object1"]}}' -
次の AWS CLI コマンドを使用して、スキャンした S3 オブジェクトのタグ付けが有効になっているバケットの Malware Protection for S3 を有効にします。
aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource "S3Bucket"={"BucketName"="amzn-s3-demo-bucket1"} --actions "Tagging"={"Status"="ENABLED"}
これらのコマンドの実行が成功すると、一意の Malware Protection プラン ID が生成されます。バケットの保護プランの更新や無効化などのアクションを実行するには、この Malware Protection プラン ID が必要になります。
-
IAM ロールのアクセス許可に関する問題については、「IAM ロールのアクセス許可エラーのトラブルシューティング」を参照してください。