Documentation

InfluxDB Cloud 专属安全

InfluxData的信息安全程序基于行业认可的标准和框架,包括但不限于ISO 27001、NIST 800-53、CIS20和SOC2 Type II。安全政策描述了InfluxDB Cloud的安全开发、部署和操作。

为了保护数据,InfluxDB Cloud Dedicated 包括以下内容:

租户隔离

在InfluxDB Cloud Dedicated平台中,访问控制确保只有有效的经过身份验证和授权的请求可以访问您的账户数据。访问控制包括:

  • 分配给每个 InfluxDB Cloud Dedicated 集群的唯一集群 ID。所有内部 Cloud 服务都需要此集群 ID 以在访问或操作数据之前对实体进行身份验证。
  • 所有外部请求必须使用有效的令牌或会话进行授权。每个 InfluxDB Cloud Dedicated 服务都强制执行此政策。

数据完整性

一个专用的内部服务通过定期创建、记录和写入测试数据到测试桶中,确保数据的完整性。该服务定期执行查询,以确保数据没有丢失或损坏。该服务的一个单独实例存在于每个 InfluxDB Cloud Dedicated 集群中。此外,该服务在line protocol中创建带外备份,并确保备份数据与磁盘上的数据匹配。

云基础设施

InfluxDB Cloud Dedicated cluster architecture

InfluxDB Cloud Dedicated 可在以下云服务提供商上使用:

为了确保数据的安全性、可用性和耐久性,每个实例都在其自己的虚拟私有云 (VPC) 中隔离和保护。

用户仅通过Cloud Dedicated建立的API与InfluxDB Cloud Dedicated进行交互。
对于集群管理活动,授权用户与Granite服务进行交互。
对于工作负载集群,授权用户与InfluxDB 3 Ingesters(写入)和Queriers(读取)的API进行交互。
这些服务不公开AWS S3或其他云提供商或内部服务。
InfluxDB Cloud Dedicated使用单独的S3存储桶为每个客户的集群持久化写入。
S3存储桶仅可由客户的集群服务访问。
单独的配置确保一个客户的S3存储桶无法被另一个客户访问(例如,在服务缺陷的情况下)。

亚马逊网络服务 (AWS)

一个 InfluxDB Cloud Dedicated 的实例由 Kubernetes 中的微服务组成。每个 AWS 中的 VPC 被划分为公共子网和私有子网:

  • 公有子网包含暴露于公共互联网的资源,包括负载均衡器和网络地址转换(NAT)网关。
  • 私有子网包含不向公共互联网暴露的支持基础设施(例如,计算和存储)。

AWS 数据中心符合许多物理和信息安全标准。有关 AWS 的物理安全和数据中心协议的详细信息, 请参见 AWS’s Compliance

谷歌云平台 (GCP)

在谷歌云平台(GCP)中,InfluxDB Cloud Dedicated 使用谷歌 Kubernetes 引擎(GKE)和谷歌计算引擎来部署单个集群组件。集群在项目级别上是隔离的,以增强访问控制和数据治理,并支持审计。

Google Cloud Platform 数据中心遵循许多物理和信息安全标准。有关 GCP 数据中心物理安全的详细信息,请参见 Google’s Compliance website

微软Azure

在微软Azure中,InfluxDB Cloud Dedicated使用Azure Kubernetes Service (AKS)和Azure虚拟机来部署单独的集群组件。为了支持Azure中的审计和授权控制,集群被部署到每个区域的专用虚拟网络(VNet)中。

微软Azure数据中心符合许多物理和信息安全标准。有关微软Azure数据中心内部物理安全的详细信息,请参阅 Microsoft’s Compliance website

数据加密

InfluxDB Cloud Dedicated 强制对来自所有客户端的数据进行 TLS 加密,这些客户端包括 Telegraf 代理、浏览器和自定义应用程序。TLS 1.2 是 InfluxDB Cloud Dedicated 允许的最低 TLS 版本,包括 Granite 服务器和管理集群的 TLS 终止。使用 TLS 1.1 或更早版本的请求将被拒绝。

默认情况下,静态数据使用强加密方法(AES-256)在AWS、GCP和Microsoft Azure中进行加密。S3桶默认是加密的(且无法进行其他配置)。

目前 InfluxDB Cloud 不支持用户管理的加密密钥。

应用和服务安全

InfluxData 维护以下应用程序和服务安全控制:

内部访问控制

  • 管理权限仅限于授权用户的命名组。
  • 禁止共享账户。
  • 对所有基础设施 (AWS, GCP 和 Azure) 以及其他有访问用户信息的生产系统都要求多因素认证 (MFA) (请参阅 InfluxData Subprocessors)。
  • InfluxDB Cloud 专用访问定期被记录和审核。

配置管理

InfluxDB Cloud Dedicated 是一种通过“代码基础设施”进行程序化管理和部署的,作为自动化部署过程的一部分,它经过版本控制和测试。推送代码的权限被严格控制,需要同行评审和指定基础设施工程师的批准,并具有自动化的安全措施,以防止影响生产的事件。

