GuardDuty는 활성 결과 내보내기를 지원합니다. 결과는 S3 버킷
으로 이동할 수 있습니다. 새로운 활성 결과 GuardDuty 에서 결과 생성 후 약 5분 이내에 자동으로 내보내집니다. 결과 업데이트 빈도
를 통해 내보내는 빈도를 설정할 수 있습니다.
내보내기 설정은 리전별로 설정됩니다. 각 리전의 내보내기 대상으로 동일한 버킷을 사용할 수 있습니다.
억제된 결과의 새 인스턴스를 포함하여 보관된 결과는 내보내지 않습니다.
연결된 멤버 계정의 모든 결과도 관리자 계정에 대해 구성한 동일한 버킷 위치로 내보내집니다.
결과를 내보내기 위한 옵션을 구성하려면 GuardDuty 작업에 대한 권한 외에도 사용자 계정에 아래의 권한이 부여되어 있어야 합니다.
KMS 콘솔 > [고객 관리형 키]
> [키 생성]
을 누릅니다.
KMS API를 통해 이 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다. 해당 사용자 또는 역할로 이 콘솔에서 이 키를 관리하려면 권한을 추가해야 할 수 있습니다.
아무것도 선택하지 않으면 루트 계정만 키 관리 권한을 가집니다.
암호화 작업에서 KMS 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.
아무것도 선택하지 않으면 모든 게정이 키를 사용할 수 있습니다.
결과 업데이트 빈도
를 통해 버킷으로 내보내는 주기를 설정할 수 있습니다.
KMS키를 선택하면 해당 키의 정책에 아래 내용을 추가해주어야 합니다.
{
"Sid": "AllowGuardDutyKey",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "kms:GenerateDataKey",
"Resource": "arn:aws:kms:Region:<계정 ID>:key/<KMS 키 ID>",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<계정 ID>",
"aws:SourceArn": "arn:aws:guardduty:Region:<계정 ID>:detector/<감지기 ID>"
}
}
}
해당 키 정책 내용은 정책 보기
를 누르면 완성된 정책 내용이 나와있습니다.
KMS 키 정책
내용을 전체 복사해서 KMS 콘솔
의 해당 키의 키 정책 편집
을 통해서 아래쪽에 내용을 추가합니다.
버킷 정책
을 수동으로 추가해주어야 합니다.{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGuardDutygetBucketLocation",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws:s3:::<버킷 이름>",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<계정 ID>",
"aws:SourceArn": "arn:aws:guardduty:<리전 명>:<계정 ID>:detector/<감지기 ID>"
}
}
},
{
"Sid": "AllowGuardDutyPutObject",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<버킷 이름>/<접두사>/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<계정 ID>",
"aws:SourceArn": "arn:aws:guardduty:<리전 명>:<계정 ID>:detector/<감지기 ID>"
}
}
},
{
"Sid": "DenyUnencryptedUploadsThis is optional",
"Effect": "Deny",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<버킷 이름>/<접두사>/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
},
{
"Sid": "DenyIncorrectHeaderThis is optional",
"Effect": "Deny",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<버킷 이름>/<접두사>/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:<리전 명>:<계정 ID>:key/<KMS 키 ID>"
}
}
},
{
"Sid": "DenyNon-HTTPS",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::<버킷 이름>/<접두사>/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
]
}