기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
백업을 위한 GuardDuty 맬웨어 보호: IAM 역할 권한
맬웨어 스캔을 위해 제공된 고객 역할
GuardDuty 맬웨어 보호는 백업 리소스, 즉 스냅샷, AMIs 및 EBS/EC2/S3 복구 시점에서 스캔을 시작할 때 고객 역할(스캐너 역할)이 제공될 것으로 예상합니다. 이 역할은 GuardDuty가 특정 리소스에 대한 스캔을 수행하는 데 필요한 권한을 제공합니다. 이 역할에 대한 권한 정책 및 신뢰 정책은에서 확인할 수 있습니다역할에 대한 권한 및 신뢰 정책. 아래 섹션에서는 이러한 각 권한이 필요한 이유를 설명합니다.
권한에 대한 세부 정보
-
ModifySnapshotAttribute- GuardDuty 맬웨어 보호 서비스 계정에서 암호화되지 않은 고객 관리형 키 암호화된 스냅샷에 액세스할 수 있도록 허용합니다. -
CreateGrant- GuardDuty 맬웨어 보호가 GuardDuty 서비스 계정에 액세스 권한이 제공된 고객 관리형 키 암호화 스냅샷에서 고객 관리형 키 암호화 EBS 볼륨을 생성하고 액세스할 수 있도록 허용합니다. -
RetireGrant- GuardDuty 맬웨어 보호가 암호화된 스냅샷을 읽기 위해 고객 관리형 키에 생성된 권한 부여를 사용 중지하도록 허용 -
ReEncryptTo및ReEncryptFrom- EBS에서 고객 관리형 키로 암호화된 스냅샷에 대한 액세스 권한을 GuardDuty에 부여하고이 스냅샷에서 암호화된 볼륨을 생성하는 데 필요합니다. 고객은 공유 중에 스냅샷의 ReEncryption을 키 전환으로 간주할 수 있지만 스냅샷은 일단 생성되면 고객 관점에서 변경할 수 없습니다. -
ListSnapshotBlocks및GetSnapshotBlock- EBS Direct APIs는 AWS Managed Key 암호화된 스냅샷의 스냅샷 블록에 액세스하는 데 사용됩니다. 이는 AWS Managed Key 암호화된 스냅샷에 교차 계정으로 액세스할 수 없기 때문입니다. -
Decrypt- 증분 스캔의 일부로 EBS Direct APIs를 사용하여 메모리에 다운로드할 때 고객 관리형 키로 암호화된 기본 스냅샷을 복호화할 수 있습니다. -
ListChangedBlocks- 증분 스냅샷 스캔에 사용되는 EBS Direct API를 사용하여 두 스냅샷 간에 변경된 블록 목록을 가져옵니다. -
DescribeKey- GuardDuty 맬웨어 보호가 고객 계정에서 AWS 관리형 키의 keyId를 확인할 수 있도록 허용합니다. -
DescribeImages- AMI에 속하는 스냅샷 목록을 가져오기 위해 AMI를 설명할 수 있습니다. -
DescribeRecoveryPoint- 서비스가 복구 시점 세부 정보를 가져오고 복구 시점의 리소스 유형을 확인할 수 있도록 허용합니다. -
CreateBackupAccessPoint,DescribeBackupAccessPoint,DeleteBackupAccessPoint- 서비스가 복구 포인트에 액세스하는 데 필요한 액세스 포인트를 생성, 설명 및 삭제할 수 있도록 허용합니다. -
kms:Decrypt- 서비스가 S3 복구 시점 스캔 중에 S3 복구 시점의 객체에 액세스할 수 있도록 허용합니다.
역할 보안
역할은 GuardDuty 맬웨어 보호 서비스 보안 주체를 신뢰하는 신뢰 정책으로 구성되어야 합니다. 이렇게 하면 GuardDuty 서비스 이외의 보안 주체가이 역할을 수임할 수 없습니다. 또한 정책 범위를 대신 특정 리소스로 줄이는 것이 좋습니다*. 여기에는 스냅샷 ID와 키 ID가 포함됩니다. 이렇게 하면 역할이 특정 리소스에만 액세스할 수 있습니다.
중요
구성이 잘못되면 권한이 부족하여 스캔에 실패할 수 있습니다.
GuardDuty 맬웨어 보호가 AWS KMS에서 권한 부여를 사용하는 방법
KMS 키를 사용하려면 GuardDuty 맬웨어 보호에 권한 부여가 필요합니다.
암호화된 스냅샷 또는 암호화된 스냅샷으로 구성된 EC2 AMI에서 스캔을 시작하면 GuardDuty 맬웨어 보호는 CreateGrant 요청을 AWS KMS에 전송하여 사용자를 대신하여 권한 부여를 생성합니다. 이러한 권한 부여는 GuardDuty에 계정의 특정 키에 대한 액세스 권한을 부여합니다.
다음 내부 작업에 고객 관리형 키를 사용하려면 GuardDuty 맬웨어 보호에 권한 부여가 필요합니다.
-
DescribeKey 요청을에 AWS 전송하여 맬웨어 스캔을 위해 제출된 리소스가 암호화된 대칭 고객 관리형 키에 대한 세부 정보를 가져옵니다.
-
CreateVolume API를 사용하여 암호화된 스냅샷에서 EBS 볼륨을 생성하고 동일한 키로 볼륨을 암호화합니다.
-
증분 스캔 중에 GetSnapshotBlock API를 통해 스냅샷의 스냅샷 블록에 액세스합니다.
-
AWS KMS에 Decrypt 요청을 보내 암호화된 데이터 키를 복호화하여 스캔 중에 스냅샷의 데이터를 읽는 데 사용할 수 있도록 합니다.
생성된 권한 부여를 취소하거나 언제든지 고객 관리형 키에 대한 서비스의 액세스를 제거할 수 있습니다. 이렇게 하면 GuardDuty는 고객 관리형 키로 암호화된 데이터에 액세스할 수 없으며, 이는 해당 데이터에 의존하는 작업에 영향을 미칩니다.
GuardDuty 맬웨어 보호 암호화 컨텍스트
암호화 컨텍스트는 데이터에 대한 추가 컨텍스트 정보를 포함하는 선택적 키-값 페어 세트입니다.
데이터 암호화 요청에 암호화 컨텍스트를 포함하면 AWS KMS;는 암호화 컨텍스트를 암호화된 데이터에 바인딩합니다. 요청에 동일한 암호화 컨텍스트를 포함해야 이 데이터를 해독할 수 있습니다.
GuardDuty 맬웨어 보호는 두 암호화 컨텍스트 중 하나를 사용합니다.
암호화 컨텍스트 1: 키는 입니다aws:guardduty:id.
"encryptionContext": { "aws:guardduty:id": "snap-11112222333344" }
이 암호화 컨텍스트는 CreateGrant, Decrypt, GenerateDataKeyWithoutPlaintext, ReEncryptTo, RetireGrant, DescribeKey 권한 부여 작업에 사용됩니다.
이 암호화 컨텍스트 및 권한 부여 작업을 사용하여 현재 리소스에 하나의 권한 부여가 생성됩니다.
암호화 컨텍스트 2: 키는 입니다. aws:ebs:id
"encryptionContext": { "aws:ebs:id": "snap-11112222333344" }
이 암호화 컨텍스트는 ReEncryptFrom, Decrypt, RetireGrant, DescribeKey 권한 부여 작업에 사용됩니다.
이러한 암호화 컨텍스트 및 권한 부여 작업을 통해 세 가지 권한 부여가 생성됩니다. ReEncryptFrom 권한 부여 작업이 있는 대상 스냅샷에 하나씩 있습니다. Decrypt, RetireGrant, DescribeKey 작업이 있는 대상 스냅샷의 두 번째 스냅샷입니다. 그리고 두 번째 권한 부여와 동일한 권한 부여 작업을 가진 기본 스냅샷의 세 번째 권한 부여입니다.
역할에 대한 권한 및 신뢰 정책
권한 정책
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ebs:ListSnapshotBlocks", "ebs:ListChangedBlocks", "ebs:GetSnapshotBlock" ], "Resource": "arn:aws:ec2:*::snapshot/*" }, { "Sid": "CreateGrantPermissions", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "ForAnyValue:StringLike": { "kms:EncryptionContext:aws:guardduty:id": "snap-*", "kms:ViaService": [ "guardduty.*.amazonaws.com", "backup.*.amazonaws.com" ] }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "CreateGrant", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "CreateGrantPermissionsForReEncryptAndDirectAPIs", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "ForAnyValue:StringLike": { "kms:EncryptionContext:aws:ebs:id": "snap-*", "kms:ViaService": [ "guardduty.*.amazonaws.com", "backup.*.amazonaws.com" ] }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "ReEncryptTo", "ReEncryptFrom", "RetireGrant", "DescribeKey" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeImages", "ec2:DescribeSnapshots" ], "Resource": "*" }, { "Sid": "ShareSnapshotPermission", "Effect": "Allow", "Action": [ "ec2:ModifySnapshotAttribute" ], "Resource": "arn:aws:ec2:*:*:snapshot/*" }, { "Sid": "ShareSnapshotKMSPermission", "Effect": "Allow", "Action": [ "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" } } }, { "Sid": "DescribeKeyPermission", "Effect": "Allow", "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:*:*:key/*" }, { "Sid": "DescribeRecoveryPointPermission", "Effect": "Allow", "Action": [ "backup:DescribeRecoveryPoint" ], "Resource": "*" }, { "Sid": "CreateBackupAccessPointPermissions", "Effect" : "Allow", "Action" : [ "backup:CreateBackupAccessPoint" ], "Resource": "arn:aws:backup:*:*:recovery-point:*" }, { "Sid": "ReadAndDeleteBackupAccessPointPermissions", "Effect" : "Allow", "Action" : [ "backup:DescribeBackupAccessPoint", "backup:DeleteBackupAccessPoint" ], "Resource": "*" }, { "Sid": "KMSKeyPermissionsForInstantAccess", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringLike": { "kms:ViaService": "backup.*.amazonaws.com" } } } ] }
신뢰 정책
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "malware-protection.guardduty.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }