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 サービスアカウントのリストについては、「GuardDuty による サービスアカウント AWS リージョン」を参照してください。

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

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

    注記

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

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

  • AWS マネージドキーを使用して暗号化された EBS ボリュームのスナップショットを AWS アカウントから取得し、GuardDuty サービスアカウントにコピーします。この目的のため、GetSnapshotBlockListSnapshotBlocks のアクセス許可を使用します。その後、GuardDuty はサービスアカウントのスナップショットをスキャンします。現在、AWS マネージドキーで暗号化された EBS ボリュームのスキャンに対する Malware Protection for EC2 のサポートは、すべての 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 で手動削除するには

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

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

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

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

注記

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