适用于 AWS AppSync 的 Security Hub 控件 - AWS Security Hub

适用于 AWS AppSync 的 Security Hub 控件

这些 Security Hub 控件可评估 AWS AppSync 服务和资源。

这些控件可能并未在所有的 AWS 区域 上提供。有关更多信息,请参阅 按地区划分的控件可用性

[AppSync.1] 应静态加密 AWS AppSync API 缓存

类别:保护 > 数据保护 > 静态数据加密

严重性:

资源类型:AWS::AppSync::GraphQLApi

AWS Config 规则: appsync-cache-ct-encryption-at-rest

计划类型:已触发变更

参数:

此控件用于检查是否静态加密 AWS AppSync API 缓存。如果未静态加密 API 缓存,则此控件会失败。

静态数据是指存储在持久、非易失性存储介质中的数据,无论存储时长如何。对静态数据进行加密可帮助您保护数据的机密性,降低未经授权的用户访问这些数据的风险。

修复

为 AWS AppSync API 启用缓存后,您将无法更改加密设置。您必须删除缓存,并在启用加密的情况下重新创建该缓存。有关更多信息,请参阅《AWS AppSync 开发人员指南》中的缓存加密

[AppSync.2] AWS AppSync 应该启用字段级日志记录

相关要求:PCI DSS v4.0.1/10.4.2

类别:识别 > 日志记录

严重性:

资源类型:AWS::AppSync::GraphQLApi

AWS Config 规则: appsync-logging-enabled

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值

fieldLoggingLevel

字段日志记录级别

枚举

ERROR, ALL, INFO, DEBUG

No default value

此控件检查 AWS AppSync API 是否开启了字段级日志记录。如果字段解析器日志级别设置为,则控制失败。除非您提供自定义参数值来指示应启用特定的日志类型,否则如果字段解析器日志级别为 ERRORALL,Security Hub 会生成通过的调查发现。

您可以使用日志记录和指标来识别、优化 GraphQL 查询和排除其问题。打开 AWS AppSync GraphQL 日志记录可帮助您获取有关 API 请求和响应的详细信息、识别和响应问题以及遵守法规要求。

修复

要开启 AWS AppSync 登录功能,请参阅 AWS AppSync 开发人员指南中的设置和配置

[AppSync.4] 应标记 AWS AppSync GraphQL API

类别:识别 > 清单 > 标记

严重性:

资源类型:AWS::AppSync::GraphQLApi

AWS Config规则:tagged-appsync-graphqlapi(自定义 Security Hub 规则)

计划类型:已触发变更

参数:

参数 描述 类型 允许的自定义值 Security Hub 默认值
requiredTagKeys 被评估资源必须包含的非系统标签键列表。标签键区分大小写。 StringList(最多 6 项) 1-6 个符合 AWS 要求的标签键。 无默认值

此控件用于检查 AWS AppSync GraphQL API 是否具有带参数 requiredTagKeys 中定义的特定键的标签。如果 GraphQL API 没有任何标签键或未在参数 requiredTagKeys 中指定所有键,则此控件会失败。如果未提供参数 requiredTagKeys,则此控件仅会检查是否存在标签键,如果 GraphQL API 未使用任何键进行标记,则此控件会失败。自动应用并以 aws: 为开头的系统标签会被忽略。

标签是您分配给 AWS 资源的标记,由一个键和一个可选值组成。您可以创建标签,以按用途、所有者、环境或其他标准对资源进行分类。标签可帮助您识别、组织、搜索和筛选资源。使用标签进行标记还可以帮助您跟踪负责操作和通知的资源所有者。使用标签进行标记时,可以将基于属性的访问权限控制(ABAC)作为授权策略实施,该策略根据标签来定义权限。您可以将标签附加到 IAM 实体(用户或角色)以及 AWS 资源。您可以为 IAM 主体创建单个 ABAC 策略或者一组单独的策略。您可以将这些 ABAC 策略设计为允许在主体的标签与资源标签匹配时进行操作。有关更多信息,请参阅 IAM 用户指南中的什么是适用于 AWS 的 ABAC?

注意

请勿在标签中添加个人身份信息(PII)或者其他机密或敏感信息。可从许多 AWS 服务访问标签,包括 AWS Billing。有关标记更多最佳实践,请参阅《AWS 一般参考》中的标记 AWS 资源

修复

要向 AWS AppSync GraphQL API 添加标签,请参阅《AWS AppSync API Reference》中的 TagResource

[AppSync.5] AWS AppSync 不应使用 API 密钥对 GraphQL API 进行身份验证

相关要求:NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-6。

类别:保护 > 安全访问管理 > 无密码身份验证

严重性:

资源类型:AWS::AppSync::GraphQLApi

AWS Config 规则: appsync-authorization-check

计划类型:已触发变更

参数:

  • AllowedAuthorizationTypes AWS_LAMBDA, AWS_IAM, OPENID_CONNECT, AMAZON_COGNITO_USER_POOLS(不可自定义)

此控件检查应用程序是否使用 API 密钥与 AWS AppSync GraphQL API 交互。如果使用 API 密钥对 AWS AppSync GraphQL API 进行了身份验证,则控制失败。

API 密钥是应用程序中的一个硬编码值,当您创建未经身份验证的 GraphQL 端点时由 AWS AppSync 服务生成。如果此 API 密钥遭到泄露,您的端点很容易受到意外访问。除非您支持可公开访问的应用程序或网站,否则我们不建议使用 API 密钥进行身份验证。

修复

要为您的 AWS AppSync GraphQL API 设置授权选项,请参阅 AWS AppSync 开发人员指南中的授权和身份验证

[AppSync.6] 应在传输过程中加密 AWS AppSync API 缓存

类别:保护 > 数据保护 > 传输中数据加密

严重性:

资源类型:AWS::AppSync::ApiCache

AWS Config 规则: appsync-cache-ct-encryption-in-transit

计划类型:已触发变更

参数:

此控件用于检查是否在传输过程中加密 AWS AppSync API 缓存。如果未在传输过程中加密 API 缓存,则此控件会失败。

传输中数据是指从一个位置移动到另一个位置的数据,例如在集群中的节点之间或在集群和应用程序之间。数据可能通过互联网或在私有网络内移动。对传输中数据进行加密可降低未经授权的用户侦听网络流量的风险。

修复

为 AWS AppSync API 启用缓存后,您将无法更改加密设置。您必须删除缓存,并在启用加密的情况下重新创建该缓存。有关更多信息,请参阅《AWS AppSync 开发人员指南》中的缓存加密