Malware Protection for EC2 のためのサービスにリンクされたロールの許可 - Amazon GuardDuty

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

Malware Protection for EC2 のためのサービスにリンクされたロールの許可

Malware Protection for EC2 は、AWSServiceRoleForAmazonGuardDutyMalwareProtection というサービスにリンクされたロール (SLR) を使用します。この SLR により、Malware Protection for EC2 はエージェントレススキャンを実行して GuardDuty アカウント内のマルウェアを検出できます。これにより、GuardDuty はアカウントに EBS ボリュームスナップショットを作成し、そのスナップショットを GuardDuty サービスアカウントと共有できます。GuardDuty がスナップショットを評価すると、取得された EC2 インスタンスとコンテナワークロードのメタデータが Malware Protection for EC2 の検出結果に含まれます。AWSServiceRoleForAmazonGuardDutyMalwareProtection サービスにリンクされたロールは、ロールを継承するために malware-protection.guardduty.amazonaws.com のサービスを信頼します。

このロールのアクセス許可ポリシーは、Malware Protection for EC2 で次のタスクを実行するのに役立ちます。

  • Amazon Elastic Compute Cloud (Amazon EC2) アクションを使用して、Amazon EC2 インスタンス、ボリューム、スナップショットに関する情報を取得します。Malware Protection for EC2 は、Amazon EKS と Amazon ECS クラスターのメタデータにアクセスする許可も与えます。

  • GuardDutyExcluded タグが true に設定されていない EBS ボリュームのスナップショットを作成してください。デフォルトでは、GuardDutyScanId タグを持つスナップショットが作成されます。このタグを削除しないでください。削除すると、Malware Protection for EC2 がスナップショットにアクセスできなくなります。

    重要

    GuardDutyExcludedtrue に設定すると、GuardDuty サービスは今後これらのスナップショットにアクセスできなくなります。これは、このサービスにリンクされたロールの他のステートメントにより、GuardDutyExcludedtrue に設定されたスナップショットに対するどのアクションも GuardDuty が実行できなくなるためです。

  • スナップショットの共有と削除を許可するのは、GuardDutyScanId タグが存在し、GuardDutyExcluded タグが true に設定されていない場合のみです。

    注記

    Malware Protection for EC2 がスナップショットを公開することを許可しません。

  • カスタマーマネージドキー (GuardDutyExcluded タグが true に設定されているキーを除く) にアクセスして CreateGrant を呼び出し、GuardDuty サービスアカウントと共有される暗号化スナップショットから暗号化 EBS ボリュームを作成してアクセスします。各リージョンの GuardDuty サービスアカウントのリストについては、「AWS リージョンごとの GuardDuty サービスアカウント」を参照してください。

  • 顧客の CloudWatch ログにアクセスして Malware Protection for EC2 ロググループを作成し、マルウェアスキャンイベントログを /aws/guardduty/malware-scan-events ロググループの下に配置します。

  • マルウェアが検出されたスナップショットを自分のアカウントに保持するかどうかをお客様が決定できるようにします。スキャンでマルウェアが検出された場合、サービスにリンクされたロールにより、GuardDuty はスナップショットに GuardDutyFindingDetected および GuardDutyExcluded の 2 つのタグが追加できます。

    注記

    GuardDutyFindingDetected タグは、スナップショットにマルウェアが含まれていると指定します。

  • ボリュームが EBS マネージドキーで暗号化されているかどうかを判断します。GuardDuty は DescribeKey アクションを実行し、アカウントの EBS マネージドキーの key Id を特定します。

  • を使用して暗号化された EBS ボリュームのスナップショットを から取得 AWS アカウント し AWS マネージドキー、 にコピーしますGuardDuty サービスアカウント。この目的のため、GetSnapshotBlockListSnapshotBlocks のアクセス許可を使用します。その後、GuardDuty はサービスアカウントのスナップショットをスキャンします。現在、 で暗号化された EBS ボリュームのスキャンに対する Malware Protection for EC2 サポートは、すべての で使用できない AWS マネージドキー 場合があります AWS リージョン。詳細については、「リージョン固有機能の可用性」を参照してください。

  • Amazon EC2 が Malware Protection for EC2 AWS KMS に代わって を呼び出し、カスタマーマネージドキーに対して複数の暗号化アクションを実行できるようにします。kms:ReEncryptTokms:ReEncryptFrom のようなアクションは、カスタマーマネージドキーで暗号化されたスナップショットを共有するために必要です。GuardDutyExcluded タグが true に設定されていないキーだけがアクセス可能です。

ロールは、AmazonGuardDutyMalwareProtectionServiceRolePolicy と名付けられた次の AWS マネージドポリシーで構成されます。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DescribeAndListPermissions", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ecs:ListClusters", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:DescribeTasks", "eks:DescribeCluster" ], "Resource": "*" }, { "Sid": "CreateSnapshotVolumeConditionalStatement", "Effect": "Allow", "Action": "ec2:CreateSnapshot", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } }, { "Sid": "CreateSnapshotConditionalStatement", "Effect": "Allow", "Action": "ec2:CreateSnapshot", "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "GuardDutyScanId" } } }, { "Sid": "CreateTagsPermission", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateSnapshot" } } }, { "Sid": "AddTagsToSnapshotPermission", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringLike": { "ec2:ResourceTag/GuardDutyScanId": "*" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "GuardDutyExcluded", "GuardDutyFindingDetected" ] } } }, { "Sid": "DeleteAndShareSnapshotPermission", "Effect": "Allow", "Action": [ "ec2:DeleteSnapshot", "ec2:ModifySnapshotAttribute" ], "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringLike": { "ec2:ResourceTag/GuardDutyScanId": "*" }, "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } }, { "Sid": "PreventPublicAccessToSnapshotPermission", "Effect": "Deny", "Action": [ "ec2:ModifySnapshotAttribute" ], "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringEquals": { "ec2:Add/group": "all" } } }, { "Sid": "CreateGrantPermission", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" }, "StringLike": { "kms:EncryptionContext:aws:ebs:id": "snap-*" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "CreateGrant", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "ShareSnapshotKMSPermission", "Effect": "Allow", "Action": [ "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" }, "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } }, { "Sid": "DescribeKeyPermission", "Effect": "Allow", "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:*:*:key/*" }, { "Sid": "GuardDutyLogGroupPermission", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/guardduty/*" }, { "Sid": "GuardDutyLogStreamPermission", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/guardduty/*:log-stream:*" }, { "Sid": "EBSDirectAPIPermissions", "Effect": "Allow", "Action": [ "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks" ], "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringLike": { "aws:ResourceTag/GuardDutyScanId": "*" }, "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } } ] }

AWSServiceRoleForAmazonGuardDutyMalwareProtection サービスにリンクされたロールにアタッチされている信頼ポリシーは次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "malware-protection.guardduty.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Malware Protection for EC2 のサービスにリンクされたロールの作成

Malware Protection for EC2 を初めて有効にするか、以前に有効にしていなかったサポート対象リージョンで Malware Protection for EC2 を有効にした場合は、AWSServiceRoleForAmazonGuardDutyMalwareProtection のサービスにリンクされたロールが自動的に生成されます。IAM コンソール、IAM CLI、あるいは IAM API を使って、AWSServiceRoleForAmazonGuardDutyMalwareProtection サービスにリンクされたロールを手動で作成することもできます。

注記

デフォルトでは、Amazon GuardDuty を初めて使用する場合、Malware Protection for EC2 は自動的に有効になります。

重要

委任 GuardDuty 管理者アカウント用に作成されたサービスにリンクされたロールは、メンバーの GuardDuty アカウントには適用されません。

サービスにリンクされたロールの作成、編集、削除をIAM プリンシパル (ユーザー、グループ、ロールなど) に許可するには、許可を設定する必要があります。AWSServiceRoleForAmazonGuardDutyMalwareProtection サービスにリンクされたロールを正常に作成するには、GuardDuty で使用する IAM ID に必要な許可が付与されている必要があります。必要なアクセス許可を付与するには、次のポリシーをこの ユーザー、グループ、またはロールにアタッチします。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "guardduty:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "malware-protection.guardduty.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:RegisterDelegatedAdministrator", "organizations:ListDelegatedAdministrators", "organizations:ListAWSServiceAccessForOrganization", "organizations:DescribeOrganizationalUnit", "organizations:DescribeAccount", "organizations:DescribeOrganization" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:GetRole", "Resource": "arn:aws:iam::*:role/*AWSServiceRoleForAmazonGuardDutyMalwareProtection" } ] }

IAM ロールを手動で作成する方法の詳細は、「IAM ユーザーガイド」の「サービスにリンクされたロールを作成する」を参照してください。

Malware Protection for EC2 のサービスにリンクされたロールの編集

Malware Protection for EC2 では、AWSServiceRoleForAmazonGuardDutyMalwareProtection サービスにリンクされたロールを編集できません。サービスリンクロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロール記述の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。

Malware Protection for EC2 のサービスにリンクされたロールの削除

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。これにより、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。

重要

AWSServiceRoleForAmazonGuardDutyMalwareProtection を削除するためには、有効になっているすべてのリージョンで、最初に Malware Protection for EC2 を無効にする必要があります。

サービスにリンクされたロールを削除しようとしたときに Malware Protection for EC2 サービスが無効になっていない場合、削除は失敗します。アカウントで最初に Malware Protection for EC2 を必ず無効にしてください。

[無効] を選択して Malware Protection for EC2 サービスを停止しても、AWSServiceRoleForAmazonGuardDutyMalwareProtection は自動的に削除されません。[有効] を選択して Malware Protection for EC2 サービスを再び開始すると、GuardDuty は既存の AWSServiceRoleForAmazonGuardDutyMalwareProtection を使用して動作を開始します。

サービスリンクロールを IAM で手動削除するには

IAM コンソール、CLI、または IAM API AWS を使用して、AWSServiceRoleForAmazonGuardDutyMalwareProtectionサービスにリンクされたロールを削除します。詳細については、「IAM ユーザーガイド」の「サービスにリンクされたロールの削除」を参照してください。

サポートされている AWS リージョン

Amazon GuardDuty は、Malware Protection for EC2 AWS リージョン が利用可能なすべての で、AWSServiceRoleForAmazonGuardDutyMalwareProtectionサービスにリンクされたロールの使用をサポートしています。

GuardDuty が現在利用可能なリージョンの一覧については、「Amazon Web Services 全般のリファレンス」の「Amazon GuardDuty のエンドポイントとクォータ」を参照してください。

注記

Malware Protection for EC2 は現在、 AWS GovCloud (米国東部) および AWS GovCloud (米国西部) では利用できません。