適用於 EC2 惡意軟體防護的服務連結角色許可 - Amazon GuardDuty

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於 EC2 惡意軟體防護的服務連結角色許可

EC2 的惡意程式碼保護使用名為的服務連結角色 (SLR)。AWSServiceRoleForAmazonGuardDutyMalwareProtection此 SLR 允許 EC2 的惡意軟體防護執行無代理程式掃描,以偵測帳戶中的惡意軟體。 GuardDuty 它 GuardDuty 允許在您的帳戶中創建 EBS 磁碟區快照,並與 GuardDuty 服務帳戶共享該快照。 GuardDuty 評估快照後,它將擷取的 EC2 執行個體和容器工作負載中繼資料包含在 EC2 發現項目的惡意軟體保護中繼資料。AWSServiceRoleForAmazonGuardDutyMalwareProtection 服務連結角色信任 malware-protection.guardduty.amazonaws.com 服務來擔任該角色。

此角色的權限政策有助於 EC2 的惡意軟體保護執行下列工作:

  • 使用 Amazon Elastic Compute Cloud (Amazon EC2) 動作擷取有關 Amazon EC2 執行個體、磁碟區和快照的資訊。EC2 的惡意程式碼保護也提供存取 Amazon EKS 和 Amazon ECS 叢集中繼資料的權限。

  • GuardDutyExcluded 標籤未設定為 true 的 EBS 磁碟區建立快照。依預設,快照會以 GuardDutyScanId 標籤建立。請勿移除此標籤,否則 EC2 的惡意軟體保護將無法存取快照。

    重要

    當您將設定GuardDutyExcluded為時true, GuardDuty服務將 future 將無法存取這些快照集。這是因為此服務連結角色中的其他陳述式無 GuardDuty 法對GuardDutyExcluded設定為的快照執行任何動作。true

  • 僅當 GuardDutyScanId 標籤存在且 GuardDutyExcluded 標籤未設定為 true 時,才允許共用和刪除快照。

    注意

    不允許 EC2 的惡意軟件保護將快照公開。

  • 存取客戶受管金鑰 (GuardDutyExcluded標籤設定為的金鑰除外)trueCreateGrant以呼叫從與 GuardDuty 服務帳戶共用的加密快照建立和存取加密的 EBS 磁碟區。如需每個區域的 GuardDuty 服務帳戶清單,請參閱GuardDuty 服務帳戶依據 AWS 區域

  • 訪問客戶的 CloudWatch 日誌以為 EC2 日誌組創建惡意軟件保護,並將惡意軟件掃描事件日誌放在日/aws/guardduty/malware-scan-events誌組下。

  • 允許客戶決定是否要將快照保留在偵測到惡意軟體的帳戶中。如果掃描檢測到惡意軟件,則服務鏈接角色允許 GuardDuty 向快照添加兩個標籤-GuardDutyFindingDetectedGuardDutyExcluded

    注意

    GuardDutyFindingDetected 標記指定快照包含惡意軟體。

  • 判斷磁碟區是否使用 EBS 受管金鑰加密。 GuardDuty 執行DescribeKey動作以判斷您帳戶中 EBS 管理的金鑰。key Id

  • 擷取使用加密的 EBS 磁碟區的快照 AWS 受管金鑰, AWS 帳戶 然後將其複製到GuardDuty 服務帳戶. 為此,我們使用權限GetSnapshotBlockListSnapshotBlocks. GuardDuty 然後將掃描服務帳戶中的快照。目前,EC2 用於掃描使用加密的 EBS 磁碟區的惡意軟體防護支援 AWS 受管金鑰 可能無法在所有. AWS 區域如需詳細資訊,請參閱 區域特定功能的可用性

  • 允許 Amazon EC2 代表 EC2 呼叫 AWS KMS EC2 的惡意程式碼保護,以對客戶受管金鑰執行多個加密動作。共用使用客戶自管金鑰加密的快照時,需要執行 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" } ] }

為 EC2 建立惡意程式碼防護的服務連結角色

當您首次為 EC2 啟用惡意軟體保護,或在您之前未啟用的受支援區域中為 EC2 啟用惡意軟體保護時,就會自動建立AWSServiceRoleForAmazonGuardDutyMalwareProtection服務連結角色。您也可以使用 IAM 主控台、IAM CLI 或 IAM API 來手動建立 AWSServiceRoleForAmazonGuardDutyMalwareProtection 服務連結角色。

注意

預設情況下,如果您是 Amazon 的新手 GuardDuty,EC2 的惡意軟體保護會自動啟用。

重要

針對委派 GuardDuty 系統管理員帳戶建立的服務連結角色不適用於成員 GuardDuty 帳戶。

您必須設定許可,IAM 主體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。若要成功建立AWSServiceRoleForAmazonGuardDutyMalwareProtection服務連結角色, GuardDuty 搭配使用的 IAM 身分必須具有必要的許可。如需授與必要的許可,請附加以下政策至此 使用者、群組或角色:

{ "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 使用者指南》中的建立服務連結角色

編輯 EC2 惡意程式碼防護的服務連結角色

EC2 的惡意軟體保護不允許您編輯AWSServiceRoleForAmazonGuardDutyMalwareProtection服務連結角色。因為可能有各種實體會參考服務連結角色,所以您無法在建立角色之後變更其名稱。然而,您可使用 IAM 來編輯角色描述。如需詳細資訊,請參閱 IAM 使用者指南中的編輯服務連結角色

刪除 EC2 惡意軟體防護的服務連結角色

若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如此一來,您就沒有未主動監控或維護的未使用實體。

重要

若要刪除AWSServiceRoleForAmazonGuardDutyMalwareProtection,您必須先在啟用 EC2 的所有區域中停用該功能的惡意程式碼保護。

如果在嘗試刪除服務連結角色時,EC2 的惡意程式碼保護未停用,刪除作業將會失敗。如需詳細資訊,請參閱 啟用或停用起始的惡意程式碼 GuardDuty掃描

當您選擇停用以停止 EC2 服務的惡意程式碼保護時,AWSServiceRoleForAmazonGuardDutyMalwareProtection不會自動刪除。如果您接著選擇用再次啟動 EC2 服務的惡意程式碼保護, GuardDuty 將開始使用現有的AWSServiceRoleForAmazonGuardDutyMalwareProtection

使用 IAM 手動刪除服務連結角色

使用 IAM 主控台、 AWS CLI 或 IAM API 刪除AWSServiceRoleForAmazonGuardDutyMalwareProtection服務連結角色。如需詳細資訊,請參閱《IAM 使用者指南》中的刪除服務連結角色

支援 AWS 區域

Amazon GuardDuty 支持在 EC2 惡意軟件保護可用的所有情 AWS 區域 況下使用AWSServiceRoleForAmazonGuardDutyMalwareProtection服務鏈接角色。

如需目前可用的區域清 Amazon GuardDuty ,請參閱 Amazon Web Services 一般參考. GuardDuty

注意

EC2 的惡意程式碼保護目前無法在 AWS GovCloud (美國東部) 和 AWS GovCloud (美國西部) 使用。