Sentry 企业级数据安全解决方案 - Relay 入门

简介: Sentry 企业级数据安全解决方案 - Relay 入门

Sentry Relay 通过提供作为应用程序和 sentry.io 之间中间层的独立服务来提供企业级数据安全性。


Relay 专门设计用于:

  • 在将个人身份信息 (PII) 发送给 Sentry 之前,在中心位置对其进行清理
  • 在低带宽或连接受限的地区提高事件响应时间
  • 充当将所有 HTTP 通信限制为自定义域名的组织的不透明代理


托管模式(managed mode) 下的 Relay 仅适用于商业和企业计划。https://sentry.io/pricing/


Relay 用例



Relay 旨在支持对个人身份信息 (PII) 的数据清理、响应时间和企业域管理具有特定企业安全要求的组织。


PII 数据清理


Sentry 已经在两个地方清除了 PII


  1. 在发送事件之前在 SDK
  2. 抵达 Sentry 的基础设施后

Relay 添加了第三个选项,可以在将数据发送到 Sentry 之前在一个中心位置清理数据。

要选择正确的数据清理位置,请考虑:

  • 如果您更喜欢在一个中心位置配置数据清理,您可以让 Sentry 处理数据清理。到达后,Sentry 立即应用服务器端清理并保证永远不会存储个人信息。
  • 如果您无法将 PII 发送到您的基础设施之外,但您仍希望在一个集中的位置配置数据清理,请配置您的 SDK 以将事件发送到 RelayRelay 使用 Sentry 中配置的隐私设置,并在将数据转发到 Sentry 之前清理 PII
  • 如果您必须执行严格的数据隐私要求,您可以将 SDK 配置为使用 before-send hooks 清除 PII,从而防止在设备上收集数据。这可能需要您在应用程序中复制相同的逻辑,并可能影响性能。


响应时间


Relay 对请求的响应非常快。在您的基础设施附近安装 Relay 将进一步缩短发送事件时的响应时间。这种安装方法可以特别减少偏远地区的往返时间。


企业域管理


默认情况下,SDK 需要使用指向 sentry.io 的数据源名称 (DSN) 进行配置。如果您需要将所有 HTTP 通信限制为自定义域名,Relay 可以充当不透明代理,将事件可靠地转发到 Sentry


入门


开始使用 Relay 就像使用默认设置一样简单。您还可以配置 Relay 以满足您组织的需求。查看配置选项页面以获取有关操作场景的详细讨论。


Relay server 称为 relay。从 GitHub Releases 下载二进制文件。DockerHub 上提供了一个 Docker 镜像。


初始化配置


要创建初始配置,请使用 Relayrelay config init 命令, 该命令将配置文件放在当前工作目录下的 .relay 文件夹中。


Docker 中,使用 Docker 提供的标准机制提供配置目录,通过挂载 Docker volumes 或构建新容器并复制文件。


# 调整配置目录的权限
docker run --rm -it                \
  -v $(pwd)/config/:/work/.relay/  \
  --entrypoint bash                \
  getsentry/relay                  \
  -c 'chown -R relay:relay /work/.relay'
# 生成配置
docker run --rm -it                \
  -v $(pwd)/config/:/work/.relay/  \
  getsentry/relay                  \
  config init


选择默认配置以创建最小配置文件。您可以通过选择 "create custom config" 并自定义这些参数来选择覆盖默认设置:


  • mode 设置,用于配置 Relay 运行的主要模式。有关可用 Relay 模式的更多信息,请参阅 Relay 模式。

目前,只有 proxystatic 模式可供所有组织使用。managed 模式下的 Relay 仅适用于商业和企业计划。https://docs.sentry.io/product/relay/modes/

  • upstream 设置配置 Relay 将事件转发到的服务器(默认为主要的 sentry.io URL)。
  • porthost 设置配置 Relay 将侦听的 TCP 端口。这是 SDK 发送事件的地址。
  • tls 设置配置 TLS 支持(HTTPS 支持),当需要保护 SDKRelay 之间的通信时使用。


设置记录在 .relay/config.yml 中。请注意,所有配置值都是可选的,并且默认为以下设置:


relay:
  mode: managed
  upstream: "https://sentry.io/"
  host: 0.0.0.0
  port: 3000
  tls_port: ~
  tls_identity_path: ~
  tls_identity_password: ~


配置在配置选项中有完整记录。


创建凭证


不适用于 proxystatic 模式。

除了 config.ymlinit 命令还创建了一个凭证文件 credentials.json,它位于同一个 .relay 目录中。此文件包含 Relay 用于与上游服务器进行身份验证的公钥和私钥。


因此,必须保护此文件不被未经授权的实体修改或查看。

典型的凭据文件类似于此示例:


{
  "secret_key": "5gkTAfwOrJ0lMy9aOAOmHKO1k6gd8ApYkAInmg5VfWk",
  "public_key": "nDJI79SbEYH9-8NEJAI7ezrgYfoIPW3Bnkg00k1z0fA",
  "id": "cde0d72e-0c4e-4550-a934-c1867d8a177c"
}


