当前位置: 首页 > 科技观察

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

时间:2023-03-20 16:21:14 科技观察

SentryRelay通过提供充当您的应用程序和sentry.io之间的中间层的独立服务来提供企业级数据安全。Relay专门设计用于:在将个人身份信息(PII)发送到Sentry之前在中央位置对其进行清理在带宽低或连接受限的地区缩短事件响应时间作为将所有HTTP流量限制为自定义域名的一种方式Relayinmanaged模式是组织的不透明代理,仅适用于商业和企业计划。https://sentry.io/pricing/Relay用例Relay旨在支持对数据清理、响应时间和个人身份信息(PII)的企业域管理有特定企业安全要求的组织。PII数据清理Sentry已经在两个地方清理了PII:在发送事件之前在SDK中一旦它到达Sentry的基础设施,Relay添加了第三个选项,在将数据发送到Sentry之前在中央位置清理数据。要选择正确的数据清理位置,请考虑:如果您更喜欢在一个中央位置配置数据清理,您可以让Sentry处理数据清理。到达后,Sentry立即应用服务器端清理并保证不会存储任何个人信息。https://docs.sentry.io/product/data-management-settings/scrubbing/server-side-scrubbing/如果您无法将PII发送到您的基础架构之外,但您仍想在一个集中位置配置数据清理,配置您的SDK以将事件发送到中继。Relay使用在Sentry中配置的隐私设置,并在将数据转发到Sentry之前清理PII。如果您必须执行严格的数据隐私要求,您可以将SDK配置为使用发送前挂钩清理PII,从而防止在设备上收集数据。这可能需要您在应用程序中复制相同的逻辑,并且可能会影响性能。https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options/#hooks响应时间中继对请求的响应非常快。在您的基础设施附近安装中继将进一步缩短发送事件时的响应时间。这种安装方法尤其可以减少偏远地区的旅行时间。企业域管理默认情况下,SDK需要配置一个指向sentry.io的数据源名称(DSN)。如果您需要将所有HTTP流量限制为自定义域名,Relay可以充当不透明代理,可靠地将事件转发到Sentry。入门开始使用Relay就像使用默认设置一样简单。您还可以配置Relay以满足您组织的需求。查看配置选项页面,了解操作场景的详细讨论。https://docs.sentry.io/product/relay/https://docs.sentry.io/product/relay/options/中继服务器称为中继。从GitHubReleases下载二进制文件。DockerHub上提供了一个Docker镜像。https://github.com/getsentry/relay/releaseshttps://hub.docker.com/r/getsentry/relay/初始配置要创建初始配置,请使用Relay的relayconfiginit命令,该命令会将配置文件放置它位于当前工作目录的.relay文件夹中。在Docker中,配置目录是使用Docker提供的标准机制提供的,通过安装Docker卷或构建新容器和复制文件。https://docs.docker.com/storage/volumes/#调整配置目录dockerrun的权限--rm-it\-v$(pwd)/config/:/work/.relay/\--entrypointbash\getsentry/relay\-c'chown-Rrelay:relay/work/.relay'#生成配置dockerrun--rm-it\-v$(pwd)/config/:/work/.relay/\getsentry/relay\configinit选择默认配置以创建最小配置文件。您可以通过选择“创建自定义配置”并自定义这些参数来选择覆盖默认设置:模式设置配置中继运行的主要模式。有关可用中继模式的更多信息,请参阅中继模式。目前,只有代理和静态模式适用于所有组织。托管模式下的中继仅适用于商业和企业计划。https://docs.sentry.io/product/relay/modes/upstream设置配置Relay将事件转发到的服务器(默认为主要的sentry.ioURL)。端口和主机设置配置中继将侦听的TCP端口。这是SDK发送事件的地址。tls设置配置TLS支持(HTTPS支持),在需要保护SDK和Relay之间的通信时使用。设置记录在.relay/config.yml中。注意,所有配置值都是可选的,默认为以下设置:relay:mode:managedupstream:"https://sentry.io/"host:0.0.0.0port:3000tls_port:~tls_identity_path:~tls_identity_password:~配置是完全记录在配置选项中。https://docs.sentry.io/product/relay/options/创建凭据不适用于代理或静态模式。除了config.yml之外,init命令还会创建一个凭证文件credentials.json,它位于同一个.relay目录中。该文件包含Relay用于与上游服务器进行身份验证的公钥和私钥。因此,该文件必须受到未经授权实体的修改或查看的保护。0c4e-4550-a934-c1867d8a177c"}在托管模式下运行时,使用public_key向上游服务器注册你的中继。使用Sentry注册中继在代理或静态模式下不起作用。为了在托管模式下运行,Relay从Sentry的组织和项目设置中提取PII剥离、过滤和速率限制的配置。由于这些设置可能包含敏感信息,因此它们的访问受到Sentry的限制并需要授权。使用Sentry注册中继:通过检查credentials.json文件或运行以下命令复制公钥的内容:dockerrun--rm-it\-v$(pwd)/config/:/work/.relay/\getsentry/relay\credentialsshow单击Sentry主导航中的设置,然后选择中继。单击NewRelayKey添加密钥并保存:此过程将Relay注册到Sentry,以便它准备好发送消息。请参阅配置选项以了解有关中继配置选项的更多信息。运行Relay在Sentry中注册Relay后,可以运行:dockerrun--rm-it\-v$(pwd)/config/:/work/.relay/\-p3000:3000\getsentry/relay\run默认配置时,中继发出类似于以下内容的日志输出:INFOrelay::setup>launchingrelayfromconfigfolder.relayINFOrelay::setup>relaymode:managedINFOrelay::setup>relayid:cde0d72e-0c4e-4550-a934-c1867d8a177cINFOrelay::setup>publickey:nDJI79SbEYH9-8NEJAI0We...INFOrelay_server::actors::upstream>中继已成功注册到上游如果您移动了配置文件夹(例如出于安全原因),请使用--config选项指定位置:dockerrun--rm-it\-v$(pwd)/config/:/etc/relay/\-p3000:3000\getsentry/relay\run--config/etc/relay/SendTestEvents在Relay运行并通过Sentry验证后,将测试事件发送到您组织中的一个项目。通过在Settings>Projects>{YOUR_PROJECT_NAME}>ClientKeys(DSN)导航到项目设置来获取项目的DSN,然后选择一个现有的DSN,它类似于:https://12345abcdef10111213141516171819@o1.ingest.sentry.io/2345接下来,替换部分DSN以匹配中继可以到达的地址。例如,如果中继监听http://localhost:3000,将DSN的协议和主机更改为:http://12345abcdef10111213141516171819@localhost:3000/2345以在您的SDK配置中使用新的DSN。要对此进行测试,您可以使用sentry-cli(安装说明)发送消息:https://docs.sentry.io/product/cli/installation/exportSENTRY_DSN='http://12345abcdef10111213141516171819@127.0.0.1:3000/2345'sentry-clisend-event-m'Atestevent'几秒钟后,事件应该出现在项目的问题流中。