GraphOS 数据隐私合规性
了解 GraphOS 处理什么数据并学习关于欧盟通用数据保护条例的知识
本文介绍了哪些数据会或不会发送到Apollo GraphOS,以及其他 Apollo 工具和库。
我们最重要的任务是确保您和您的客户数据的隐私和安全。在您的环境中运行的任何 Apollo 工具或库都不会向GraphOS发送任何数据,除非您配置它这么做。可能发送高度敏感数据的特性需要额外的选择加入。
GraphOS 是否存储我图的运行结果数据?
不。图的操作结果从未达到任何 Apollo 管理的服务,有一个重要例外:云超级图使用 GraphOS 路由器,直接将结果从您的 子图传递给请求客户端,不记录、持久化或向任何其他系统发送这些结果(其他数据,如操作度量数据将持久化)。
哪些工具向 GraphOS 发送数据?
GraphOS 路由器、Apollo 服务器、Rover CLI 及遗留的 Apollo CLI 都有可选项功能,用于将数据发送到 GraphOS。
默认情况下,Rover CLI 还会收集匿名使用数据。 您可以禁用此功能。
此外,Apollo Kotlin IDE 插件 默认也会收集匿名使用数据。 您可以禁用此功能。
如果您有 云超级图,那么其 路由器 由 GraphOS 存储和管理,并自动启用指标报告。 了解云超级图的数据收集。
Apollo 客户端 库不会向 GraphOS 发送数据。
数据发送到哪里?
所有发送到 GraphOS 的数据都会发送到以下基本网址之一的服务端点:
当前网址
基本网址 | 使用 |
---|---|
https://usage-reporting.api.apollographql.com | GraphOS 路由器(v0.1.0+)、Apollo 服务器(v2.18.0+)和第三方 API 服务器收集指标报告 |
https://rover.apollo.dev | Rover CLI—如果启用了 遥测,则所有命令,当获取新的插件版本时,所有 rover template 命令,并每天检查一次版本更新 |
https://api.apollographql.com/graphql | 所有与 GraphOS 通信的 Rover CLI(v0.6+)命令,以及所有对 GraphOS 平台 API 的请求 |
https://router.apollo.dev | GraphOS 路由器安装程序(所有版本),以及 GraphOS 路由器(v1.9.0+)启用时的 遥测 |
https://uplink.api.apollographql.com | 启用了 托管联邦 和/或 企业特性 的GraphOS 路由器(v0.1.0+),启用了 Apollo Gateway (v0.34.0+) 的 Apollo 服务器,并启用了托管联邦 |
https://aws.uplink.api.apollographql.com | GraphOS 路由器(v0.1.0+)启用 管理联邦 和/或 企业功能,Apollo Server 与 Apollo Gateway(v0.45.0+)启用 管理联邦 |
https://persisted-queries.api.apollographql.com/ | GraphOS 路由器(v1.25.0+)启用 GraphOS 基于持久查询 |
https://aws.persisted-queries.api.apollographql.com/ | GraphOS 路由器(v1.25.0+)启用 GraphOS 基于持久查询 |
https://schema-reporting.api.apollographql.com | 通过 Apollo Server(v2.18.0+)和第三方 API 服务器进行模式注册 |
https://graphql.api.apollographql.com/api/graphql | 来自 Apollo Kotlin IDE 插件 的匿名使用数据 |
活跃的旧 URL
基本网址 | 使用 |
---|---|
https://engine-report.apollodata.com | Apollo Server(v2.0-2.17.x)的指标报告 |
https://edge-server-reporting.api.apollographql.com | Apollo Server(v2.15.0-2.17.x)中的模式注册通过模式报告 |
https://engine-graphql.apollographql.com | 用于与 GraphOS 通信的所有旧 Apollo CLI(v2.30 及更早版本)命令 |
https://storage.googleapis.com | Apollo Server 与 Apollo Gateway(v0.15.1 及更早版本)及 管理联邦,或者与操作注册插件(v0.3.1 及更早版本) |
https://federation.api.apollographql.com | Apollo Server 与 Apollo Gateway(v0.16.0-v0.33.0)及 管理联邦 |
https://storage-secrets.api.apollographql.com | Apollo Server 与 Apollo Gateway(v0.16.0-v0.33.0)及 管理联邦 或与操作注册插件 |
https://operations.api.apollographql.com | Apollo Server 与操作注册插件(v0.4.1+) |
https://graphql.api.apollographql.com | 所有 Rover CLI(截至 v0.6)命令和旧 Apollo CLI(v2.31+) 命令,用于与 GraphOS 通信 |
如果您使用的是企业级代理或防火墙,可能需要对其进行配置以允许到这些域的出站流量。请注意,数据可能被发送到特定域内的多个端点。
GraphOS 路由器和 Apollo Server 会向 GraphOS 发送哪些类型的数据?
您可以为 GraphOS 路由器和 Apollo Server 配置不同的选项,以便将这些库解析的每个 操作 的某些数据报告给 GraphOS。这些类型的数据包括:
除了每个操作响应的
data
字段之外的其他几个 字段- GraphOS 路由器或 Apollo Server 永远不会将操作响应的
data
字段发送到 GraphOS
- GraphOS 路由器或 Apollo Server 永远不会将操作响应的
每个执行操作的 标准化查询操作字符串
跟踪数据指示操作中每个解析器的执行时间
操作中的GraphQL变量和HTTP头部
以下小节中涵盖了这些类型的数据。
此外,您可以配置一个独立的Apollo Server实例向GraphOS报告其schema。
ⓘ 注意
从GraphOS路由器和Apollo Server发送到GraphOS的所有数据都使用HTTPS在443端口传输,并且80端口上的HTTP流量已关闭。
操作响应字段
让我们了解一下GraphOS路由器和Apollo Server在报告典型GraphQL响应中的字段时的默认行为:
// GraphQL Response{"data": { ... }, // NEVER sent to GraphOS"errors": [ ... ] // Can be sent to GraphOS, used to report on errors for operations and fields.}
response.data
如前所述GraphOS路由器和Apollo Server永远不会将此字段的内容发送到GraphOS。您图形的响应保持在应用程序内部。
response.errors
GraphOS路由器和Apollo Server都可以将某些错误信息报告到GraphOS,但确切的行为各不相同:
The GraphOS Router
目前,GraphOS 路由器仅报告操作中哪些字段产生了错误。其他错误详情(例如消息)在发送到 GraphOS 的报告中被屏蔽。
您目前无法配置 GraphOS 路由器以报告任何额外的错误详情。
Apollo Server 4
默认情况下,Apollo Server 4 仅报告操作中哪些字段产生了错误。
您可以为 Apollo Server 4 配置以提供额外的错误详情(例如错误消息和扩展)。为此,请将sendErrors
选项提供给 Apollo Server 的使用情况报告插件。
Apollo Server 2 和 3
ⓘ 注意
Apollo Server 2 和 3 版本已被弃用。
默认情况下,Apollo Server 2 和 3 版本将所有错误详情报告给 GraphOS,包括消息和扩展。
您可以使用使用情况报告插件的rewriteError
选项来过滤或转换在存储到 GraphOS 之前发生的错误。使用此选项从错误中剥离敏感数据或从 Studio 报告中过滤“安全”错误。
查询操作字符串
GraphOS 路由器和 Apollo Server 都会将每个查询操作的正常化字符串表示形式报告给 GraphOS。默认情况下,此规范化算法会去除作为参数传入的字符串字面量。然而,我们强烈建议用户不要在操作字符串中包含敏感数据(例如密码或个人信息)。相反,可以将这些信息包含在GraphQL 变量中,您可以有选择性地发送这些变量。
操作跟踪
如果您正在使用 GraphOS 路由器,则您的子图可以将其对路由器的每个响应中包含操作跟踪数据。这些数据包括每个为操作做出贡献的解析器的计时信息。
要检查哪些子图库支持跨图跟踪,请参阅FEDERATED TRACING
中的此表。
您可以将GraphOS Router配置为在它的报告中包含此跟踪数据到GraphOS(了解如何操作)。这样做后,您可以在GraphOS Studio中可视化您的operations性能,按解析器分解。
如果您正在使用Apollo Server的独立实例,也可以将其配置为向GraphOS报告操作跟踪。
GraphQL变量值
本节涉及包含在GraphQL操作中的变量的值。这些变量的名称包含在发送到GraphOS的operation字符串中。
Apollo Server 2.7.0及以后版本
在Apollo Server 2.7.0及以后版本中,默认情况下不会将一个操作的所有GraphQL变量值发送到GraphOS。
您可以设置使用报告插件sendVariableValues
选项的值,以指定报告部分或全部变量值的策略。。
Apollo Server 2.7.0之前版本
在Apollo Server 2.7.0之前的版本中,默认将操作的所有GraphQL变量值发送到GraphOS。
如果您正在使用Apollo Server的较旧版本,建议您更新。如果您由于某种原因无法更新,您可以使用privateVariables
报告选项来指定不应发送到GraphOS的变量的名称。您也可以将此选项设置为false
来防止发送所有变量。此报告选项已被弃用,未来版本中将不再提供。
GraphOS Router
默认情况下,GraphOS Router不会将操作的GraphQL变量值发送到GraphOS。
要启用GraphOS Router中的变量值报告,请参阅本节。
HTTP标头
无论您的服务器配置如何,GraphOS都不会收集以下HTTP标头的值,即使已发送:
Authorization
Cookie
Set-Cookie
然而,您可以配置其他所有HTTP标头的报告选项。
ⓘ 注意
如果您在上述列出的其他标头中执行授权(例如X-My-API-Key
),则不要将该标头发送到GraphOS。
Apollo Server 2.7.0及以后版本
在Apollo Server 2.7.0及以后版本中,默认情况下不会将操作的任何HTTP标头发送到GraphOS。
您可以为usage reporting plugin的sendHeaders
选项设置一个不同的策略,以报告您的一些或全部HTTP头信息。
Apollo Server 2.7.0之前版本
Apollo Server 2之前版本(2.7.0及以下)中,默认会将operation的操作的所有HTTP头(除上述的保密头)发送到GraphOS。
如果您正在使用Apollo Server的早期版本,建议您进行升级。如果由于某种原因您无法更新,您可以privateHeaders
报告选项来指定不应发送到GraphOS的变量名称。您还可以将此选项设置为false
以阻止发送所有头信息。此报告选项已弃用,并在Apollo Server的未来版本中将不可用。
GraphOS Router
默认情况下,GraphOS Router不会将操作的HTTP头信息发送到GraphOS。
要在GraphOS Router中启用头信息报告,请参阅本节。
云超级图收集哪些类型的数据?
云supergraph使用GraphOS Router来执行操作,这些操作跨一个或多个子图在您的基础设施中运行:
每个GraphOS Router实例都在自己的管理容器中运行。这些实例使用与GraphOS Router或Apollo Router Core实例运行在任一其他环境时相同的机制来报告操作指标。唯一的区别是,云超级图的router的指标报告始终开启。
GraphOS Routers不会持久化或记录您子图返回的任何响应数据。它们只会将这些数据组合成请求客户端的响应。
GraphOS记录了关于在Explorer中执行的操作的哪些数据?
仅收集用于改进产品的前端使用指标。GraphOS Studio Explorer允许您针对您的图构建和执行操作。这些操作直接从您的浏览器发送,不通过Apollo系统。
GDPR
自2018年5月25日起,通用数据保护条例(GDPR)扩大了欧盟(EU)居民(数据主体)对其个人数据权利,Meteor Development Group Inc.(“MDG”也称为Apollo)已准备好协助客户在这一关键过渡期间或之后遵守GDPR。
什么是GDPR?
通用数据保护条例(GDPR)统一了欧盟的法规,并扩大了数据主体在个人数据方面的权利,同时扩大了构成个人数据的定义。GDPR为数据主体提供了更多控制及删除其个人数据的能力,并广泛禁止处理特殊类别的个人数据。
阿波罗如何为GDPR做准备?
我们自2018年5月25日GDPR生效前就已经遵守GDPR规定。我们正在改进我们的产品、流程和程序,以履行作为数据处理者(处理者)的义务。
GDPR将如何影响公司使用阿波罗产品或服务的方式?
我们的产品和服务的目的不是为了处理个人数据。我们的产品和服务的重点是软件、系统和应用程序——而不是个人。如果客户希望设置自定义API、自定义属性或自定义事件以跟踪此类数据,则可以进行设置。我们的处理是数据无关且自动化的,因此所有数据都根据客户的配置进行相同方式处理。然而,如果客户认为其已将个人数据包含在阿波罗处理的信息中,我们将协助客户满足GDPR和我们的数据处理协议条款的要求。
阿波罗如何协助客户满足其GDPR下的义务?
作为处理者,我们将通过以下方式协助客户履行作为数据控制者(控制者)的义务:
- 支持客户满足数据主体的请求
- 为回复数据主体的投诉而汇总适用的个人数据
- 回复来自监管机构的关于代表客户处理活动调查和问询
- 进行数据保护影响评估
阿波罗如何帮助解决数据主体的请求?
阿波罗已经建立了一个流程来接待、审查和满足由于收到数据主体访问请求(DSAR)产生的客户请求。作为DSAR的结果,客户可能会要求阿波罗安全地删除或返回数据主体的个人数据。由于此类请求的敏感性,我们将根据每个案例进行处理。
我在哪里了解更多关于阿波罗的安全和隐私政策的信息?
适用于阿波罗公司网站和客户产品或服务的法律条款和政策可在以下链接查看:https://apollo.graphql.net.cn/Apollo-Website-Terms-of-Service.pdf 和 https://apollo.graphql.net.cn/Apollo-Terms-of-Service.pdf。
如何获取更多帮助?
如果您有任何其他问题或遇到任何问题,请 联系支持。
拥有企业计划的组织可以向支持团队请求数据处理补充协议(DPA)。
请求删除数据
若要请求从Apollo组织中删除特定数据,请通过电子邮件发送至[email protected],邮件主题为数据删除请求。
在您的邮件中,请包括以下内容
- 需要删除的数据描述
- 该数据报告给Apollo的大致时间戳
- 与该数据关联的图的ID
ⓘ 注意
目前,数据删除将跨受影响的图的所有变体执行。不支持按变体进行删除。
您还可以请求从营销活动中移除您组织的成员。为此,请在该电子邮件中提供这些成员的电子邮件地址。