安全软件开发生命周期 (SDLC)

InfluxData 在整个开发周期中遵循安全最佳实践,包括:

  • 在多个开发阶段的安全控制点。
  • 对关键资产进行手动安全代码审查。
  • 在设计阶段考虑安全性,从架构审查和威胁建模开始。
  • 源代码管理:
    • 版本控制
    • 强制同行代码审查
    • 自动化功能测试和静态代码分析
    • 对第三方依赖和库进行自动化漏洞扫描
  • 对容器进行自动化漏洞扫描
  • 定期动态应用程序安全测试和第三方渗透测试
  • 定期进行关于安全应用开发实践的工程团队培训

环境和职责的分离

生产环境和非生产环境是分开的。 开发人员仅在非生产环境中进行开发、测试和暂存,不会将用户数据用于非生产用例。 生产访问权限仅限于授权人员,基于最小权限和职责分离的原则。

监控、日志记录和警报

InfluxData 持续监控和分析来自 InfluxDB Cloud 专用环境的指标。

  • 服务被仔细监控以确保性能和可用性,并检测异常。
  • 应用日志、性能和可观察性数据被收集并用于事件分析、容量规划、警报和仪器测量。对这些日志和操作员接口的访问由组访问权限控制,仅提供给需要访问以交付InfluxDB Cloud Dedicated服务的团队。

安全评估

InfluxData 使用受信任的第三方安全公司进行渗透测试,以发现开发后存在的漏洞,并验证之前合作的修复措施。这包括对 InfluxDB Cloud 进行白盒和灰盒测试。

业务连续性和灾难恢复

InfluxData 是一个高度分布的组织,员工遍布全球。 InfluxData 的 IT 基础设施是基于云的,没有本地基础设施。这允许 InfluxData 团队从全球任何地方访问服务,并依赖服务提供商的灾难恢复能力以确保 InfluxData 的业务连续性。作为一家云原生公司,InfluxData 所有由云供应商提供的业务功能都依赖于这些供应商的服务水平协议(SLA)以维护他们提供的服务。业务连续性计划和灾难恢复计划每年更新一次。

数据持久性

数据在InfluxDB Cloud Dedicated的多个存储引擎中复制。 复制机制对所有副本执行可串行化的upsert和删除流,并运行后台熵检测过程以识别分歧副本。 摄取的数据也会被记录到提供商操作的对象存储中。

事件响应

报告安全事件至 security@influxdata.comsupport@influxdata.com。 InfluxData 保持事件警报和响应、性能或停机事件、安全和客户通知的程序。 我们在事件响应中执行根本原因分析(RCA)。

可配置的安全控制

用户可以配置以下安全控制:

访问、身份验证和授权

InfluxDB Cloud Dedicated 将工作负载集群管理授权(使用 管理令牌)与数据库读写授权(使用 数据库令牌)分开。

用户Provisioning

InfluxData遵循安全最佳实践来创建用户账户并管理资源权限。

InfluxData 支持创建具有 用户组 权限的用户账户,以便访问 InfluxDB Cloud 专用集群资源。创建用户账户后,InfluxData 会向用户提供以下内容:

  • 用于验证访问集群的登录URL
  • InfluxDB Cloud 专用 账户 ID
  • InfluxDB Cloud 专用 集群 ID
  • InfluxDB Cloud 专用 集群 URL
  • 用于设置登录密码的密码重置电子邮件

使用有效的密码,用户可以通过调用其中一个 influxctl 命令 登录。 该命令在身份提供者和用户之间发起浏览器登录 以便密码从未 与 influxctl 交换。 在成功认证后,InfluxDB Cloud Dedicated 为用户的 influxctl 会话提供一个短期有效的 管理令牌 以访问 Granite 服务。 用户通过 influxctl 命令行工具与集群资源进行查看或管理。 分配给用户的 用户组 决定了对资源的访问级别。

用户组

用户组将访问权限与用户属性关联——这是基于属性的访问控制(ABAC)安全模型的重要组成部分,该模型基于用户属性、资源类型和环境上下文授予访问权限。

在 InfluxDB Cloud Dedicated 中,用户可以属于以下任意用户组,每个用户组具有预定义的权限:

管理员用户组

管理员是具有读取和写入权限的 InfluxDB Cloud 专用用户,能够访问账户中所有资源(适用于所有集群)。只有管理员可以创建 管理令牌

成员用户组

成员是具有对某些资源的读取权限以及对数据库令牌的创建权限的 InfluxDB Cloud 专用用户。成员不能删除或创建数据库或管理令牌。

审计员用户组

审计员是拥有对账户中所有资源(对于所有集群)的读取权限的 InfluxDB Cloud 专用用户;审计员不能修改账户资源。

管理令牌

管理令牌用于对用户账户进行身份验证,以便访问Granite服务,并提供对工作负载集群管理活动的授权,包括:

  • 帐户、定价和基础设施管理
  • 邀请、列出和删除用户
  • 创建、列出和删除数据库
  • 创建、列出和删除数据库令牌