managed 模式下运行时,使用 public_key 向上游服务器注册您的 Relay


使用 Sentry 注册 Relay


不适用于 proxystatic 模式。

为了在 managed 模式下运行,RelaySentry 中的组织和项目设置中提取 PII 剥离、过滤和速率限制的配置。由于这些设置可能包含敏感信息,因此它们的访问受到 Sentry 的限制并需要授权。

Sentry 注册 Relay


  1. 通过检查 credentials.json 文件或运行以下命令来复制公钥的内容:


docker run --rm -it                \
  -v $(pwd)/config/:/work/.relay/  \
  getsentry/relay                  \
  credentials show


  1. 单击 Sentry 主导航中的 Settings,然后选择 Relays


image.png


  1. 点击 New Relay Key 添加密钥并保存:


image.png


此过程向 Sentry 注册 Relay,以便准备发送消息。请参阅配置选项以了解有关 Relay 配置选项的更多信息。


运行 Relay


Sentry 注册 Relay 后,它就可以运行了:


docker run --rm -it                \
  -v $(pwd)/config/:/work/.relay/  \
  -p 3000:3000                     \
  getsentry/relay                  \
  run


在默认配置下,Relay 发出类似于以下内容的日志输出:


INFO  relay::setup > launching relay from config folder .relay
 INFO  relay::setup >   relay mode: managed
 INFO  relay::setup >   relay id: cde0d72e-0c4e-4550-a934-c1867d8a177c
 INFO  relay::setup >   public key: nDJI79SbEYH9-8NEJAI7ezrgYfoIPW3Bnkg00k1z0fA
 ...
 INFO  relay_server::actors::upstream > relay successfully registered with upstream


有关如何配置 Relay 的日志记录的更多信息,请参阅 Logging 页面。

如果您移动了 config 文件夹(例如,出于安全原因),请使用 --config 选项指定位置:


docker run --rm -it                \
  -v $(pwd)/config/:/etc/relay/    \
  -p 3000:3000                     \
  getsentry/relay                  \
  run --config /etc/relay/


发送测试事件


一旦 Relay 运行并通过 Sentry 进行身份验证,将测试事件发送到您组织中的项目之一。


通过在 Settings > Projects > {YOUR_PROJECT_NAME} > Client Keys (DSN) 导航到您的项目设置来获取您的项目的 DSN,然后选择一个现有的 DSN,它看起来类似于:


https://12345abcdef10111213141516171819@o1.ingest.sentry.io/2345

接下来,替换部分 DSN 以匹配 Relay 可访问的地址。例如,如果 Relay 侦听 http://localhost:3000,请将 DSNprotocolhost 更改为:

http://12345abcdef10111213141516171819@localhost:3000/2345

在您的 SDK 配置中使用新的 DSN。要对此进行测试,您可以使用 sentry-cli(安装说明)发送消息:



export SENTRY_DSN='http://12345abcdef10111213141516171819@127.0.0.1:3000/2345'
sentry-cli send-event -m 'A test event'


几秒钟后,该事件应出现在您项目的问题流(issues stream)中。


更多


Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)

Sentry 开发者贡献指南 - SDK 开发(事件负载)

相关文章
|
6月前
|
存储 SQL 分布式计算
数据中台实战(11)-数据中台的数据安全解决方案
数据中台实战(11)-数据中台的数据安全解决方案
181 1
|
存储 算法 前端开发
面试官:如何保证用户模块的数据安全?说说你的解决方案
面试官:如何保证用户模块的数据安全?说说你的解决方案
168 0
面试官:如何保证用户模块的数据安全?说说你的解决方案
|
存储 消息中间件 缓存
Sentry Relay 二次开发调试简介
Sentry Relay 二次开发调试简介
184 0
|
JSON 开发工具 数据安全/隐私保护
Sentry 企业级数据安全解决方案 - Relay PII 和数据清理
Sentry 企业级数据安全解决方案 - Relay PII 和数据清理
183 0
|
存储 安全 应用服务中间件
Sentry 企业级数据安全解决方案 - Relay 操作指南
Sentry 企业级数据安全解决方案 - Relay 操作指南
227 0
|
4月前
|
监控 Ubuntu Docker
Sentry 监控 Docker 方式部署
Sentry 监控 Docker 方式部署
135 0
|
4月前
|
监控 前端开发 JavaScript
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
180 0
|
8月前
|
存储 监控 前端开发
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
1379 0
|
8月前
|
监控 Ubuntu Unix
Sentry 监控 Docker 方式部署
Sentry 监控 Docker 方式部署
342 0
|
9月前
|
人工智能 监控 前端开发
大型网站重构指南 第1.3部分:前端监控和小程序监控 Sentry
大型网站重构指南 第1.3部分:前端监控和小程序监控 Sentry
743 0