跳至主内容

AWS传感器(单账户环境配置)

AWS传感器负责收集并处理用户、角色或AWS服务执行的配置变更及操作信息。

AWS传感器整体配置流程包含两个阶段:

  1. 满足先决条件

    此流程部分需在AWS控制台完成,您需要配置AWS CloudTrail和AWS Config服务,并创建SQS队列及S3存储桶以供 GravityZone 访问。

  2. 配置传感器

    此流程部分需在 GravityZone 控制中心 。您需要提供AWS所需信息,以便 GravityZone 访问SQS队列和S3存储桶。

满足先决条件

此部分流程在您的AWS控制台中完成,您需要配置AWS CloudTrail和AWS Config服务,并创建一个SQS队列和一个S3存储桶供 GravityZone 访问。

在AWS控制台中配置AWS服务

注意

以下配置过程使用AWS根账户执行。如需使用其他账户类型执行这些操作,请参阅 配置AWS权限 文章,了解如何为您的账户设置必要权限。

为使AWS传感器正常工作,您首先需要在AWS控制台中配置若干AWS服务。您需配置一个S3存储桶来收集AWS CloudTrail跟踪日志和AWS Config服务数据。AWS Config服务还会将配置变更信息发送至AWS SNS主题。一个SQS队列订阅了该主题,因此也能接收配置信息。当存储桶中创建新对象时,S3存储桶还会向SQS队列发送通知。

GravityZone 需要同时访问S3存储桶和SQS队列。这是通过AWS IAM服务账户实现的,您需要为该账户应用包含以下权限的策略:

  • S3存储桶权限: GetObject , PutObjectListBucket

  • SQS队列权限: DeleteMessage , PurgeQueue , ReceiveMessageChangeMessageVisibility

若您还需利用传感器集成进行事件响应操作,则需设置一个适用于整个IAM主体的附加策略。以下是响应操作所需的必要权限: CreatePolicy , AttachUserPolicy , ListPolicies , ListAccessKeysDeleteAccessKey .

最后,您可在S3存储桶上配置生命周期规则,用于清理已被 GravityZone 提取的日志。此步骤旨在管理S3存储成本,属于可选操作,传感器集成无需此配置。

请注意,本节所述步骤可能因您的AWS环境、策略及需求差异而有所调整。更多详细信息,请参阅官方 AWS文档 .

AWS传感器先决条件

AWS 中部署 GravityZone 传感器前,请按以下步骤操作:

  1. 启用并配置必要的AWS服务 - 必须启用并配置AWS Config、AWS CloudTrail、Amazon SQS及Amazon SNS服务。

  2. 配置您的AWS用户账户权限 .

  3. (可选) 配置生命周期规则 在S3存储桶上。

重要提示

启用以下每项服务可能会产生额外费用: AWS CloudTrail , AWS Config , Amazon SQS , AWS S3 Amazon SNS 。成功集成需要所有这些服务。

配置必要的AWS服务

  1. 配置多区域CloudTrail追踪。

    1. 登录您的AWS控制台。

    2. 使用搜索栏查找"CloudTrail"。

    3. CloudTrail 页面,点击 创建追踪 按钮。

    4. 为追踪命名。

    5. 存储位置 部分,选择 创建新的S3存储桶 .

    6. 追踪日志存储桶和文件夹 在字段中输入唯一的存储桶名称。

    7. 日志文件SSE-KMS加密 部分,取消勾选 启用 复选框。

    8. 其余字段保持默认设置,点击 下一步 .

      AWS CloudTrail attributes
    9. 事件 部分,勾选全部三个类别: 管理事件 , 数据事件 洞察事件 .

    10. 管理事件 部分, API活动 下方,勾选 读取 写入 复选框。

    11. 数据事件 部分,展开 数据事件:S3 部分。

    12. 数据事件类型 字段中,从下拉菜单中选择 S3

    13. 日志选择器模板 字段中,从下拉菜单中选择 记录所有事件

    14. 洞察事件 部分,勾选以下两个复选框: API调用率 API错误率 .

    15. 点击 下一步 .

    16. 审核并创建 页面,点击 创建跟踪 .

      您将被重定向至 跟踪 列表页面。

  2. 为AWS Config服务配置S3权限。

    1. 追踪 网格中,点击 S3 存储桶。

      AWS Trails grid
    2. 对象 页面,点击面包屑导航菜单中列出的存储桶名称。

      Objects breadcrumb menu
    3. 在存储桶页面,点击 权限 选项卡。

    4. 向下滚动至 存储桶策略 部分,点击 编辑 按钮。

    5. 复制以下代码块:

      {
            "Sid": "AWSConfigBucketPermissionsCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "BUCKET_ARN",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "ACCOUNT_ID"
                }
            }
        },
        {
            "Sid": "AWSConfigBucketExistenceCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "BUCKET_ARN",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "ACCOUNT_ID"
                }
            }
        },
        {
            "Sid": "AWSConfigBucketDelivery",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "BUCKET_ARN/AWSLogs/ACCOUNT_ID/Config/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "ACCOUNT_ID",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    6. 策略 部分,在最后一条语句后添加逗号,并将代码块粘贴到新的一行,位于右方括号之前。

    7. 更新代码中的两个占位符: BUCKET_ARNACCOUNT_ID 存储桶ARN 的值显示在 策略 部分。请保存这些值以备后续使用。

    8. 要查找您的账户ID,请点击 control_center_user_menu_icon.png 页面右上角的用户图标。您的账户ID会显示在下拉菜单中,用户名正下方。

    9. 点击 保存更改 .

  3. 配置AWS Config并启用AWS Config录制功能

    1. 在AWS控制台中使用搜索栏查找“Config”。

    2. 在左侧菜单中,点击 设置AWS Config 。不要使用 一键设置 选项。

      注意

      此步骤假设您当前的AWS账户区域从未配置过AWS Config服务。如果AWS Config服务已配置,请通过左侧菜单访问 设置 页面。点击 编辑 ,勾选 启用录制 复选框并确认您的选择。接下来,按照以下描述的相同步骤操作。

    3. 常规设置 部分,找到 录制策略 ,选择 录制本区域支持的所有当前及未来资源类型 .

    4. 勾选 包含全局录制的资源类型 复选框。

    5. AWS Config角色 字段中,选择 使用现有的AWS Config服务关联角色 选项。

      其余字段可保留默认值。

    6. 交付方法 部分, Amazon S3存储桶 下,选择 从您的账户中选择一个存储桶 选项。

    7. 对于 S3存储桶名称(必填) 字段,选择步骤1中预先创建的S3存储桶。

    8. 在Amazon SNS主题部分,勾选 将配置更改和通知流式传输到Amazon SNS主题 复选框。

    9. 选择 创建主题 选项。

    10. 输入SNS主题的名称。

    11. 点击 下一步 两次,然后确认选择。

    注意

    这些步骤将为您用户账户的当前AWS区域启用AWS Config记录。如需添加其他区域的AWS Config通知,请参阅 配置AWS Config并为其他AWS区域启用AWS Config记录 .

  4. 配置SQS队列并将其订阅到SNS主题。

    1. 在AWS控制台中使用搜索栏查找"Amazon SQS"。

    2. Amazon SQS 页面中,打开左侧菜单并点击 队列 .

    3. 队列 列表中,点击 创建队列 .

    4. 详细信息 部分,对于 类型 字段,选择 标准 .

    5. 为队列输入一个名称。

    6. 其余字段保留默认值并点击 创建队列 .

      您将被重定向到队列的专属页面。

    7. 复制队列URL和ARN值以备后用。

      queue_details_cp_154326_en.png
    8. 在SNS订阅标签页中,点击 订阅Amazon SNS主题 .

    9. 在下拉菜单中选择您在步骤3中创建的SNS主题,然后点击 保存 .

      您将被重定向到队列的专属页面。

    10. 点击 访问策略 选项卡。

    11. 访问策略(权限) 部分,点击 编辑 .

    12. 复制以下代码块:

      {
        "Sid": "Stmt1678745203026",
        "Effect": "允许",
        "Principal": {
          "Service": "s3.amazonaws.com"
        },
        "Action": "sqs:发送消息",
        "Resource": "队列ARN",
        "Condition": {
          "StringLike": {
            "aws:来源ARN": "存储桶ARN"
          },
          "StringEquals": {
             "aws:来源账户": "账户ID"
        }
        }
      }
    13. 向下滚动至 访问策略 部分,在策略的最后一条语句后添加逗号,并将代码块粘贴在最后一个闭合方括号前的新行上。

    14. 更新代码中的三个占位符: 存储桶ARN , 账户ID队列ARN 分别替换为步骤2g、2h和4g中的值。

    15. 点击 保存 .

  5. 配置S3存储桶事件。

    1. 在AWS控制台中使用搜索栏查找“S3”并选择 S3 选项。

    2. 在左侧菜单中点击 存储桶 .

    3. 存储桶 页面,点击您创建的S3存储桶。

    4. 点击 属性 标签页。

    5. 向下滚动至 事件通知 部分并点击 创建事件通知 按钮。

    6. 通用配置 部分,为通知配置命名。

    7. 事件类型 部分, 对象创建 下方,勾选 所有对象创建事件 复选框。

    8. 目标 部分, 目标 下方,选择 SQS队列 选项。

    9. 指定SQS队列 下,选择 从您的SQS队列中选择 选项,并选中您在步骤4中创建的SQS队列。

    10. 点击 保存更改 .

接下来,您需要配置具有相应权限的IAM服务账户。

配置AWS权限

此操作需要IAM管理员权限。

请按以下步骤配置必要的AWS权限:

GravityZone 需要通过IAM服务账户访问S3存储桶和SQS队列,因此必须为该账户配置访问这两项服务的权限。

配置IAM策略以生成安全事件

要配置IAM策略以生成安全事件,请按照以下步骤操作:

  1. 使用搜索栏查找"IAM",并点击 身份与访问管理(IAM) 选项。

  2. 在左侧菜单中点击 策略 .

  3. 策略 页面,点击表格上方的 创建策略 按钮。

  4. 指定权限 页面,点击 JSON 按钮。

  5. 策略编辑器 部分,将现有文本替换为以下内容:

    {    
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AllowAccessToS3Bucket",
                "Effect": "Allow",
                "Action": [
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:ListBucket"
                ],
                "Resource": [
                    "BUCKET_ARN/*",
                    "BUCKET_ARN"]
            },
            {
                "Sid": "AllowAccessToSQSQueue",
                "Effect": "Allow",
                "Action": [
                    "sqs:ReceiveMessage",
                    "sqs:DeleteMessage",
                    "sqs:ChangeMessageVisibility",
                    "sqs:PurgeQueue"
                ],
                "Resource": "QUEUE_ARN"
            },
            {
                "Sid": "ListAttachedRolePolicies",
                "Effect": "Allow",
                "Action": [
                    "iam:ListAttachedRolePolicies",
                    "iam:ListRoles"
                ],
                "Resource": [
                    "arn:aws:iam::ACCOUNT_ID:*"
                ]
            },
            {
                "Sid": "LightSail",
                "Effect": "Allow",
                "Action": [
                    "lightsail:GetInstances",
                    "lightsail:GetRelationalDatabases",
                    "lightsail:GetBuckets"
                ],
                "Resource": [
                    "*"
                ]
            }
        ]
    }
  6. 更新代码中的两个占位符: BUCKET_ARNQUEUE_ARN 替换为您在 配置必要的AWS服务 .

  7. 点击 下一步 .

  8. 策略详情 部分,为您的策略提供名称和描述,并点击 创建策略 .

    您将被重定向至 策略 页面。

    若需直接从 GravityZone 执行事件响应操作,请继续按照以下说明操作。否则请跳转至 为IAM服务账户应用权限策略 .

配置事件响应操作的IAM策略

要为事件响应操作配置IAM策略,请按以下步骤操作:

  1. 策略 页面,点击表格上方的 创建策略 按钮。

  2. 指定权限 页面,点击 JSON 按钮。

  3. 策略编辑器 部分,将现有文本替换为以下内容:

    {
     "Version": "2012-10-17",
     "Statement": [
         {
             "Sid": "VisualEditor0",
             "Effect": "Allow",
             "Action": [
                 "iam:ListPolicies",
                 "iam:AttachUserPolicy",
                 "iam:CreatePolicy",
                 "iam:DeleteAccessKey",
                 "iam:ListAccessKeys"
             ],
             "Resource": [
                 "arn:aws:iam::ACCOUNT_ID:*"
             ]
         }
     ]
    }
  4. 更新 ACCOUNT_ID 占位符,将其替换为你在步骤2g中复制的值,该步骤位于 配置必要的AWS服务 .

  5. 点击 下一步 .

  6. 策略详情 部分,为你的策略提供名称和描述,然后点击 创建策略 .

    你将被重定向到 策略 页面。

为IAM服务账户应用权限策略

创建策略后,你将创建一个IAM服务账户。在账户创建过程中,你将为其配置一个或两个权限策略。

要创建并配置IAM服务账户,请按照以下步骤操作:

  1. 策略 页面,点击左侧菜单中的 用户 .

  2. 点击 添加用户 按钮。

  3. 用户详情 部分,输入用户名并点击 下一步 .

  4. 设置权限 页面,选择 直接附加策略 选项。

  5. 权限策略 部分,查找并选择您之前创建的策略。

    • 如需使用传感器集成生成安全事件,请选择通过 配置IAM策略以生成安全事件 .

    • 如需使用传感器集成生成安全事件并执行来自 GravityZone 的事件响应操作,请同时选择两个策略。

    注意

    不要仅选择事件响应策略,否则将导致传感器配置错误。

  6. 点击 下一步 .

  7. 点击 创建用户 .

    系统将跳转至 用户 页面。

  8. 用户 页面中,点击网格中的用户名。

  9. 在用户页面,转至 安全凭证 标签页。

  10. 向下滚动至 访问密钥 部分,并点击 创建访问密钥 .

  11. 使用场景 部分,选择 第三方服务 选项。

  12. 勾选 确认 复选框并点击 下一步 .

  13. 点击 创建访问密钥 .

  14. 获取访问密钥 页面,复制 访问密钥 秘密访问密钥 值以备后续使用。

  15. 点击 完成 然后 继续 .

    您将被重定向至用户详情页面。

  16. 在用户详情页面中,从 摘要 部分复制用户ARN值并保存该信息以供后续使用。