管理令牌包括以下内容:

  • 一个访问令牌字符串(敏感)
  • 用于管理活动的权限集(在用户配置时进行配置)
  • 通过登录到 influxctl 生成的令牌,强制要求1小时到期

在 InfluxDB Cloud Dedicated 中,管理令牌可以由账户的身份提供者创建,用于在客户端(如 influxctl)中进行用户认证,或者可以由 Admin 用户手动创建,用于通过管理 API 进行自动化。

在influxctl CLI中管理令牌

在 InfluxDB Cloud Dedicated 中,账户的身份提供者为用户认证在工具中创建管理令牌,例如 influxctl。当用户使用 influxctl 命令行工具发出命令时,influxctl 会将管理令牌字符串与请求一起发送到服务器,Granite 在那里验证令牌。如果管理令牌有效且未过期,服务会将令牌的权限与完成用户请求所需的权限进行比较。

只有有效的未过期令牌并具有必要权限集的才能被授权在 InfluxDB Cloud Dedicated 中执行管理功能。遵循安全最佳实践,管理令牌从不存储在 InfluxDB Cloud Dedicated (Granite 或工作负载集群) 服务器上,这可以防止从服务器窃取令牌。在客户端(用户的系统)上,管理令牌以受限权限存储在磁盘上供 influxctl 在后续运行中使用。例如,用户的 Linux 系统会将管理令牌存储在 ~/.cache/influxctl/*.json,权限为 0600(即,所有者可读可写,且对 groupother 无访问权限)。

管理令牌与管理API

对于自动化用例, 管理员 可以 手动创建和撤销长期管理令牌 以便与 管理API 一起使用——例如,旋转数据库令牌或创建表。

手动创建的管理令牌:

  • 不受 用户组 权限的影响
  • 具有可选的过期时间,并且不需要与OAuth提供者进行人工交互
  • 用于自动化用例
  • 不应该用于规避 OAuth 提供者

要认证管理 API 请求,用户在 HTTP Authorization 标头中传递手动创建的令牌:

Authorization MANAGEMENT_TOKEN

数据库令牌

管理员成员 可以创建 数据库令牌 以进行数据库的读写访问。数据库令牌为用户和客户端应用程序提供授权,以读取和写入 InfluxDB Cloud 专用数据库中的数据和元数据。所有数据写入和查询 API 请求都需要一个有效的具有足够权限的数据库令牌。注意: 全访问 管理令牌 不能读取或写入数据库,因为它不是数据库令牌。

数据库令牌由以下内容组成:

  • 一个标识符
  • 一个描述
  • 用于从数据库读取、向数据库写入或两者都可以的权限集
  • 一个API密钥字符串(敏感,格式为apiv_

当用户成功创建数据库令牌时,InfluxDB Cloud Dedicated Granite 服务器将新的数据库令牌以 API 密钥字符串的形式显示给用户——该密钥字符串只有在创建时可见。用户有责任安全存储和管理 API 密钥字符串。

遵循安全最佳实践,数据库令牌的原始API密钥字符串从不存储在InfluxDB Cloud Dedicated(Granite或工作负载集群)服务器上,这防止了令牌被盗取。 服务器仅存储非敏感的数据库令牌属性(标识符、描述和权限集)以及令牌API密钥字符串的SHA-512。 当用户在请求工作负载集群时提供API密钥时,集群会将令牌的SHA-512与存储的SHA-512进行验证。 如果数据库令牌有效,InfluxDB Cloud Dedicated会将令牌的权限与完成用户请求所需的权限进行比较。 只有在请求中包含具有必要权限集的有效令牌时,才会授权该请求。

令牌轮换

数据库令牌没有过期时间。
授权进行管理活动的用户可以通过删除数据库令牌来撤销它。
要轮换令牌,用户删除数据库令牌并发布新的令牌。

基于角色的访问控制(RBAC)

InfluxDB Cloud 账户支持组织中的多个用户。默认情况下,每个具有 Owner 角色的用户在您 InfluxDB Cloud 专用集群中的资源上具有完全权限。

高级控制

需要更严格的数据访问安全和风险减轻措施的用户应实施以下内容:

  • 单点登录 (SSO). 来自特定电子邮件域的身份验证请求可以在提供有效的管理令牌之前路由到企业SSO提供商进行身份验证。 如果您想要进行设置,请联系 sales@influxdata.com
  • 多因素身份验证 (MFA)。 InfluxData 可以通过企业 SSO 连接启用 MFA。 然后在用户的企业 SSO 身份验证提供程序上启用 MFA。 如果您想设置此功能,请联系 sales@influxdata.com
  • 定期令牌轮换。 用户应定期删除他们当前的数据库令牌并创建新令牌。

合规性和审计

InfluxDB Cloud 获得了 SOC2 Type II 认证。 要请求 SOC2 Type II 报告的副本, 或获取有关 ISO 27001 信息安全管理系统的信息,请联系 sales@influxdata.com



Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: