您可以将 Security Command Center Enterprise 层级连接到您的 AWS 环境, 您可以完成以下操作:
- 检测并修复软件漏洞和错误配置 使用 Cloud Build
- 为 AWS 创建和管理安全状况
- 识别从公共互联网到高价值数据的潜在攻击路径 AWS 资产
- 使用各种标准和基准映射 AWS 资源的合规性
将 Security Command Center 连接到 AWS 后,您可以在一个位置确保安全性 管理并修复整个环境中的威胁和漏洞, Google Cloud 和 AWS
若要让 Security Command Center 监控您的 AWS 组织,您必须配置 使用 Google Cloud 服务代理进行连接 以及有权访问您要监控的资源的 AWS 账号。 Security Command Center 使用此连接定期收集 您定义的所有 AWS 账号和区域
本文档介绍如何设置与 AWS 的连接。当您设置 进行连接时,需要配置以下内容:
- AWS 中可以直接访问 AWS 的一系列账号 资源。在 Google Cloud 控制台中 账号称为收款方账号。
- AWS 中具有适当政策和角色, 对收集器账号进行身份验证。在 Google Cloud 控制台中 此账号称为“受托账号”。受托账号 和收集器账号必须位于同一 AWS 组织中。
- Google Cloud 中连接到受托方的服务代理 账号进行身份验证。
- 用于从 AWS 资源收集资产数据的流水线。
- (可选)敏感数据保护进行分析的权限 您的 AWS 内容
此连接不适用于 Security Command Center 的 SIEM 功能 让您可以注入 AWS 日志以进行威胁检测。
下图展示了此配置。租户项目是一个项目 由系统自动创建,包含您的资产数据收集流水线 实例。
准备工作
请先完成这些任务,然后再完成此页面上的其余任务。
激活 Security Command Center Enterprise 层级
完成设置指南的第 1 步和第 2 步,以激活 Security Command Center Enterprise 层级。
设置权限
如需获取使用 AWS 连接器所需的权限,
请让管理员向您授予
Cloud Asset Owner (roles/cloudasset.owner
) IAM 角色。
如需详细了解如何授予角色,请参阅管理访问权限。
创建 AWS 账号
确保您已创建以下 AWS 资源:
- AWS IAM 用户 AWS IAM 访问权限 代理和收集器 AWS 账号控制台的权限。
AWS 账号 ID 为可以用作委派账号的 AWS 账号。如果您想 Security Command Center 自动发现 AWS 账号以查找资源, 委派账号必须附加到AWS 组织 并且为以下项之一:
使用基于资源的委托的 AWS 账号 政策 可提供
organization
和list
权限。示例 请参阅示例:查看组织、组织部门、账号和 政策。
配置 Security Command Center
在 Google Cloud 控制台中,前往设置页面。
选择您已激活的组织 Security Command Center Enterprise 层级已启用。
点击第 3 步:设置 Amazon Web Services (AWS) 连接器。
在委派账号 ID 中,输入 AWS 的 AWS 账号 ID 账号(您可以用作委托账号)。
如需让 Sensitive Data Protection 分析您的 AWS 数据, 保留授予敏感数据保护权限 发现。此选项会在 收集器的 CloudFormation 模板 角色。
此选项授予的 AWS IAM 权限
s3:GetBucketLocation
s3:ListAllMyBuckets
s3:GetBucketPolicyStatus
s3:ListBucket
s3:GetObject
iam:ListAttachedRolePolicies
iam:GetPolicy
iam:GetPolicyVersion
iam:ListRolePolicies
iam:GetRolePolicy
ce:GetCostAndUsage
dynamodb:DescribeTableReplicaAutoScaling
identitystore:ListGroupMemberships
identitystore:ListGroups
identitystore:ListUsers
lambda:GetFunction
lambda:GetFunctionConcurrency
logs:ListTagsForResource
s3express:GetBucketPolicy
s3express:ListAllMyDirectoryBuckets
wafv2:GetIPSet
此选项仅向收集器角色授予所需的 AWS 权限。 如需分析 AWS 数据,请启用敏感数据 发现。
(可选)查看高级选项。
点击继续。Connect to AWS 页面将打开。
完成下列操作之一:
- 下载并查看委派角色的 CloudFormation 模板 以及收集器角色
- 如果您已配置高级选项或需要更改默认 AWS 角色名称(aws-delegated-role、aws-collector-role 和 aws-sensitive-data-protection-role),请选择配置 AWS 账号 手动设置。复制服务代理 ID、委派角色名称、收集器 以及 Sensitive Data Protection 收集器角色名称。
创建连接后,您将无法更改角色名称。
请勿点击创建。相反, 配置您的 AWS 环境。
配置 AWS 环境
您可以使用以下方法之一设置 AWS 环境:
- 使用之前下载的 CloudFormation 模板 配置 Security Command Center。 有关说明,请参阅 使用 CloudFormation 模板设置您的 AWS 环境。
- 如果您使用的是自定义设置或角色名称,请配置 AWS 账号。有关说明,请参阅 手动配置 AWS 账号。
使用 CloudFormation 模板设置您的 AWS 环境
如果您下载了 CloudFormation 模板,请按照以下步骤设置您的 AWS 环境
- 登录 AWS 委托账号 控制台。请确保 您登录的委托账号用于 收集器 AWS 账号。
- 转到 AWS CloudFormation 模板控制台。
使用委派角色模板文件创建堆栈。如需更多信息 请参阅使用 AWS 管理服务根据现有资源创建堆栈 控制台 。
在浏览提示的过程中,请执行以下操作:
- 在指定模板时,上传委派的角色 模板文件。
- 指定堆栈详细信息时,请输入堆栈名称。
查看参数。确保受委托和收集器角色 与连接到 AWS 页面中列出的名称一致, Google Cloud 控制台
根据贵组织的要求,更新堆栈选项。
等待堆栈创建完毕。如果出现问题,请参阅 问题排查。
如果您 选择逐个添加 AWS 账号(通过对 账号),您还可以为每个 AWS 账号创建单独的堆栈 创建单个堆栈集的过程
使用 AWS 管理账号或任何已注册为 委派管理员,请创建堆栈集。如需了解详情,请参阅 创建由服务管理的堆栈集 权限 。
在浏览提示的过程中,请执行以下操作:
- 在指定模板时,请上传收集器角色模板 文件。
- 在指定 StackSet 详情时,验证并更新 委托账号 ID 和角色名称。
- 根据贵组织要求,配置堆栈集选项。
指定部署选项时,请选择部署目标。 您可以部署到整个 AWS 组织,也可以部署到 该组织部门(其中包含您要验证的所有 AWS 账号) 从何处收集数据。
指定要在其中创建角色和政策的 AWS 区域。 由于角色属于全球性资源,因此您无需指定多个 区域。
根据需要更改其他设置。
查看更改并创建堆栈集。如果您收到错误消息, 请参阅问题排查。
部署一个单独的堆栈,以便在其下配置收集器角色 管理账号,因为 AWS CloudFormation 堆栈集不会创建 管理账号下的堆叠实例。如需了解详情,请参阅 DeploymentTargets 。
如需完成集成流程,请参阅 完成集成流程。
手动配置 AWS 账号
如果您无法使用 CloudFormation 模板(例如,您使用了 或者正在自定义集成),您可以创建 所需的 AWS IAM 政策和 AWS IAM 角色。
您必须为委派账号创建 AWS IAM 政策和 AWS IAM 角色 以及收款方账号
为委派角色创建 AWS IAM 政策
如需为委派的角色创建 AWS IAM 政策(委派政策),请执行以下操作: 完成以下操作:
登录到 AWS 委托账号控制台。
点击政策 >创建政策。
点击 JSON,然后粘贴下列其中一项,具体取决于您是否 已选中授予敏感数据保护权限 “配置”中的“发现”复选框 Security Command Center。
授予 Sensitive Data Protection 权限 发现:已清除
{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::*:role/COLLECTOR_ROLE_NAME", "Effect": "Allow" }, { "Action": [ "organizations:List*", "organizations:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
将
COLLECTOR_ROLE_NAME
替换为 收集器角色,即您在配置 Security Command Center( 默认为aws-collector-role
)。授予 Sensitive Data Protection 权限 发现:选中
{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::*:role/COLLECTOR_ROLE_NAME", "arn:aws:iam::*:role/SCAN_SENSITIVE_DATA_COLLECTOR_ROLE_NAME" ], "Effect": "Allow" }, { "Action": [ "organizations:List*", "organizations:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
替换以下内容:
COLLECTOR_ROLE_NAME
: 复制的配置数据收集器角色 配置 Security Command Center (默认值为aws-collector-role
)SCAN_SENSITIVE_DATA_COLLECTOR_ROLE_NAME
: 您在 Cloud Logging 中复制的 Sensitive Data Protection 收集器角色的名称 配置 Security Command Center (默认值为aws-sensitive-data-protection-role
)
点击下一步。
在政策详情部分中,输入 政策。
点击创建政策。
为 AWS 和 Google Cloud 之间的信任关系创建 AWS IAM 角色
创建委派角色,以在 AWS 和之间建立信任关系 Google Cloud此角色使用在 为委派角色创建 AWS IAM 政策。
登录到 AWS 委托账号控制台 创建 IAM 角色和政策的 AWS 用户。
点击角色 >创建角色。
在可信实体类型部分,点击 Web Identity。
对于 Identity Provider(身份提供商),点击 Google。
对于 Audience,输入您在执行此步骤时复制的服务账号 ID。 已配置 Security Command Center。 点击下一步。
如需向委派的角色授予对收集器角色的访问权限,请将 为角色分配权限政策搜索 创建于 为委派角色创建 AWS IAM 政策 并将其选中
在角色详情部分,输入委派角色名称 已配置的 Security Command Center (默认名称为
aws-delegated-role
)。点击 Create role。
为资产配置数据收集创建 AWS IAM 政策
为资产配置数据收集(收集器)创建 AWS IAM 政策 政策),请完成以下操作:
登录到 AWS 收集器账号控制台。
点击政策 >创建政策。
点击 JSON 并粘贴以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ce:GetCostAndUsage", "dynamodb:DescribeTableReplicaAutoScaling", "identitystore:ListGroupMemberships", "identitystore:ListGroups", "identitystore:ListUsers", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "logs:ListTagsForResource", "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets", "wafv2:GetIPSet" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "apigateway:GET" ], "Resource": [ "arn:aws:apigateway:*::/usageplans", "arn:aws:apigateway:*::/usageplans/*/keys", "arn:aws:apigateway:*::/vpclinks/*" ] } ] }
点击下一步。
在政策详情部分中,输入 政策。
点击创建政策。
对每个收款方账号重复上述步骤。
为每个账号中的资产配置数据收集创建 AWS IAM 角色
创建可让 Security Command Center 获取资产配置数据的收集器角色 。此角色将使用在创建 资产配置数据的 AWS IAM 政策 集合。
登录到 AWS 收集器账号控制台 作为可以为收集器账号创建 IAM 角色的用户。
点击角色 >创建角色。
对于可信实体类型,点击自定义信任政策。
在自定义信任政策部分,粘贴以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DELEGATE_ACCOUNT_ID:role/DELEGATE_ACCOUNT_ROLE" }, "Action": "sts:AssumeRole" } ] }
替换以下内容:
DELEGATE_ACCOUNT_ID
:委托账号的 AWS 账号 IDDELEGATE_ACCOUNT_ROLE
:委派角色名称 已配置 Security Command Center。
如需授予此收集器角色访问您的 AWS 资产配置数据的权限,请执行以下操作: 将权限政策附加到角色。搜索自定义收集器 政策 为资产配置数据收集创建 AWS IAM 政策。 并将其选中
搜索并选择以下受管理的政策:
- arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
- arn:aws:iam::aws:policy/SecurityAudit
在角色详情部分中,输入配置数据的名称 在配置 Security Command Center。
点击 Create role。
对每个收款方账号重复上述步骤。
如果您选择了授予敏感数据保护权限 发现复选框(位于配置 Security Command Center,然后继续 部分。
如果未启用授予敏感数据保护权限 发现复选框,然后完成 集成流程。
创建用于敏感数据保护的 AWS IAM 政策
如果您选择了授予敏感数据保护权限,请完成以下步骤 “Discovery”(发现)部分复选框 配置 Security Command Center。
为敏感数据保护创建 AWS IAM 政策(收集器) 政策),请完成以下操作:
登录到 AWS 收集器账号控制台。
点击政策 >创建政策。
点击 JSON 并粘贴以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:GetBucketPolicyStatus", "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Effect": "Allow", "Action": [ "iam:ListAttachedRolePolicies", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListRolePolicies", "iam:GetRolePolicy", "ce:GetCostAndUsage", "dynamodb:DescribeTableReplicaAutoScaling", "identitystore:ListGroupMemberships", "identitystore:ListGroups", "identitystore:ListUsers", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "logs:ListTagsForResource", "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets", "wafv2:GetIPSet" ], "Resource": [ "*" ] } ] }
点击下一步。
在政策详情部分中,输入 政策。
点击创建政策。
对每个收款方账号重复上述步骤。
在每个账号中为敏感数据保护创建 AWS IAM 角色
如果您选择了授予敏感数据保护权限,请完成以下步骤 “Discovery”(发现)部分复选框 配置 Security Command Center。
创建允许 Sensitive Data Protection 分析 AWS 资源的内容此角色使用的收集器政策 请参阅为 Cloud Storage 创建 Sensitive Data Protection。
登录到 AWS 收集器账号控制台 作为可以为收集器账号创建 IAM 角色的用户。
点击角色 >创建角色。
对于可信实体类型,点击自定义信任政策。
在自定义信任政策部分,粘贴以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DELEGATE_ACCOUNT_ID:role/DELEGATE_ACCOUNT_ROLE" }, "Action": "sts:AssumeRole" } ] }
替换以下内容:
DELEGATE_ACCOUNT_ID
: 委托账号DELEGATE_ACCOUNT_ROLE
:委派角色 (在配置名称时) Security Command Center
如需授予此收集器角色访问 AWS 资源内容的权限,请执行以下操作: 将权限政策附加到角色。搜索自定义收集器 政策,其中您在为 Cloud Storage 创建 AWS IAM 政策 Sensitive Data Protection, 并将其选中
在角色详情部分中,输入 您在对 Sensitive Data Protection 进行配置 Security Command Center。
点击 Create role。
对每个收款方账号重复上述步骤。
如需完成集成流程,请参阅 完成集成流程。
完成集成流程
在 Google Cloud 控制台中,转到添加 Amazon Web Services 连接器页面。
点击测试连接器,验证 Security Command Center 是否可以连接到 AWS 环境如果连接成功,则确定测试 委派的角色具有承担该角色所需的所有权限, 收集器角色。如果连接不成功,请参阅问题排查 错误。
点击创建。
自定义配置
本部分介绍了自定义连接的一些方法, Security Command Center 和 AWS 之间的连接。您可以在高级 options(可选)部分 添加 Amazon Web Services 连接器 页面。
默认情况下,Security Command Center 会自动在所有平台上发现您的 AWS 账号 AWS 区域。该连接使用 AWS Security Token Service 的默认全球端点 和所需的 AWS 服务的默认每秒查询次数 (QPS) 监控。通过这些高级选项,您可以自定义默认设置。
选项 | 说明 |
---|---|
指定要使用的 AWS 账号 | 您可以让 Security Command Center 自动发现 AWS 账号,也可以提供 AWS 账号列表以供 Security Command Center 用于查找资源。 |
指定要排除的 AWS 账号 | 如果您允许 Security Command Center 自动发现账号,则可以提供 AWS 账号列表,以供 Security Command Center 无法用来查找资源。 |
指定要监控的 AWS 区域 | 您可以为 Security Command Center 选择一个或多个 AWS 区域 监控。将 AWS 区域字段留空, 监控所有区域。 |
替换 AWS 服务的默认每秒查询次数 (QPS) | 您可以更改 QPS 来控制
Security Command Center。将替换值设为小于
且大于或等于 1 。默认值为最大值。如果您更改了 QPS,Security Command Center 可能会在提取数据时遇到问题。因此,我们不建议您更改此值。 |
更改 AWS Security Token Service 的端点 | 您可以为 AWS 指定特定端点
Security Token Service(例如,
https://sts.us-east-2.amazonaws.com )。离开 AWS
Security Token Service (AWS STS)(选填)字段留空即可使用
默认全球端点 (https://sts.amazonaws.com )。 |
问题排查
本部分介绍了您在修改 Google Cloud 产品时可能会遇到的一些常见问题, 将 Security Command Center 与 AWS 集成。
资源已存在
AWS 环境中在尝试创建 AWS IAM 时会出现此错误 政策和 AWS IAM 角色如果以下位置中已存在该角色,就会出现此问题: 您的 AWS 账号,而您正在尝试重新创建该账号。
如需解决此问题,请完成以下步骤:
- 检查您正在创建的角色或政策是否已存在 并且满足本指南中列出的要求。
- 如有必要,请更改角色名称以避免冲突。
政策中的主账号无效
在创建收集器时,AWS 环境中可能会出现此错误 但委托角色尚不存在。
要解决此问题,请完成为 受托角色,并等到受托角色被授予 然后才能继续
AWS 中的限制限制
AWS 会针对每个账号或区域限制每个 AWS 账号的 API 请求次数 基础。为了确保 Security Command Center 收集 资产配置数据,Security Command Center 会以固定的 最大 QPS,具体请参阅 AWS 服务。
如果您在 AWS 环境中因 QPS 而遇到请求限制 但可以通过完成以下操作来缓解这一问题:
在 AWS 连接器设置 页面,设置自定义 遇到请求节流问题的 AWS 服务的 QPS。
限制 AWS 收集器角色的权限,以便来自该角色的数据 系统将不再收集特定服务这种缓解技术可防止 攻击路径模拟在 AWS 上正常运行。
撤消 AWS 中的所有权限会停止数据收集器进程 。删除 AWS 连接器不会立即停止数据 收集器进程,但在收集完成后不会重新开始。
排查测试连接时遇到的错误
当您测试 Security Command Center 和 AWS。
AWS_FAILED_TO_ASSUME_DELEGATED_ROLE
连接无效,因为 Google Cloud 服务代理无法做出假设 委派的角色。
如需解决此问题,请考虑以下事项:
验证委派角色是否存在。如需创建它,请参阅 针对 AWS 和 Google Cloud 之间的信任关系创建 AWS IAM 角色。
缺少委派角色的内嵌政策。如果没有它, 服务代理不能担任此角色。要验证内嵌的 政策存在,请参阅 针对 AWS 和 Google Cloud 之间的信任关系创建 AWS IAM 角色。
AWS_FAILED_TO_LIST_ACCOUNTS
连接无效,因为自动发现已启用且委托 角色无法获取组织中的所有 AWS 账号。
这一问题表明,政策允许
部分设备上缺少对委派角色的organizations:ListAccounts
操作
资源。如需解决此问题,请验证缺少哪些资源。进行验证
委托政策的设置,请参阅
为委派角色创建 AWS IAM 政策。
AWS_INVALID_COLLECTOR_ACCOUNTS
连接无效,因为存在无效的收集器账号。通过 错误消息中会详细说明可能的原因,其中包括: 以下:
AWS_FAILED_TO_ASSUME_COLLECTOR_ROLE
收集器账号无效,因为委派角色无法承担 收集器账号中的收集器角色。
如需解决此问题,请考虑以下事项:
验证收集器角色是否存在。
- 要为资产配置数据创建收集器角色,请参阅创建 AWS IAM 角色,用于在每个系统中收集资产配置数据 账号。
- 如需为 Sensitive Data Protection 创建收集器角色,请参阅创建 在每个 Cloud Storage 中 账号。
允许委派角色承担收集器的政策 角色缺失。如需验证政策是否存在,请参阅 为委派角色创建 AWS IAM 政策。
AWS_COLLECTOR_ROLE_POLICY_MISSING_REQUIRED_PERMISSION
连接无效,因为收集器政策缺少某些 所需权限设置
要解决此问题,请考虑以下原因:
部分必需的 AWS 代管式政策可能未附加到 收集器角色。验证所有政策是否 请参阅为资产配置创建 AWS IAM 角色中的第 6 步 Google Analytics 账号。
收集器政策可能存在以下问题之一:
- 收集器政策可能不存在。
- 收集器政策未附加到收集器角色。
- 收集器政策并未包含所有必需的权限。
如需解决与收集器政策相关的问题,请参阅以下内容:
后续步骤
- 请继续执行设置指南的第 4 步, 控制台。
- 查看并修复从 AWS 中发现的漏洞。
- 创建和管理安全设置 安全状况。
- 创建针对 AWS 的攻击路径模拟 资源。
- 映射 AWS 合规性 资源 标准和基准。