授予IAM服务账号访问S3存储桶的权限

要为IAM服务账号授予S3存储桶访问权限,请按以下步骤操作:

  1. 在AWS控制台搜索栏中输入"S3"并选择 S3 选项。

  2. 在左侧菜单中点击 存储桶 .

  3. 存储桶 页面,点击您在第1步 配置必要AWS服务 .

  4. 在存储桶详情页面,点击 权限 标签页。

  5. 向下滚动至 存储桶策略 部分并点击 编辑 按钮。

  6. 复制以下代码块:

    {
                "Sid": "允许传感器用户访问",
                "Effect": "允许",
                "Principal": {
                    "AWS": "IAM_SENSOR_USER_ARN"
                },
                "Action": [
                    "s3:获取对象",
                    "s3:放置对象",
                    "s3:列出存储桶"
                ],
                "Resource": [
                    "BUCKET_ARN/*",
                    "BUCKET_ARN"],
                "Condition": {
                    "StringEquals": {
                        "AWS:源账户": "ACCOUNT_ID"
                    }
                }
            }
  7. 策略 部分,在策略的最后一条语句后添加逗号,并将代码块粘贴到新的一行,位于最后一个闭合方括号之前。

  8. 更新代码中的三个占位符: IAM_SENSOR_USER_ARN , ACCOUNT_IDQUEUE_ARN ,使用来自 配置必要的AWS服务 的步骤2g和2h,以及来自 为IAM服务账户应用权限策略 .

  9. 点击 保存更改 .

    您将被重定向到存储桶详细信息页面, 权限 选项卡已选中。

通过访问点策略配置对S3存储桶的有限公共访问

要通过访问点策略配置对S3存储桶的有限公共访问,请按照以下步骤操作:

  1. 权限 选项卡的S3存储桶详细信息页面中,转到 阻止公共访问(存储桶设置) 部分。

  2. 点击 编辑 按钮。

  3. 编辑区块公共访问(存储桶设置) 页面,取消勾选 阻止所有公共访问 复选框。

  4. 勾选以下两个复选框: 阻止通过 访问控制列表(ACLs) 阻止通过 任意 访问控制列表(ACLs) .

  5. 点击 保存更改 .

  6. 在弹出窗口中输入“确认”并点击 确认 按钮。

    您将被重定向至存储桶详情页面。

    此配置仅向先前步骤中配置的IAM服务账户授予公共访问权限。

为IAM服务账户授予SQS队列访问权限

要为IAM服务账户授予SQS队列访问权限,请按以下步骤操作:

  1. 在AWS控制台搜索栏中查找“Amazon SQS”。

  2. Amazon SQS 页面,打开左侧菜单并点击 队列 .

  3. 队列 列表中,点击您之前在 配置必要的AWS服务 .

  4. 在队列详情页面,点击 访问策略 标签页。

  5. 点击 编辑 按钮。

  6. 复制以下代码块:

    {
                "Sid": "允许传感器用户访问",
                "Effect": "允许",
                "Principal": {
                    "AWS": "IAM_传感器用户_ARN"
                },
                "Action": [
                    "sqs:接收消息",
                    "sqs:删除消息",
                    "sqs:更改消息可见性",
                    "sqs:清空队列"
                ],
                "Resource": "队列_ARN",
                "Condition": {
                    "StringEquals": {
                        "AWS:源账户": "账户_ID"
                    }
                }
            }
  7. 滚动至 访问策略 部分,在策略最后一条语句后添加逗号,并将代码块粘贴至新行(位于最后一个右方括号之前)。

  8. 更新代码中的三个占位符: IAM_传感器用户_ARN , 账户_ID队列_ARN ,其值分别来自 配置必要的AWS服务 的步骤2g和2h,以及 为IAM服务账户应用权限策略 .

  9. 滚动页面并点击 保存 按钮。

配置生命周期规则

这是一个可选配置步骤,旨在管理S3存储成本,因为它会清除已被 GravityZone .

若不想执行此步骤,请跳转至 设置AWS传感器 .

配置生命周期规则需遵循以下步骤:

  1. 在AWS控制台搜索栏输入"S3"并选择 S3 选项。

  2. 在左侧菜单中点击 存储桶 .

  3. 存储桶 页面,点击您在 配置必要AWS服务 .

  4. 在存储桶详情页面,点击 管理 标签页。

  5. 生命周期规则 部分,点击 创建生命周期规则 按钮。

  6. 创建生命周期规则 页面中,为规则命名。

  7. 在规则作用范围中,选择 应用于存储桶中的所有对象 选项。

  8. 勾选 我确认此规则将应用于存储桶中的所有对象 复选框。

  9. 生命周期规则操作 部分,勾选以下选项:

    • 使对象的当前版本过期

    • 删除过期的对象删除标记或不完整的分段上传

  10. 使对象的当前版本过期 部分,于 对象创建天数 字段中输入 30 .

  11. 删除过期的对象删除标记或不完整的分段上传 部分,于 天数 字段中输入 30 .

  12. 点击 创建规则 .

配置AWS传感器

  1. 配置 > 传感器管理 页面,选择 新增 以集成新传感器。

  2. 选择要部署传感器的公司并点击 下一步 .

  3. 选择 AWS 传感器并点击 集成 .

  4. 检查要求 页面,确认已完成先决步骤。

  5. 为集成命名并提供必要的AWS详细信息。

  6. 选择 测试连接 .

  7. 选择 添加传感器 .

    新集成将出现在 传感器管理 网格中。