跳至主内容

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 , ReceiveMessage ,以及 ChangeMessageVisibility

若需将传感器集成用于事件响应操作,还需为整个IAM主体设置附加策略。以下是响应操作所需权限: CreatePolicy , AttachUserPolicy , ListPolicies , ListAccessKeys ,和 DeleteAccessKey .

最后,可在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区域启用记录功能 .

  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": "Allow",
        "Principal": {
          "Service": "s3.amazonaws.com"
        },
        "Action": "sqs:SendMessage",
        "Resource": "QUEUE_ARN",
        "Condition": {
          "StringLike": {
            "aws:SourceArn": "BUCKET_ARN"
          },
          "StringEquals": {
             "aws:SourceAccount": "ACCOUNT_ID"
        }
        }
      }
    13. 向下滚动至 访问策略 部分,在策略的最后一条语句后添加逗号,并将代码块粘贴到新的一行,位于最后一个闭合方括号之前。

    14. 更新代码中的三个占位符: BUCKET_ARN , ACCOUNT_IDQUEUE_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 需要访问S3存储桶和SQS队列,并通过IAM服务账户实现这一目标。因此必须为该账户配置这两个服务的访问权限。

配置用于生成安全事件的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 替换为你在步骤2g和4g中复制的值 配置所需的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. 存储桶 页面,点击您在 配置必要AWS服务 .

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

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

  6. 复制以下代码块:

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

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

  9. 点击 保存更改 .

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

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

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

  1. 权限 在S3存储桶详情页面的 阻止公共访问(存储桶设置) 部分。

  2. 点击 编辑 按钮。

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

  4. 勾选以下两个选项: 阻止通过 访问控制列表(ACL) 授予的存储桶和对象的公共访问 以及 任何 访问控制列表(ACL) .

  5. 点击 保存更改 .

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

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

    此配置仅允许前几步设置的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服务 ,以及步骤16来自 将权限策略应用于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. 选择 AWS 传感器并点击 集成 .

  3. 检查要求 页面,确认已完成前提步骤。

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

  5. 选择 测试连接 .

  6. 选择 添加传感器 .

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