为实时搜索配置AWS并执行runLiveSearchQuery
若要将实时搜索结果上传至S3存储桶,需预先配置AWS(亚马逊云服务平台),包括创建IAM角色、配置目标存储桶及定义必要访问策略。
该流程依赖跨账户访问机制,Bitdefender将代入用户在AWS中提供的角色,安全地将结果上传至指定S3(简单存储服务)存储桶。配置AWS步骤如下:
-
登录AWS云平台。
-
创建S3存储桶。前往 亚马逊S3 > 存储桶 > 创建存储桶 并创建S3存储桶。
注意
有关此流程的更多信息,请参阅 此知识库文章 .
存储桶中保存的信息将存储在以下路径中:
<companyId>/<endpointProtectedEntityId>/osquery_<endpointProtectedEntityId>_<date>.json.变量
描述
companyId该 GravityZone 公司的ID。
endpointProtectedEntityId表示端点的受保护实体的ID。
date创建实时搜索任务的日期。
-
创建一个AWS角色以授予 GravityZone 上传文件到存储桶所需的权限。前往 IAM > 角色 > 创建角色 .
注意
有关创建角色的更多信息,请参阅 此亚马逊知识库文章 .
在创建表单中选择 自定义信任策略 并添加具有以下格式的信任策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": arn:aws:iam::789423628920:root }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": <externalId> } } } ] }该信任策略授予Bitdefender用户担任角色的权限。其中,
Principal.AWS字段指定了 亚马逊资源名称(ARN) ,即 Bitdefender 用户的ARN,用于定义允许担任该角色的主体。为增强安全性,还应配置
ExternalId。这是一个自定义字符串,有助于防止未经授权的访问。该值可以是任何唯一标识符,在通过API调用runLiveSearchQuery方法时将作为参数传递。 -
添加存储桶策略。返回存储桶并进入 权限 ,添加以下存储桶策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": <roleArn> }, "Action": "s3:PutObject", "Resource": <bucketArn> } ] }参数
描述
Principal.AWS将访问存储桶的IAM角色的亚马逊资源名称(ARN)。
例如:
"arn:aws:iam::205620608461:role/osquery-role".ResourceS3存储桶及其对象的ARN,定义策略适用的范围。
例如:
"arn:aws:s3:::osquery-bucket-test/*".注意
有关存储桶策略的更多信息,请参阅 这篇亚马逊知识库文章 .
该策略允许角色将对象放入S3存储桶。
-
为角色创建策略。前往 IAM > 策略 > 创建策略 .
创建以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:PutObject", "Resource": <bucketArn> } ] }该策略授予角色对指定S3存储桶执行
PutObject操作的权限。其中
Resource字段定义了目标存储桶的ARN,指定角色允许上传对象的位置。例如:"arn:aws:s3:::osquery-bucket-test/*". -
使用
runLiveSearchQuery:{ "params": { "companyId": <companyId>, "query": "select * from time;", "s3UploadConfig": { "bucket": <bucketName>, "region": <bucketRegion>, "roleArn" : <roleArn>, "externalId" : <externalId> } }, "jsonrpc": "2.0", "method": "runLiveSearchQuery", "id": "301f7b05-ec02-481b-9ed6-c07b97de2b7b" }示例
{ "params": { "companyId": <companyId>, "query": "select * from time;", // 或其他实时搜索查询 "s3UploadConfig": { "bucket": "osquery-bucket-test", "region": "eu-north-1", "roleArn": "arn:aws:iam::205620608461:role/osquery-role", "externalId": "12345678910" } }, "jsonrpc": "2.0", "method": "runLiveSearchQuery", "id": "301f7b05-ec02-481b-9ed6-c07b97de2b7b" }注意
有关此方法的更多信息,请参阅 runLiveSearchQuery 文档。
-
若您的终端通过中继服务器与GravityZone通信且无法访问S3存储桶,需在中继策略设置中将存储桶域名加入白名单。操作步骤如下:
-
前往 网络 > 策略 页面(位于GravityZone控制台),打开相关终端应用的策略。
-
进入 策略 > 常规 > 中继 > 通信 .
-
在 API数据白名单域名 部分,将S3存储桶域名(例如
s3<区域>amazonaws.com)填入域名字段。 -
点击 加号 按钮添加域名。
-
选择 保存 .
此举将允许存储桶的流量通行。
-