约瑟芬,雪莉黄2021年6月9日

我们的最新特性,旅程,授权团队统一跨端到端客户旅程的接触点。...

最近的文章

杰弗里·基廷2021年6月9日

客户万博官方购彩数据中心是所有客户信息的主要收集点。它连接到您的客户使用的所有渠道、平台和产品。manbetx客户端应用下载...

约瑟芬,雪莉黄2021年6月9日

我们的最新特性,旅程,授权团队统一跨端到端客户旅程的接触点。...

杰弗里·基廷2021年6月8日

数据建模101:什么是数据模型?

通过数据模型,开发人员、数据架构师、业务分析师和其他涉众可以就他们将捕获的数据以及用于什么目的达成一致建立数据库和仓库。

数据模型指定要捕获的信息、信息之间的相互关系以及如何存储信息,从而为整个组织建立数据标准。例如,电子商务网站的模型可能指定您将捕获的客户数据。万博官方购彩它将定义如何标记该数据及其与产品信息和销售过程的关系。

就像房子的蓝图一样,数据模型定义了要建造什么,以及如何建造,在开始建造之前,当事情变得更加复杂时。这种方法可以防止数据库设计和开发错误、捕获不必要的数据以及在多个位置复制数据。

在本文中,我们将介绍这些数据建模的基础知识:

  • 理解不同类型的数据模型

  • 为什么数据模型是构建数据基础架构所必需的

  • 前三大数据建模技术

理解不同类型的数据模型

数据模型分为三类:抽象,概念和物理模型。它们帮助您的利益相关者围绕您的数据项目的原因,如何以及该项目。每种类型的模型都在数据建模过程中提供了不同的目的和受众。

概念数据模型

概念性数据模型将管理您正在建模的业务流程的概念和规则可视化,而不涉及技术细节。您可以使用这种可视化来使业务涉众、系统架构师和开发人员对项目和业务需求保持一致:数据系统将包含什么信息,元素应该如何相互关联,以及它们的依赖关系。

通常,概念模型显示了系统内容、组织和相关业务规则的高级视图。例如,电子商务业务的数据模型将包含供应商、产品、客户和销售。manbetx客户端应用下载业务规则可以是每个供应商至少需要提供一种产品。

概念模型没有标准格式。重要的是,它帮助技术涉众和非技术涉众在他们的数据项目的目的、范围和设计上保持一致并达成一致。下面的所有图像都可以作为概念数据模型的示例。

逻辑数据模型

逻辑数据模型基于概念模型,定义了项目的数据元素和关系。您将看到数据库中特定实体的名称以及它们的属性。继续以电子商务为例:逻辑模型显示产品是通过“产品ID”标识的,具有描述、类别和单价等属性。

数据架构师和业务分析师使用逻辑数据模型来规划存储,检索,定义和管理数据库中数据的数据库管理系统软件的实现。

物理数据模型

物理数据模型具有技术性。数据库分析人员和开发人员使用它来设计数据库。该模型指定了将存储的数据类型以及技术需求。

数据类型规范的示例是一条数据是没有小数点的整数 - 一个数字 - 或浮点 - 一个数字位的数字。技术要求包括有关存储需求,访问速度和数据冗余存储的详细信息,在多个位置中存储一段数据,以提高耐用性并提高查询性能。

在实践中,只有非常大的项目,例如建模集装箱运输业务,从概念到逻辑到物理模型。大多数其他项目跳过概念阶段,并将其大部分时间花在逻辑建模中。一些团队甚至甚至同时覆盖了来自物理阶段的元素,因为在逻辑模型上工作的人也可以进行技术实现。

为什么数据模型是构建数据基础架构所必需的

数据模型将抽象的想法(“我们想实时跟踪我们的全球集装箱运输”)转化为技术实施计划(“我们将在一个名为‘Containers’的表格中以整数形式存储一个名为‘集装箱GPS位置’的属性”)。它们有助于避免昂贵的数据基础设施拆除和重建,因为在创建数据库和仓库之前,您需要考虑所需的数据、其关系、数据库框架,甚至项目是否可行。

数据模型还有助于数据治理和法律合规性。他们允许您从项目的开始设置标准,因此团队在他们可以在使用它之前需要清理的冲突数据格式,或者更糟糕的是,根本不能使用。

数据模型和标准化有助于避免在整个组织中以十几种不同的方式标记注册字段这样的情况。

您还可以识别敏感信息 - 社会安全号码,密码,信用卡号 - 在您的建模时,以便在您开始建设之前涉及安全和法律专家。

有了安全、准确和高质量的数据,所有团队都会受益。产品团队可以更快地迭代并构建沉浸式用户体验。分析团队可以创建查询而不需要繁重的变通方法。营销团队可以根据用户的行为和特点,通过个性化信息来提高广告效果。

万博官方购彩像Segment这样的客户数据平台(CDPs)可以在数据建模项目中做很多繁重的工作。段的万博水晶宫功能易于捕获,组织和可视化您的业务的所有客户互动,无论是数字还是离线。协议允许您定义数据标准并在收集点执行它们。使用实时数据验证和自动执行控制,您可以在问题污染您的营销和分析工具或数据仓库之前诊断问题。

前三大数据建模技术

有许多不同的技术来设计和构建数据库。您应该研究这些技术,并在概念阶段结束时确定最适合您的项目的技术。这些数据建模方法定义了数据库的结构化方式,并与用于管理数据项目的格式或技术类型密切相关。

例如,许多人现在默认使用图形建模,因为它是新的和流行的,即使一个简单的关系模型就足够了。了解最流行的技术可以帮助您避免此类错误。

1.关系数据建模

在关系数据模型中,数据存储在表中,其中的特定元素链接到其他表中的信息。实体可以有一对一、一对多或多对多的关系。

关系数据库通常使用SQL(结构化查询语言),编程语言,用于访问和管理数据。它们经常用于销售点系统,以及其他类型的交易处理。

实体关系模型 - 有时称为ER模型 - 类似于关系模型。它可视化系统中不同元素之间的关系,但不进入技术细节。您可以在概念阶段使用ER模型,以对准技术和非技术利益相关者。

2.维数据建模

要理解多维数据模型,请描绘一个多维数据集。立方体的每一面都表示试图捕获的数据的一个方面。

例如,假设您的企业向不同的客户群体销售多种产品,您想要评估销售业绩。您可以将其可视化为一个数据立方体,其中包含时间、产品和客户细分的维度。通过在立方体的坐标轴上上下左右移动,您可以在所有这些维度之间进行比较。您将看到每一种产品的销售情况如何相互比较,以及在任何时刻不同的客户群体的销售情况。

您在概念阶段使用多维数据集模型。在逻辑阶段中这种立方体的最常见的表现之一是“星形模式”,如下面的那样。起初,它可能看起来像一个关系模型。仍然,Star Schema是不同的,因为它具有连接到许多其他的中央节点。

3.图数据建模

在概念阶段,大多数人在白板上绘制数据模型。这样的草图类似于图形模型。它由“节点”和边缘组成 - 一个节点表示数据存储的位置,边缘节点之间的关系。这也是这种方法的主要优势:“你在白板上素描是什么,你在数据库中存储了什么。”

其他技术要求您将从概念阶段的输出转换为逻辑和物理实现的不同格式 - 例如,从er到关系模型或从多维数据集模型到星星模式。没有图表模型。您可以使用像本机图数据库平台如Neo4j等技术直接实现它们。

数据模型并不困难

当你理解了数据模型的目的和要遵循的过程后,创建它们就不那么困难了,特别是如果你还使用Segment收集、组织和标准化数据的话。在开始技术实现之前,您将协调所有涉众,并避免代价高昂的错误或重新构建。您将知道团队中需要哪些专业知识来执行您的计划,并定义您的数据治理。

...

吉姆年轻2021年6月4日

在过去的一年中,关于态度、偏好和个性化体验如何演变的英国企业洞察。...

杰弗里·基廷2021年6月1日

我们的年度调查着眼于过去一年中人们的态度、偏好和个性化体验是如何演变的。...

安迪李2021年6月1日

访问总是在变化。当你进入一家新公司时,根据你的团队和角色,你通常新万博app2.0下载会在第一天就获得一组应用。即使在第一天,您被授予的访问权限和您完成工作所需的访问权限之间也可能存在差异。这会导致两种结果:配置不足或配置过多的访问。

对于管理云基础架构账户的IT和安全团队,可以难以和可怕地保护对其的访问;系统很复杂,赌注很高。如果您授予太多的访问权限,您可能允许不良演员访问您的工具和基础架构,这在违反通知中最佳结果;在最糟糕的情况下,它会导致公司结尾的游戏范围。新万博app2.0下载如果您获得太少的访问权限,您将在您的同事和他们需要做的工作之间放下障碍,这意味着您正在降低您公司的生产力。新万博app2.0下载

过度访问访问

初创公司和小公司通常采取的方法是允许访问。在这些公司中,早期生产力对于业务的成功至关重要。一个员工因为缺少访问权限而被锁定在系统之外,意味着生产力的损失和业务收入的损失。

如果给员工对每个系统的永久管理权限,就可以优化速度,但代价是员工账户被泄露和内部威胁带来的风险增加。这导致了增加攻击表面.随着公司的发展,新万博app2.0下载确保关键资源的访问变得更加重要,而这需要一种不同的方法。

Underprovisioned访问

如果你给员工的权限太少,就会迫使他们更频繁地请求权限。尽管新员工最初会根据他们的团队和角色获得访问权限,但新职责和新项目可以迅速增加他们需要的访问范围。根据您公司提供访问的流程,这对于请求新万博app2.0下载者、批准者或通常两者都是很麻烦的。

在Segment,我们在亚马逊Web服务(AWS)和Google云平台(GCP)中拥有生产环境。我们需要自理地保护这些账户,以便我们的工程师可以继续建立快速和安全.在许多公司,您可能依靠集中团队来管理内部访问。虽然这是一种简单的方法,但它没有扩展 - 团队成员围绕围绕请求的数量有限的上下文,并且可能会意外过度提供请求者的访问权限。在段,我们接近通过构建访问服务管理最不特权云访问的问题:一个启用基于时间的PEER审查的访问的工具。

设置舞台:在段的访问

在段,我们在数十个SaaS应用程序和云提供商中具有数百个角色,代表不同级别的访问。在过去,我们曾经单独登录每个应用程序或系统以授予用户访问权限。我们的IT团队成功地“联邦”我们的云访问,并使用OKTA作为我们的身份提供商。这给了我们一个可以管理用户可以访问哪些角色和应用程序的选项。此博客文章的其余部分在此联合访问系统上构建。

如果您的组织还没有构建类似的东西,那么以下资源可以帮助您构建和设置自己的联邦云访问系统。

博客:

文档:

将Okta应用映射到AWS角色

通过将Okta应用程序配置为云提供商角色,工程师只需点击一下,就可以通过具有适当权限的单点登录(SSO)验证云提供商。

每个OKTA应用程序都映射到“云账户的作用”(或“项目角色“对GCP)。例如,在AWS,我们有一个暂存账户与提供对特定资源的读访问权限的角色。在OKTA中,我们有一个名为“分册读取的角色”的相应应用程序,允许工程师对AWS暂存帐户进行身份验证并假设读取角色。

这需要配置一个Okta应用程序每一个“云账户角色”组合,这在写作时是150+ Okta应用。

使用Okta配置GCP略有不同,如何做到这一点的技术细节是在这个博客的底部

将OKTA组映射到SaaS应用组

除了身份验证外,身份提供者还可以帮助授权。当他们访问应用程序时,用户可以理解地沮丧,但没有正确的权限来完成他们的工作。

标识提供者已经同意使用一组公共REST api来管理配置、取消配置和组映射sc跨域身份管理系统。

如果应用程序支持SCIM,您可以在您的身份提供者(例如Okta)中创建组,这将把用户成员资格映射到应用程序中。通过此设置,将用户添加到Okta组将自动将他们添加到应用程序中相应的组。类似地,当用户从Okta中的应用程序中被取消分配时,他们在应用程序组中的成员资格也将丢失。

SCIM允许我们提供细粒度的、应用程序级的访问,同时使用我们的身份提供者作为真相的来源。

有了一个地方来管理我们所有云提供商的访问,这个问题应该得到解决,对吗?不太……

虽然底层的Okta应用和群组系统运行良好,但我们很快就遇到了更多的人为问题。

集中访问管理的缺陷

即使有了我们令人敬畏的新的Okta+AWS系统,我们仍然需要一个流程,让一个集中的团队通过Okta提供访问。在许多公司,这个团队是IT。在Segment,这是一个叫Boggs的人。请求将进入他的收件箱,他将手动检查请求原因,并决定是否有更适合该任务的访问级别。最后,他会去Okta管理面板,并为用户提供适当的应用程序。虽然这个系统工作了一段时间,但它是不可扩展的,并且存在重大缺陷。

永久访问

一旦应用程序被提供给用户,他们就可以访问,直到他们离开Segment。尽管拥有永久访问,他们可能不会需要永久访问。不幸的是,我们的手动配置过程没有类似的可扩展方法来确保在不再需要之后删除访问。人们授予一次性任务的访问现在在实际需要它之后长时间悬而未决。

基于有限情境的难度扩展

作为一名工程经理,Boggs对可用IAM角色及其访问级别有很强的认识。这允许他通过确定使用不太敏感的角色的机会来减少不必要的访问。这种环境很难复制,这也是为什么我们不能简单地将这种责任扩展到更大的IT团队的一个重要原因。

最集中的IT团队无法与他们提供的所有应用程序密切合作,这使得它们难以评估请求。强制执行最小权限的原则可能需要在特定应用程序中彻底了解访问边界。如果没有这种知识,您将在难以确定请求者是否真正需要“管理员”,或者如果它们仍然可以使用“写入”权限,或者甚至只需“读取”访问。

来自数据工程团队的凯尔请求进入雷达管理角色进行“调试”。他们究竟需要访问什么?只读角色有用吗?等等,谁是凯尔?!他们是上周开始的吗?他们说他们需要这个权限来做他们的工作我还需要做我的…

它是缓慢的

尽管在处理访问请求方面,博格斯的装备比大多数人都要好,但他还是一个忙碌的工程经理。虽然最初提供访问是一项不常见的任务,但随着公司的发展,它开始占用宝贵的时间块,并且越来越难以理解每个请求的上下文。新万博app2.0下载

我们考虑过从IT团队中引入额外的团队成员,但这仍然需要时间,因为他们需要联系每个系统的所有者,以确认应该授予访问权限。最终,让有限的集中审批者池处理共享的请求队列会导致响应时间不太理想。

打破Boggs

Boggs尝试使用基于角色和团队的复杂脚本规则来自动解决部分问题,但仍然存在破坏系统的情况。他将如何处理团队重命名、转换、合并或拆分的重组?当用户切换团队时会发生什么?当团队有短期访问工具的合法业务需求时,会发生什么?使用当前的系统,Boggs提供的任何访问都将永远持续下去——除非有人去手动审计Okta应用程序的未使用访问。

最终,我们发现自己处于这样一种情况:我们有许多过度供应的用户,他们可以访问敏感的角色和权限。为了确保我们了解问题到底有多严重,我们测量了特权角色的访问利用率。我们查看了每个员工可以访问的特权角色数量,并将其与过去30天内实际使用的特权角色数量进行了比较。

结果令人惊讶:60%的访问没有被使用。

管理长期生存的访问根本没有伸缩性。我们需要找到一种方法将我们的集中式访问管理系统转变为分布式访问管理系统。

访问服务

在真实的访问世界中,我们不应该把用户的访问占用看作是静态的,而应该把它看作是无定形的和不断变化的。

当我们采用此透视时,它允许我们构建访问服务,一个内部应用程序,允许用户获取其真正需要的访问,并避免配置提供太少或过多的失败模式。

访问服务允许工程师请求访问单一角色以获得一定的时间,并且它们的对等体批准请求。验证者来自预定义的列表,这使得类似于GitHub的访问请求过程向指定的审批人提交请求

请求一经批准,Access Service就为用户提供适合角色的Okta应用程序或组。每日cron作业检查请求是否过期,如果过期则取消对用户的配置。

在一个高级这是一个简单的Web应用程序,但让我们看起来更接近一些特定功能以及它们解锁的内容。

临时访问

访问服务的魔力是从长期访问到临时访问的偏移。通常,工程师只需要临时访问完成定义的任务。

一旦任务完成,他们就不再需要访问权限,这违反了最小特权原则。如果使用旧的流程修复这个问题,将意味着手动取消Okta应用的配置——还没有添加另一个任务到一个已经很痛苦的手工工作流。

通过访问服务,用户可以指定访问请求的持续时间。如果审批者认为任务的持续时间太长,他们可以拒绝批准请求。这个持续时间也用于自动剥夺他们的访问权限一旦请求过期。

Access Service提供了两种类型的持续时间:“基于时间的访问”和“基于活动的访问”。

基于时间的访问是一个特定的时间段,如一天,一周,两周或四周。这是非常适合不寻常的任务,例如:

  • 修复一个需要一个通常不需要的角色的错误

  • 执行数据迁移

  • 帮助客户对通常不manbetx客户端应用下载访问的生产实例进行故障排除

基于活动的访问是A.动态每次使用授予您的应用程序或角色时延长访问过期时间的持续时间。这对于日常工作功能所需的访问非常理想——没有人希望每个月都发出少量新的访问请求。然而,我们不为我们的敏感角色提供这种类型的访问。广泛访问角色或有权访问敏感数据的角色需要定期批准以维护访问权限。基于活动的访问提供了摩擦和访问之间更实际的平衡,与我们的目标一致,使我们的工程师能够快速和安全地构建

指定的批准者

我们以前的进程的最大限制之一是一个人必须批准一切。在访问服务中,每个应用程序都有一个审查的验证列表,他们与系统密切合作。通过委派对专家的决定,我们确保访问谁应该拥有它的人批准。

首先,您不能批准自己的访问请求。(对不起红团队。)每个应用程序都有一个“系统所有者”,负责维护其批准者名单。当用户创建访问请求时,他们会选择一个或多个审批者来审查他们的请求。因为审批者列表只包含与系统密切合作的人员,审批者比中心IT团队有更好的环境和对系统的理解。

这使得审批者更容易拒绝不合理或过于宽松的访问请求,并鼓励用户请求较低级别的访问(例如,告诉他们请求只读角色而不是读/写角色)。由于传入请求在审批者之间进行了“负载平衡”,用户还可以看到对其请求的更快响应时间。

提供访问总是需要两个人,就像GitHub的pull请求一样。用户不能选择自己作为审批者,即使他们是系统所有者。Access Service还支持具有不同批准要求的“紧急访问”机制。这可以防止访问服务阻塞一个随叫随到的或站点可靠性工程师,如果他们需要在半夜访问。

通过为每个应用程序指定的系统所有者,我们的分布式批准池继续扩展,因为我们引入具有新的访问角色和级别的新工具。这就是安全社区所呼唤的“左”推

当您“左推”时,您将在开发生命周期的早期引入安全考虑,而不是在系统使用后试图对其进行改进。在软件工程领域,“左推”导致工程师学习更多关于安全性的知识。这意味着最熟悉系统的人是最精通安全修复的人。因为工程师是设计和维护软件的人,他们比中央安全团队拥有更多的上下文。类似地,Access Service减轻了中心IT团队的负担,并授权系统所有者决定谁应该在什么级别上访问他们的系统。这大大减少了IT团队用于配置访问的时间,并将他们解放出来,去做更有意义的工作。

这个怎么运作

访问服务,如我们的许多内部应用程序可以访问开放的互联网,但在Okta背后受到保护。

访问服务的基本单元是“请求”。想要访问的用户创建一个包含四条信息的请求:

  • 他们想要访问的应用程序

  • 他们想要访问的持续时间

  • 描述为什么他们需要访问的原因

  • 他们想要审核请求的批准者

当他们单击“请求访问”时,Access Services将发送所选批准的Slack通知。像许多现代公司一样,细分市场具有高度的松弛存在。使用此平台使访问服务更自然,更少的人们工作流程。即使用户请求访问是特定应用的批准,他们也必须从不同的审批人那里获得批准 - 每个请求必须涉及两个人。

访问请求在Web应用程序中跟踪,因此您可以看到您打开的请求以及您目前可以访问的角色。

当他们的请求被批准时,请求者会通过Slack得到通知,这样他们就知道他们现在可以回到他们最初需要访问的任务。

结果

在我们将访问流程迁移到访问服务之后,结果是零长期访问我们在AWS和GCP中的任何特权云角色。授予这些角色的所有访问如果没有被积极使用就会过期。

在下面的图表中,“接入点”指的是访问每个管理角色的用户数量。在使用Access Service之后,我们将拥有特权访问的人数减少了90%。

在下面的图表中,“活跃”指的是在过去30天内使用某款应用的人数。因为这个数是更高的比接入点数量,这表明了在过去30天中使用的通道比目前提供的要多

这似乎很奇怪-管理应用程序怎么可能用过的被超过总人数的人供应使用权?这是因为已过期访问已自动取消取消,从而减少了30天窗口结束的接入点数!

结论

通过认识到访问需求是不断变化的,我们能够创建一种更实际的方式来管理访问控制。

访问服务允许我们简化访问批准流程。通过将请求直接路由到指定的审批人,我们能够从具有丰富上下文的人那里快速获得批准。访问请求的基于时间的组件允许服务定期删除不必要的访问,防止我们的访问攻击面变得太大。最后,将Slack集成到系统中可以加快审批速度,确保您立即知道请求何时被批准,并在请求到期时提醒您,这样您在工作时就不会遇到意外的访问丢失。

虽然试图重新创造一个现有的、成熟的过程是令人生畏的,但结果可能是令人难以置信的回报。从写下你的目标开始,思考你不喜欢的和当前状态中让你痛苦的是什么,重新评估你的核心假设。公司总是在变化,你的流程也必须跟上;导致以前制度的情况今天可能不再适用。最重要的是,记住在构建时要考虑到用户的工作流,因为安全性依赖于整个公司的参与。新万博app2.0下载

未来的发展

政策

访问服务中的应用程序当前是单独的可自定义的。但是,如果我们希望跨多个类似的应用程序进行更改,这可能会导致可扩展性的问题。例如,如果我们决定要将对几个AWS的访问限制为不超过一周,我们目前必须为每个角色编辑允许的持续时间。随着介绍政策,我们将能够将几个角色映射到一个策略,使我们能够轻松地应用前面示例中的更改。

动态角色

目前,访问服务授予用户访问预定义的AWS角色。这些角色通常是通用目的,但可能有可能使用的情况下不完全捕获现有角色。而不是为一次性需要配置新角色,或者使用过度允许的角色,访问服务可能允许用户创建一个动态角色.在提出请求时,用户将复选述与他们想要的权限对应的框(例如,“S3读取”,“CloudWatch完全访问”等)以创建自定义动态角色。


特别感谢David Scrobonia创建访问服务并为此博客设置基础。感谢John Boggs,Rob McQueen,Anastassia Bobokalonova,Leif Dreizler,Eric Ellett,Pablo Vidal,Arta Razavi和Laura Rubin,所有这些都建成,设计,灵感或沿途提供访问服务。


参考

配置Okta中的GCP角色

将GCP角色连接到Okta比使用AWS更困难努力弄明白有一段时间,我们认为这将是值得分享的。要将GCP角色连接到我们的OKTA实例,我们必须在Goobite中使用Google Groups。

首先,我们创建了一个单独的GSuite Group对于我们的每个项目-角色对。在质量,a谷歌Group是a成员(主体)可以被分配一个角色,所有添加到组中的用户也都被分配了该角色。

然后,我们将每个GCP角色分配给相应的谷歌组。接下来,我们需要将谷歌组连接到Okta。

您可以通过使用Okta推动组织,它将Okta“group”链接到谷歌group。将用户添加到Okta Push Group会自动将正确的GSuite用户添加到谷歌组。我们为每个角色创建了一个Okta Group,并将其配置为对应谷歌Group的Push Group。

总结一下,流程是这样的:

  1. 添加Okta用户david@www.asianminres.com到Okta组“分段读- GCP角色”

  2. OKTA PUSH组将GSUITE USER DAVID@www.asianminres.com添加到“分段读取”Google Group

  3. 因为他是“Staging Read”谷歌组的成员,所以david@www.asianminres.com被分配为“Staging”项目的“Read”IAM角色。

超越内部应用程序的方法

我们所有的内部应用程序都使用OpenID连接(OIDC)启用ALB (Application Load Balancer)连接Okta这提供了一个超越我们内部应用的访问方式:所有都是公开路由,但都落后于Okta。

从工具开发人员的角度来看,这也很好,因为不仅考虑了身份验证,而且我们可以使用Okta通过ALB返回给服务器的签名JSON web令牌(JWT),以获得与Access Service交互的用户的身份。这允许我们使用Okta作为一个粗略的授权层,并管理哪些用户可以访问不同的内部应用程序。

...

斯蒂芬妮埃文斯,凯文•Niparko艾斯特惠森格哈德2021年5月31日

EMS + PMS如何共同合作的指导框架。...

Sonia Sidhpura,塔莎阿尔法诺,Pooya Jaferian,Ivayr Dieb Farah Netto2021年5月25日

js 2.0现在普遍可用。js 2.0是一个完全向后兼容的轻量级的Analytics.js实现。简单地说,你所了解和喜爱的Analytics.js由于具有更可扩展的架构而变得更快了。...

玛吉余2021年5月14日

在Segment,我们严重依赖定制的内部工具来运行特别的任务和调试基础设施中的问题。它们不仅由做产品开发的工程师运行,也由我们的支持团队运行,他们利用它们有效地调查和解决客户报告的问题。

这种内部工具对维护的尤其重要段数据湖泊产品,如我们所描述的产品以前的博文,通过EMR作业将数据加载到客户的S3桶和Glue Catalog中。

由于后一种基础设施都在客户的AWS帐户中,而不是网段拥有的帐户,因此该产品中的配置、操作和调试问题要比完全运行在网段基础设施中的东西要棘手一些。

客户在尝试设置段数据湖时,客户的最常见问题之一是其IAM策略中的manbetx客户端应用下载权限缺少。因此,我们的工具之一测试如果允许段的角色访问目标S3存储桶,胶水目录和EMR集群。另一个常见的工具任务是提交EMR作业replay归档数据到分段数据湖,这样客户可以从历史数据引导后者。manbetx客户端应用下载

由于运行这些内部工具的人员可以访问客户的资源,因此安全性是极其重要的。因此,适用于敏感生产系统的所有安全最佳实践也需要适用于我们的Data Lakes工具。在其他例子中,对工具的访问应该限制在一小部分人,并且使用工具执行的所有操作都需要被跟踪和审计。

我们评估了创建和保护这些工具的多种方法,但最终决定使用它们AWS的API网关产品.在这篇博文中,我们将解释我们如何将后者与数据湖后端集成,以及我们如何使用IAM授权和API网关资源策略来加强访问控制。我们还将提供一些在Terraform中设置相关基础设施的例子。

设计进化

Data Lakes工具有两个组件:一个CLI客户端和一个RPC服务。每个CLI命令向RPC服务发出一个请求,然后RPC服务可以访问相关的客户资源。

当Segment Data Lakes启动时,只有Data Lakes的工程师可以访问和使用CLI工具。这在最初发行时是可行的,但为了扩大产品规模,我们意识到需要让更多用户进入Segment。因此,我们开始设计一些改进,以允许我们以一种安全、可控的方式打开这个通道。

我们的初始设计依赖于SAML来验证用户,这是段在段解决此问题的其他内部工具。段使用OKTA-AWS SAML集成来管理和分配对AWS IAM角色的访问,然后使用aws-okta使用AWS进行身份验证,并使用产生的凭据运行工具命令。

SAML方法将允许我们验证工具的操作人员是经过验证和授权的Segment员工。但是,这将增加很多复杂性,因为我们需要为CLI客户机和相关的SAML认证流创建和维护代码。

就在我们即将实现SAML解决方案时,AWS为其AWS API Gateway产品发布了几个新特性,包括对基于iam角色的API身份验证的改进支持。由于Segment已经使用IAM角色来委派对Segment员工的访问,因此使用基于IAM的策略来控制对数据湖api的访问似乎是合适的。

通过此解决方案,我们可以卸载对外部服务的身份验证和授权的责任,并花费更多时间专注于我们工具的数据湖泊各个方面。

在对POC进行验证后,我们正式决定使用IAM授权的AWS API网关,而不是在我们的代码中支持SAML流。

在深入了解我们如何将AWS API网关集成到我们的设计中之前,让我们回顾一下这个产品是如何工作的以及它提供的各种功能。

什么是AWS API网关?

AWS API网关位于API客户端和备份这些API的服务之间。它支持与各种后端类型的集成,包括在ECS或EKS中运行的AWS Lambda和Containized Services。该产品还提供了许多功能,以帮助维护和部署API,例如管理和路由流量,监视API调用和从安全性的访问权限。

API Gateway支持两种类型的API - HTTP API和REST API。许多功能都适用于两者,但有些功能只是一个或另一个。在决定哪种类型的API网关最适合您的用例之前,重要的是要了解两者之间的差异。查看本指南在AWS文档库中为一个很好的摘要。

API网关的重要概念

这里有一些API网关的概念,将在这篇博文中提到,你可能会遇到,当你建立自己的AWS API网关。

资源政策

IAM policy是与IAM用户、组或角色相关联的API网关资源策略附加到资源。您可以使用IAM policy和/或资源policy来定义谁可以访问资源以及可以执行什么操作。

代理集成

代理集成允许将请求代理到支持服务,而无需中间体转换。如果使用代理集成,则只能修改每个请求上的头、路径参数和查询字符串参数。如果不使用代理集成,还可以定义映射模板来转换请求主体。

代理资源

代理资源允许通过贪婪路径参数{proxy +}捆绑对多个资源的访问。使用代理资源,您无需为每个路径定义单独的资源。如果所有资源由相同的备用服务备份,则尤其有用。有关更多详细信息,请参阅此AWS医生

阶段

API网关中的Stage是对部署的命名引用。你可以为每个API创建和管理多个阶段,例如alpha, beta和production。每个阶段都可以与不同的后端服务集成。

为什么我们在http over上选择了休息API

在我们的例子中,我们真正想要使用资源策略来定义访问控制,而这个特性只在REST api中可用。HTTP api比REST api便宜,但由于我们预计工具的请求量较低,所以每月的总成本不会是一个问题。因此,我们决定使用REST API。

如果您需要使用ALB集成REST API,或者如果要使用API​​ Gateway来处理API访问控制,您可能会遇到一些挑战。在以下部分中,我们分享我们如何解决这些问题。

设置REST API网关

铝青铜的集成

我们的后端工具服务驻留在私人VPC中并坐在ALB后面。HTTP API支持直接与ALB集成,但REST API不会(见HTTP api和REST api的比较).要使用ALB集成REST API,您需要在两者之间放置一个NLB。

这里的设置涉及两个步骤:

  1. NLB→ALB集成

  2. REST API网关→NLB集成

NLB→ALB集成

第一步是创建一个可以将流量转发到ALB的NLB:

AWS博客说明如何使用Lambda函数设置此集成,其中包括Lambda函数代码和可用于设置的CloudFormation模板。

REST API网关→NLB集成

下一步是将REST API链接到NLB,如下所示:

这可以通过先创建一个VPC链接到NLB,然后在Gateway API方法集成中使用这个VPC链接来实现。这指导从AWS提供了将API与VPC链接集成到NLB的说明。

我们使用代理集成和一个代理资源.如果介绍了新的API或我们的API架构演变,我们无需更新API网关。

起程拓殖的例子

我们使用Terraform来组织和管理分部的AWS基础设施。下面是一个将REST API与NLB集成,并创建与代理资源集成的示例:

授权和访问控制

为了确保只有授权用户可以访问我们的工具服务,我们使用IAM Authorization和API Gateway资源策略的组合。在下面的部分中,我们将详细讨论这些是什么,以及如何为我们的工具配置它们。

IAM授权

“API网关”支持对API开启IAM鉴权。启用此功能后,发送的API请求需要使用AWS安全凭据(AWS.医生).如果请求没有签名(即匿名身份),那么请求将失败。否则,API Gateway将根据IAM策略和/或资源策略允许或拒绝API请求。这AWS指南解释API网关如何根据IAM策略和资源策略的组合来确定是否允许或拒绝。

资源政策

IAM策略和/或资源策略可以用来指定谁可以访问资源以及可以执行什么操作,但我们在我们的用例中只使用后者。

在Segment,我们在同一个AWS帐户中有多个角色,例如带有ReadOnlyAccess策略的读角色,带有AdministratorAccess策略的管理员角色,等等。有些策略授予execute-api权限,这是在API Gateway中调用API所必需的,有些则不需要。例如,AWS托管策略AdministratorAccess允许对所有资源使用execute-api。

如果希望将execute-api权限限制到特定的角色api-invoke-role,则需要将拒绝execute-api权限的IAM策略附加到所有拥有此权限的其他角色上,或者明确拒绝资源策略中的这些角色。

对于前一种方法,您应该创建一个策略来拒绝针对API Gateway调用execute-api,然后将该策略附加到不应该允许调用API的角色上。下面是一个政策示例:

对于后一种方法,您将列出不应允许在资源策略中调用API的所有角色。以下是一个例子:

如果帐户中存在许多角色,并且随着时间的推移创建了新角色,则创建这些策略可能会非常繁琐,并将其保持全部最新。如果在同一帐户中有多个API,则这更糟糕,并且每个都有一个单独的允许的IAM角色。

作为此替代方案,您可以创建一个资源策略,该资源策略默认默认阻止对所有其他所有内容的同时访问角色子集。

这是我们决定采用的方法:

起程拓殖的例子

以下是在Terraform中实现上述方法的一个例子:

访问日志记录

另一个重要的安全要求是保留对API网关所需的请求的审计跟踪。每个记录应包含调用者标识和所做的请求的详细信息。

API Gateway内置了与CloudWatch的集成,这使得在后者中生成这些访问日志变得很容易。您可以选择一种日志格式(CLF、JSON、XML或CSV),并指定应该记录哪些信息。

除了使用CloudWatch,我们还创造了一个部分年代用于审计日志。我们的后端服务问题跟踪调用对于每个请求,所有的径赛事件都同步到我们的仓库.这样,我们就不需要实现连接器来从CloudWatch导出数据并将其加载到我们的仓库中。

起程拓殖的例子

下面介绍如何配置API网关的CloudWatch审计日志。请注意,您需要创建一个IAM角色,该角色在CloudWatch侧具有适当的读写权限:

签名的请求

通过启用IAM授权,所有API请求都需要使用AWS Access键签名,因此AWS可以识别呼叫者。有多个版本的签名过程,V4是最新(和推荐)一个。各种AWS SDK提供了处理此过程的低级细节的辅助功能。

下面是一个使用AWS SDK的例子:

在我们的用例中,CLI客户端自动包装输入,使用用户的AWS凭据对请求进行签名,并将请求发送到我们的API网关,使用户使用起来非常容易。

例如,我们公开了以下命令来检查EMR集群的状态。CLI Client将命令和标志映射到API中的请求路径和主体:

部署

在使用API Gateway REST API时要记住的一件事是,它不支持自动部署(HTTP API支持)。因此,如果对API资源或阶段进行了更改,则需要手动触发部署。

起程拓殖的例子

这个例子演示了如何使用Terraform 0.11触发部署。触发器散列可以是包含与API网关关联的资源的Terraform文件的散列。如果这些文件中有任何更改,散列将更改,从而触发部署。

请注意,TerraForm 0.12支持显式触发器参数,允许您在后者内部提供触发器散列,而不是通过部署变量执行此操作。

结论

我们一直在使用这个基于API-Gateway的设置了几个月,并且它对数据湖泊的工具用例工作非常好。在此设置变得可用之前,工具操作仅由我们的工程团队执行以解决客户的问题。manbetx客户端应用下载部署解决方案后,我们向我们的支持团队开辟了工具服务,从而减少了对工程团队的依赖性和运营成本。

这是我们第一次使用API Gateway产品,所以我们不得不花一些时间来想出各种解决方案和变通方法(例如与ALB集成,使用Terraform触发部署等),但总体来说,一旦我们解决了这些问题,我们有一个愉快的体验。

API Gateway还有许多其他特性没有用于我们的工具,因此在这篇博文中没有讨论,但可能仍然对您的用例有帮助。例如,API Gateway允许您设置节流限制和设置缓存。这些特性将有助于防止您的系统被大量的请求所淹没。通过使用不同的后端集成配置API,您还可以使用API Gateway同时管理和运行API的多个版本。

...

杰弗里·基廷2021年6月9日

客户万博官方购彩数据中心是所有客户信息的主要收集点。它连接到您的客户使用的所有渠道、平台和产品。manbetx客户端应用下载...

约瑟芬,雪莉黄2021年6月9日

我们的最新特性,旅程,授权团队统一跨端到端客户旅程的接触点。...

杰弗里·基廷2021年6月8日

数据建模101:什么是数据模型?

通过数据模型,开发人员、数据架构师、业务分析师和其他涉众可以就他们将捕获的数据以及用于什么目的达成一致建立数据库和仓库。

数据模型指定要捕获的信息、信息之间的相互关系以及如何存储信息,从而为整个组织建立数据标准。例如,电子商务网站的模型可能指定您将捕获的客户数据。万博官方购彩它将定义如何标记该数据及其与产品信息和销售过程的关系。

就像房子的蓝图一样,数据模型定义了要建造什么,以及如何建造,在开始建造之前,当事情变得更加复杂时。这种方法可以防止数据库设计和开发错误、捕获不必要的数据以及在多个位置复制数据。

在本文中,我们将介绍这些数据建模的基础知识:

  • 理解不同类型的数据模型

  • 为什么数据模型是构建数据基础架构所必需的

  • 前三大数据建模技术

理解不同类型的数据模型

数据模型分为三类:抽象,概念和物理模型。它们帮助您的利益相关者围绕您的数据项目的原因,如何以及该项目。每种类型的模型都在数据建模过程中提供了不同的目的和受众。

概念数据模型

概念性数据模型将管理您正在建模的业务流程的概念和规则可视化,而不涉及技术细节。您可以使用这种可视化来使业务涉众、系统架构师和开发人员对项目和业务需求保持一致:数据系统将包含什么信息,元素应该如何相互关联,以及它们的依赖关系。

通常,概念模型显示了系统内容、组织和相关业务规则的高级视图。例如,电子商务业务的数据模型将包含供应商、产品、客户和销售。manbetx客户端应用下载业务规则可以是每个供应商至少需要提供一种产品。

概念模型没有标准格式。重要的是,它帮助技术涉众和非技术涉众在他们的数据项目的目的、范围和设计上保持一致并达成一致。下面的所有图像都可以作为概念数据模型的示例。

逻辑数据模型

逻辑数据模型基于概念模型,定义了项目的数据元素和关系。您将看到数据库中特定实体的名称以及它们的属性。继续以电子商务为例:逻辑模型显示产品是通过“产品ID”标识的,具有描述、类别和单价等属性。

数据架构师和业务分析师使用逻辑数据模型来规划存储,检索,定义和管理数据库中数据的数据库管理系统软件的实现。

物理数据模型

物理数据模型具有技术性。数据库分析人员和开发人员使用它来设计数据库。该模型指定了将存储的数据类型以及技术需求。

数据类型规范的示例是一条数据是没有小数点的整数 - 一个数字 - 或浮点 - 一个数字位的数字。技术要求包括有关存储需求,访问速度和数据冗余存储的详细信息,在多个位置中存储一段数据,以提高耐用性并提高查询性能。

在实践中,只有非常大的项目,例如建模集装箱运输业务,从概念到逻辑到物理模型。大多数其他项目跳过概念阶段,并将其大部分时间花在逻辑建模中。一些团队甚至甚至同时覆盖了来自物理阶段的元素,因为在逻辑模型上工作的人也可以进行技术实现。

为什么数据模型是构建数据基础架构所必需的

数据模型将抽象的想法(“我们想实时跟踪我们的全球集装箱运输”)转化为技术实施计划(“我们将在一个名为‘Containers’的表格中以整数形式存储一个名为‘集装箱GPS位置’的属性”)。它们有助于避免昂贵的数据基础设施拆除和重建,因为在创建数据库和仓库之前,您需要考虑所需的数据、其关系、数据库框架,甚至项目是否可行。

数据模型还有助于数据治理和法律合规性。他们允许您从项目的开始设置标准,因此团队在他们可以在使用它之前需要清理的冲突数据格式,或者更糟糕的是,根本不能使用。

数据模型和标准化有助于避免在整个组织中以十几种不同的方式标记注册字段这样的情况。

您还可以识别敏感信息 - 社会安全号码,密码,信用卡号 - 在您的建模时,以便在您开始建设之前涉及安全和法律专家。

有了安全、准确和高质量的数据,所有团队都会受益。产品团队可以更快地迭代并构建沉浸式用户体验。分析团队可以创建查询而不需要繁重的变通方法。营销团队可以根据用户的行为和特点,通过个性化信息来提高广告效果。

万博官方购彩像Segment这样的客户数据平台(CDPs)可以在数据建模项目中做很多繁重的工作。段的万博水晶宫功能易于捕获,组织和可视化您的业务的所有客户互动,无论是数字还是离线。协议允许您定义数据标准并在收集点执行它们。使用实时数据验证和自动执行控制,您可以在问题污染您的营销和分析工具或数据仓库之前诊断问题。

前三大数据建模技术

有许多不同的技术来设计和构建数据库。您应该研究这些技术,并在概念阶段结束时确定最适合您的项目的技术。这些数据建模方法定义了数据库的结构化方式,并与用于管理数据项目的格式或技术类型密切相关。

例如,许多人现在默认使用图形建模,因为它是新的和流行的,即使一个简单的关系模型就足够了。了解最流行的技术可以帮助您避免此类错误。

1.关系数据建模

在关系数据模型中,数据存储在表中,其中的特定元素链接到其他表中的信息。实体可以有一对一、一对多或多对多的关系。

关系数据库通常使用SQL(结构化查询语言),编程语言,用于访问和管理数据。它们经常用于销售点系统,以及其他类型的交易处理。

实体关系模型 - 有时称为ER模型 - 类似于关系模型。它可视化系统中不同元素之间的关系,但不进入技术细节。您可以在概念阶段使用ER模型,以对准技术和非技术利益相关者。

2.维数据建模

要理解多维数据模型,请描绘一个多维数据集。立方体的每一面都表示试图捕获的数据的一个方面。

例如,假设您的企业向不同的客户群体销售多种产品,您想要评估销售业绩。您可以将其可视化为一个数据立方体,其中包含时间、产品和客户细分的维度。通过在立方体的坐标轴上上下左右移动,您可以在所有这些维度之间进行比较。您将看到每一种产品的销售情况如何相互比较,以及在任何时刻不同的客户群体的销售情况。

您在概念阶段使用多维数据集模型。在逻辑阶段中这种立方体的最常见的表现之一是“星形模式”,如下面的那样。起初,它可能看起来像一个关系模型。仍然,Star Schema是不同的,因为它具有连接到许多其他的中央节点。

3.图数据建模

在概念阶段,大多数人在白板上绘制数据模型。这样的草图类似于图形模型。它由“节点”和边缘组成 - 一个节点表示数据存储的位置,边缘节点之间的关系。这也是这种方法的主要优势:“你在白板上素描是什么,你在数据库中存储了什么。”

其他技术要求您将从概念阶段的输出转换为逻辑和物理实现的不同格式 - 例如,从er到关系模型或从多维数据集模型到星星模式。没有图表模型。您可以使用像本机图数据库平台如Neo4j等技术直接实现它们。

数据模型并不困难

当你理解了数据模型的目的和要遵循的过程后,创建它们就不那么困难了,特别是如果你还使用Segment收集、组织和标准化数据的话。在开始技术实现之前,您将协调所有涉众,并避免代价高昂的错误或重新构建。您将知道团队中需要哪些专业知识来执行您的计划,并定义您的数据治理。

...

吉姆年轻2021年6月4日

在过去的一年中,关于态度、偏好和个性化体验如何演变的英国企业洞察。...

杰弗里·基廷2021年6月1日

我们的年度调查着眼于过去一年中人们的态度、偏好和个性化体验是如何演变的。...

安迪李2021年6月1日

访问总是在变化。当你进入一家新公司时,根据你的团队和角色,你通常新万博app2.0下载会在第一天就获得一组应用。即使在第一天,您被授予的访问权限和您完成工作所需的访问权限之间也可能存在差异。这会导致两种结果:配置不足或配置过多的访问。

对于管理云基础架构账户的IT和安全团队,可以难以和可怕地保护对其的访问;系统很复杂,赌注很高。如果您授予太多的访问权限,您可能允许不良演员访问您的工具和基础架构,这在违反通知中最佳结果;在最糟糕的情况下,它会导致公司结尾的游戏范围。新万博app2.0下载如果您获得太少的访问权限,您将在您的同事和他们需要做的工作之间放下障碍,这意味着您正在降低您公司的生产力。新万博app2.0下载

过度访问访问

初创公司和小公司通常采取的方法是允许访问。在这些公司中,早期生产力对于业务的成功至关重要。一个员工因为缺少访问权限而被锁定在系统之外,意味着生产力的损失和业务收入的损失。

如果给员工对每个系统的永久管理权限,就可以优化速度,但代价是员工账户被泄露和内部威胁带来的风险增加。这导致了增加攻击表面.随着公司的发展,新万博app2.0下载确保关键资源的访问变得更加重要,而这需要一种不同的方法。

Underprovisioned访问

如果你给员工的权限太少,就会迫使他们更频繁地请求权限。尽管新员工最初会根据他们的团队和角色获得访问权限,但新职责和新项目可以迅速增加他们需要的访问范围。根据您公司提供访问的流程,这对于请求新万博app2.0下载者、批准者或通常两者都是很麻烦的。

在Segment,我们在亚马逊Web服务(AWS)和Google云平台(GCP)中拥有生产环境。我们需要自理地保护这些账户,以便我们的工程师可以继续建立快速和安全.在许多公司,您可能依靠集中团队来管理内部访问。虽然这是一种简单的方法,但它没有扩展 - 团队成员围绕围绕请求的数量有限的上下文,并且可能会意外过度提供请求者的访问权限。在段,我们接近通过构建访问服务管理最不特权云访问的问题:一个启用基于时间的PEER审查的访问的工具。

设置舞台:在段的访问

在段,我们在数十个SaaS应用程序和云提供商中具有数百个角色,代表不同级别的访问。在过去,我们曾经单独登录每个应用程序或系统以授予用户访问权限。我们的IT团队成功地“联邦”我们的云访问,并使用OKTA作为我们的身份提供商。这给了我们一个可以管理用户可以访问哪些角色和应用程序的选项。此博客文章的其余部分在此联合访问系统上构建。

如果您的组织还没有构建类似的东西,那么以下资源可以帮助您构建和设置自己的联邦云访问系统。

博客:

文档:

将Okta应用映射到AWS角色

通过将Okta应用程序配置为云提供商角色,工程师只需点击一下,就可以通过具有适当权限的单点登录(SSO)验证云提供商。

每个OKTA应用程序都映射到“云账户的作用”(或“项目角色“对GCP)。例如,在AWS,我们有一个暂存账户与提供对特定资源的读访问权限的角色。在OKTA中,我们有一个名为“分册读取的角色”的相应应用程序,允许工程师对AWS暂存帐户进行身份验证并假设读取角色。

这需要配置一个Okta应用程序每一个“云账户角色”组合,这在写作时是150+ Okta应用。

使用Okta配置GCP略有不同,如何做到这一点的技术细节是在这个博客的底部

将OKTA组映射到SaaS应用组

除了身份验证外,身份提供者还可以帮助授权。当他们访问应用程序时,用户可以理解地沮丧,但没有正确的权限来完成他们的工作。

标识提供者已经同意使用一组公共REST api来管理配置、取消配置和组映射sc跨域身份管理系统。

如果应用程序支持SCIM,您可以在您的身份提供者(例如Okta)中创建组,这将把用户成员资格映射到应用程序中。通过此设置,将用户添加到Okta组将自动将他们添加到应用程序中相应的组。类似地,当用户从Okta中的应用程序中被取消分配时,他们在应用程序组中的成员资格也将丢失。

SCIM允许我们提供细粒度的、应用程序级的访问,同时使用我们的身份提供者作为真相的来源。

有了一个地方来管理我们所有云提供商的访问,这个问题应该得到解决,对吗?不太……

虽然底层的Okta应用和群组系统运行良好,但我们很快就遇到了更多的人为问题。

集中访问管理的缺陷

即使有了我们令人敬畏的新的Okta+AWS系统,我们仍然需要一个流程,让一个集中的团队通过Okta提供访问。在许多公司,这个团队是IT。在Segment,这是一个叫Boggs的人。请求将进入他的收件箱,他将手动检查请求原因,并决定是否有更适合该任务的访问级别。最后,他会去Okta管理面板,并为用户提供适当的应用程序。虽然这个系统工作了一段时间,但它是不可扩展的,并且存在重大缺陷。

永久访问

一旦应用程序被提供给用户,他们就可以访问,直到他们离开Segment。尽管拥有永久访问,他们可能不会需要永久访问。不幸的是,我们的手动配置过程没有类似的可扩展方法来确保在不再需要之后删除访问。人们授予一次性任务的访问现在在实际需要它之后长时间悬而未决。

基于有限情境的难度扩展

作为一名工程经理,Boggs对可用IAM角色及其访问级别有很强的认识。这允许他通过确定使用不太敏感的角色的机会来减少不必要的访问。这种环境很难复制,这也是为什么我们不能简单地将这种责任扩展到更大的IT团队的一个重要原因。

最集中的IT团队无法与他们提供的所有应用程序密切合作,这使得它们难以评估请求。强制执行最小权限的原则可能需要在特定应用程序中彻底了解访问边界。如果没有这种知识,您将在难以确定请求者是否真正需要“管理员”,或者如果它们仍然可以使用“写入”权限,或者甚至只需“读取”访问。

来自数据工程团队的凯尔请求进入雷达管理角色进行“调试”。他们究竟需要访问什么?只读角色有用吗?等等,谁是凯尔?!他们是上周开始的吗?他们说他们需要这个权限来做他们的工作我还需要做我的…

它是缓慢的

尽管在处理访问请求方面,博格斯的装备比大多数人都要好,但他还是一个忙碌的工程经理。虽然最初提供访问是一项不常见的任务,但随着公司的发展,它开始占用宝贵的时间块,并且越来越难以理解每个请求的上下文。新万博app2.0下载

我们考虑过从IT团队中引入额外的团队成员,但这仍然需要时间,因为他们需要联系每个系统的所有者,以确认应该授予访问权限。最终,让有限的集中审批者池处理共享的请求队列会导致响应时间不太理想。

打破Boggs

Boggs尝试使用基于角色和团队的复杂脚本规则来自动解决部分问题,但仍然存在破坏系统的情况。他将如何处理团队重命名、转换、合并或拆分的重组?当用户切换团队时会发生什么?当团队有短期访问工具的合法业务需求时,会发生什么?使用当前的系统,Boggs提供的任何访问都将永远持续下去——除非有人去手动审计Okta应用程序的未使用访问。

最终,我们发现自己处于这样一种情况:我们有许多过度供应的用户,他们可以访问敏感的角色和权限。为了确保我们了解问题到底有多严重,我们测量了特权角色的访问利用率。我们查看了每个员工可以访问的特权角色数量,并将其与过去30天内实际使用的特权角色数量进行了比较。

结果令人惊讶:60%的访问没有被使用。

管理长期生存的访问根本没有伸缩性。我们需要找到一种方法将我们的集中式访问管理系统转变为分布式访问管理系统。

访问服务

在真实的访问世界中,我们不应该把用户的访问占用看作是静态的,而应该把它看作是无定形的和不断变化的。

当我们采用此透视时,它允许我们构建访问服务,一个内部应用程序,允许用户获取其真正需要的访问,并避免配置提供太少或过多的失败模式。

访问服务允许工程师请求访问单一角色以获得一定的时间,并且它们的对等体批准请求。验证者来自预定义的列表,这使得类似于GitHub的访问请求过程向指定的审批人提交请求

请求一经批准,Access Service就为用户提供适合角色的Okta应用程序或组。每日cron作业检查请求是否过期,如果过期则取消对用户的配置。

在一个高级这是一个简单的Web应用程序,但让我们看起来更接近一些特定功能以及它们解锁的内容。

临时访问

访问服务的魔力是从长期访问到临时访问的偏移。通常,工程师只需要临时访问完成定义的任务。

一旦任务完成,他们就不再需要访问权限,这违反了最小特权原则。如果使用旧的流程修复这个问题,将意味着手动取消Okta应用的配置——还没有添加另一个任务到一个已经很痛苦的手工工作流。

通过访问服务,用户可以指定访问请求的持续时间。如果审批者认为任务的持续时间太长,他们可以拒绝批准请求。这个持续时间也用于自动剥夺他们的访问权限一旦请求过期。

Access Service提供了两种类型的持续时间:“基于时间的访问”和“基于活动的访问”。

基于时间的访问是一个特定的时间段,如一天,一周,两周或四周。这是非常适合不寻常的任务,例如:

  • 修复一个需要一个通常不需要的角色的错误

  • 执行数据迁移

  • 帮助客户对通常不manbetx客户端应用下载访问的生产实例进行故障排除

基于活动的访问是A.动态每次使用授予您的应用程序或角色时延长访问过期时间的持续时间。这对于日常工作功能所需的访问非常理想——没有人希望每个月都发出少量新的访问请求。然而,我们不为我们的敏感角色提供这种类型的访问。广泛访问角色或有权访问敏感数据的角色需要定期批准以维护访问权限。基于活动的访问提供了摩擦和访问之间更实际的平衡,与我们的目标一致,使我们的工程师能够快速和安全地构建

指定的批准者

我们以前的进程的最大限制之一是一个人必须批准一切。在访问服务中,每个应用程序都有一个审查的验证列表,他们与系统密切合作。通过委派对专家的决定,我们确保访问谁应该拥有它的人批准。

首先,您不能批准自己的访问请求。(对不起红团队。)每个应用程序都有一个“系统所有者”,负责维护其批准者名单。当用户创建访问请求时,他们会选择一个或多个审批者来审查他们的请求。因为审批者列表只包含与系统密切合作的人员,审批者比中心IT团队有更好的环境和对系统的理解。

这使得审批者更容易拒绝不合理或过于宽松的访问请求,并鼓励用户请求较低级别的访问(例如,告诉他们请求只读角色而不是读/写角色)。由于传入请求在审批者之间进行了“负载平衡”,用户还可以看到对其请求的更快响应时间。

提供访问总是需要两个人,就像GitHub的pull请求一样。用户不能选择自己作为审批者,即使他们是系统所有者。Access Service还支持具有不同批准要求的“紧急访问”机制。这可以防止访问服务阻塞一个随叫随到的或站点可靠性工程师,如果他们需要在半夜访问。

通过为每个应用程序指定的系统所有者,我们的分布式批准池继续扩展,因为我们引入具有新的访问角色和级别的新工具。这就是安全社区所呼唤的“左”推

当您“左推”时,您将在开发生命周期的早期引入安全考虑,而不是在系统使用后试图对其进行改进。在软件工程领域,“左推”导致工程师学习更多关于安全性的知识。这意味着最熟悉系统的人是最精通安全修复的人。因为工程师是设计和维护软件的人,他们比中央安全团队拥有更多的上下文。类似地,Access Service减轻了中心IT团队的负担,并授权系统所有者决定谁应该在什么级别上访问他们的系统。这大大减少了IT团队用于配置访问的时间,并将他们解放出来,去做更有意义的工作。

这个怎么运作

访问服务,如我们的许多内部应用程序可以访问开放的互联网,但在Okta背后受到保护。

访问服务的基本单元是“请求”。想要访问的用户创建一个包含四条信息的请求:

  • 他们想要访问的应用程序

  • 他们想要访问的持续时间

  • 描述为什么他们需要访问的原因

  • 他们想要审核请求的批准者

当他们单击“请求访问”时,Access Services将发送所选批准的Slack通知。像许多现代公司一样,细分市场具有高度的松弛存在。使用此平台使访问服务更自然,更少的人们工作流程。即使用户请求访问是特定应用的批准,他们也必须从不同的审批人那里获得批准 - 每个请求必须涉及两个人。

访问请求在Web应用程序中跟踪,因此您可以看到您打开的请求以及您目前可以访问的角色。

当他们的请求被批准时,请求者会通过Slack得到通知,这样他们就知道他们现在可以回到他们最初需要访问的任务。

结果

在我们将访问流程迁移到访问服务之后,结果是零长期访问我们在AWS和GCP中的任何特权云角色。授予这些角色的所有访问如果没有被积极使用就会过期。

在下面的图表中,“接入点”指的是访问每个管理角色的用户数量。在使用Access Service之后,我们将拥有特权访问的人数减少了90%。

在下面的图表中,“活跃”指的是在过去30天内使用某款应用的人数。因为这个数是更高的比接入点数量,这表明了在过去30天中使用的通道比目前提供的要多

这似乎很奇怪-管理应用程序怎么可能用过的被超过总人数的人供应使用权?这是因为已过期访问已自动取消取消,从而减少了30天窗口结束的接入点数!

结论

通过认识到访问需求是不断变化的,我们能够创建一种更实际的方式来管理访问控制。

访问服务允许我们简化访问批准流程。通过将请求直接路由到指定的审批人,我们能够从具有丰富上下文的人那里快速获得批准。访问请求的基于时间的组件允许服务定期删除不必要的访问,防止我们的访问攻击面变得太大。最后,将Slack集成到系统中可以加快审批速度,确保您立即知道请求何时被批准,并在请求到期时提醒您,这样您在工作时就不会遇到意外的访问丢失。

虽然试图重新创造一个现有的、成熟的过程是令人生畏的,但结果可能是令人难以置信的回报。从写下你的目标开始,思考你不喜欢的和当前状态中让你痛苦的是什么,重新评估你的核心假设。公司总是在变化,你的流程也必须跟上;导致以前制度的情况今天可能不再适用。最重要的是,记住在构建时要考虑到用户的工作流,因为安全性依赖于整个公司的参与。新万博app2.0下载

未来的发展

政策

访问服务中的应用程序当前是单独的可自定义的。但是,如果我们希望跨多个类似的应用程序进行更改,这可能会导致可扩展性的问题。例如,如果我们决定要将对几个AWS的访问限制为不超过一周,我们目前必须为每个角色编辑允许的持续时间。随着介绍政策,我们将能够将几个角色映射到一个策略,使我们能够轻松地应用前面示例中的更改。

动态角色

目前,访问服务授予用户访问预定义的AWS角色。这些角色通常是通用目的,但可能有可能使用的情况下不完全捕获现有角色。而不是为一次性需要配置新角色,或者使用过度允许的角色,访问服务可能允许用户创建一个动态角色.在提出请求时,用户将复选述与他们想要的权限对应的框(例如,“S3读取”,“CloudWatch完全访问”等)以创建自定义动态角色。


特别感谢David Scrobonia创建访问服务并为此博客设置基础。感谢John Boggs,Rob McQueen,Anastassia Bobokalonova,Leif Dreizler,Eric Ellett,Pablo Vidal,Arta Razavi和Laura Rubin,所有这些都建成,设计,灵感或沿途提供访问服务。


参考

配置Okta中的GCP角色

将GCP角色连接到Okta比使用AWS更困难努力弄明白有一段时间,我们认为这将是值得分享的。要将GCP角色连接到我们的OKTA实例,我们必须在Goobite中使用Google Groups。

首先,我们创建了一个单独的GSuite Group对于我们的每个项目-角色对。在质量,a谷歌Group是a成员(主体)可以被分配一个角色,所有添加到组中的用户也都被分配了该角色。

然后,我们将每个GCP角色分配给相应的谷歌组。接下来,我们需要将谷歌组连接到Okta。

您可以通过使用Okta推动组织,它将Okta“group”链接到谷歌group。将用户添加到Okta Push Group会自动将正确的GSuite用户添加到谷歌组。我们为每个角色创建了一个Okta Group,并将其配置为对应谷歌Group的Push Group。

总结一下,流程是这样的:

  1. 添加Okta用户david@www.asianminres.com到Okta组“分段读- GCP角色”

  2. OKTA PUSH组将GSUITE USER DAVID@www.asianminres.com添加到“分段读取”Google Group

  3. 因为他是“Staging Read”谷歌组的成员,所以david@www.asianminres.com被分配为“Staging”项目的“Read”IAM角色。

超越内部应用程序的方法

我们所有的内部应用程序都使用OpenID连接(OIDC)启用ALB (Application Load Balancer)连接Okta这提供了一个超越我们内部应用的访问方式:所有都是公开路由,但都落后于Okta。

从工具开发人员的角度来看,这也很好,因为不仅考虑了身份验证,而且我们可以使用Okta通过ALB返回给服务器的签名JSON web令牌(JWT),以获得与Access Service交互的用户的身份。这允许我们使用Okta作为一个粗略的授权层,并管理哪些用户可以访问不同的内部应用程序。

...

斯蒂芬妮埃文斯,凯文•Niparko艾斯特惠森格哈德2021年5月31日

EMS + PMS如何共同合作的指导框架。...

Sonia Sidhpura,塔莎阿尔法诺,Pooya Jaferian,Ivayr Dieb Farah Netto2021年5月25日

js 2.0现在普遍可用。js 2.0是一个完全向后兼容的轻量级的Analytics.js实现。简单地说,你所了解和喜爱的Analytics.js由于具有更可扩展的架构而变得更快了。...

玛吉余2021年5月14日

在Segment,我们严重依赖定制的内部工具来运行特别的任务和调试基础设施中的问题。它们不仅由做产品开发的工程师运行,也由我们的支持团队运行,他们利用它们有效地调查和解决客户报告的问题。

这种内部工具对维护的尤其重要段数据湖泊产品,如我们所描述的产品以前的博文,通过EMR作业将数据加载到客户的S3桶和Glue Catalog中。

由于后一种基础设施都在客户的AWS帐户中,而不是网段拥有的帐户,因此该产品中的配置、操作和调试问题要比完全运行在网段基础设施中的东西要棘手一些。

客户在尝试设置段数据湖时,客户的最常见问题之一是其IAM策略中的manbetx客户端应用下载权限缺少。因此,我们的工具之一测试如果允许段的角色访问目标S3存储桶,胶水目录和EMR集群。另一个常见的工具任务是提交EMR作业replay归档数据到分段数据湖,这样客户可以从历史数据引导后者。manbetx客户端应用下载

由于运行这些内部工具的人员可以访问客户的资源,因此安全性是极其重要的。因此,适用于敏感生产系统的所有安全最佳实践也需要适用于我们的Data Lakes工具。在其他例子中,对工具的访问应该限制在一小部分人,并且使用工具执行的所有操作都需要被跟踪和审计。

我们评估了创建和保护这些工具的多种方法,但最终决定使用它们AWS的API网关产品.在这篇博文中,我们将解释我们如何将后者与数据湖后端集成,以及我们如何使用IAM授权和API网关资源策略来加强访问控制。我们还将提供一些在Terraform中设置相关基础设施的例子。

设计进化

Data Lakes工具有两个组件:一个CLI客户端和一个RPC服务。每个CLI命令向RPC服务发出一个请求,然后RPC服务可以访问相关的客户资源。

当Segment Data Lakes启动时,只有Data Lakes的工程师可以访问和使用CLI工具。这在最初发行时是可行的,但为了扩大产品规模,我们意识到需要让更多用户进入Segment。因此,我们开始设计一些改进,以允许我们以一种安全、可控的方式打开这个通道。

我们的初始设计依赖于SAML来验证用户,这是段在段解决此问题的其他内部工具。段使用OKTA-AWS SAML集成来管理和分配对AWS IAM角色的访问,然后使用aws-okta使用AWS进行身份验证,并使用产生的凭据运行工具命令。

SAML方法将允许我们验证工具的操作人员是经过验证和授权的Segment员工。但是,这将增加很多复杂性,因为我们需要为CLI客户机和相关的SAML认证流创建和维护代码。

就在我们即将实现SAML解决方案时,AWS为其AWS API Gateway产品发布了几个新特性,包括对基于iam角色的API身份验证的改进支持。由于Segment已经使用IAM角色来委派对Segment员工的访问,因此使用基于IAM的策略来控制对数据湖api的访问似乎是合适的。

通过此解决方案,我们可以卸载对外部服务的身份验证和授权的责任,并花费更多时间专注于我们工具的数据湖泊各个方面。

在对POC进行验证后,我们正式决定使用IAM授权的AWS API网关,而不是在我们的代码中支持SAML流。

在深入了解我们如何将AWS API网关集成到我们的设计中之前,让我们回顾一下这个产品是如何工作的以及它提供的各种功能。

什么是AWS API网关?

AWS API网关位于API客户端和备份这些API的服务之间。它支持与各种后端类型的集成,包括在ECS或EKS中运行的AWS Lambda和Containized Services。该产品还提供了许多功能,以帮助维护和部署API,例如管理和路由流量,监视API调用和从安全性的访问权限。

API Gateway支持两种类型的API - HTTP API和REST API。许多功能都适用于两者,但有些功能只是一个或另一个。在决定哪种类型的API网关最适合您的用例之前,重要的是要了解两者之间的差异。查看本指南在AWS文档库中为一个很好的摘要。

API网关的重要概念

这里有一些API网关的概念,将在这篇博文中提到,你可能会遇到,当你建立自己的AWS API网关。

资源政策

IAM policy是与IAM用户、组或角色相关联的API网关资源策略附加到资源。您可以使用IAM policy和/或资源policy来定义谁可以访问资源以及可以执行什么操作。

代理集成

代理集成允许将请求代理到支持服务,而无需中间体转换。如果使用代理集成,则只能修改每个请求上的头、路径参数和查询字符串参数。如果不使用代理集成,还可以定义映射模板来转换请求主体。

代理资源

代理资源允许通过贪婪路径参数{proxy +}捆绑对多个资源的访问。使用代理资源,您无需为每个路径定义单独的资源。如果所有资源由相同的备用服务备份,则尤其有用。有关更多详细信息,请参阅此AWS医生

阶段

API网关中的Stage是对部署的命名引用。你可以为每个API创建和管理多个阶段,例如alpha, beta和production。每个阶段都可以与不同的后端服务集成。

为什么我们在http over上选择了休息API

在我们的例子中,我们真正想要使用资源策略来定义访问控制,而这个特性只在REST api中可用。HTTP api比REST api便宜,但由于我们预计工具的请求量较低,所以每月的总成本不会是一个问题。因此,我们决定使用REST API。

如果您需要使用ALB集成REST API,或者如果要使用API​​ Gateway来处理API访问控制,您可能会遇到一些挑战。在以下部分中,我们分享我们如何解决这些问题。

设置REST API网关

铝青铜的集成

我们的后端工具服务驻留在私人VPC中并坐在ALB后面。HTTP API支持直接与ALB集成,但REST API不会(见HTTP api和REST api的比较).要使用ALB集成REST API,您需要在两者之间放置一个NLB。

这里的设置涉及两个步骤:

  1. NLB→ALB集成

  2. REST API网关→NLB集成

NLB→ALB集成

第一步是创建一个可以将流量转发到ALB的NLB:

AWS博客说明如何使用Lambda函数设置此集成,其中包括Lambda函数代码和可用于设置的CloudFormation模板。

REST API网关→NLB集成

下一步是将REST API链接到NLB,如下所示:

这可以通过先创建一个VPC链接到NLB,然后在Gateway API方法集成中使用这个VPC链接来实现。这指导从AWS提供了将API与VPC链接集成到NLB的说明。

我们使用代理集成和一个代理资源.如果介绍了新的API或我们的API架构演变,我们无需更新API网关。

起程拓殖的例子

我们使用Terraform来组织和管理分部的AWS基础设施。下面是一个将REST API与NLB集成,并创建与代理资源集成的示例:

授权和访问控制

为了确保只有授权用户可以访问我们的工具服务,我们使用IAM Authorization和API Gateway资源策略的组合。在下面的部分中,我们将详细讨论这些是什么,以及如何为我们的工具配置它们。

IAM授权

“API网关”支持对API开启IAM鉴权。启用此功能后,发送的API请求需要使用AWS安全凭据(AWS.医生).如果请求没有签名(即匿名身份),那么请求将失败。否则,API Gateway将根据IAM策略和/或资源策略允许或拒绝API请求。这AWS指南解释API网关如何根据IAM策略和资源策略的组合来确定是否允许或拒绝。

资源政策

IAM策略和/或资源策略可以用来指定谁可以访问资源以及可以执行什么操作,但我们在我们的用例中只使用后者。

在Segment,我们在同一个AWS帐户中有多个角色,例如带有ReadOnlyAccess策略的读角色,带有AdministratorAccess策略的管理员角色,等等。有些策略授予execute-api权限,这是在API Gateway中调用API所必需的,有些则不需要。例如,AWS托管策略AdministratorAccess允许对所有资源使用execute-api。

如果希望将execute-api权限限制到特定的角色api-invoke-role,则需要将拒绝execute-api权限的IAM策略附加到所有拥有此权限的其他角色上,或者明确拒绝资源策略中的这些角色。

对于前一种方法,您应该创建一个策略来拒绝针对API Gateway调用execute-api,然后将该策略附加到不应该允许调用API的角色上。下面是一个政策示例:

对于后一种方法,您将列出不应允许在资源策略中调用API的所有角色。以下是一个例子:

如果帐户中存在许多角色,并且随着时间的推移创建了新角色,则创建这些策略可能会非常繁琐,并将其保持全部最新。如果在同一帐户中有多个API,则这更糟糕,并且每个都有一个单独的允许的IAM角色。

作为此替代方案,您可以创建一个资源策略,该资源策略默认默认阻止对所有其他所有内容的同时访问角色子集。

这是我们决定采用的方法:

起程拓殖的例子

以下是在Terraform中实现上述方法的一个例子:

访问日志记录

另一个重要的安全要求是保留对API网关所需的请求的审计跟踪。每个记录应包含调用者标识和所做的请求的详细信息。

API Gateway内置了与CloudWatch的集成,这使得在后者中生成这些访问日志变得很容易。您可以选择一种日志格式(CLF、JSON、XML或CSV),并指定应该记录哪些信息。

除了使用CloudWatch,我们还创造了一个部分年代用于审计日志。我们的后端服务问题跟踪调用对于每个请求,所有的径赛事件都同步到我们的仓库.这样,我们就不需要实现连接器来从CloudWatch导出数据并将其加载到我们的仓库中。

起程拓殖的例子

下面介绍如何配置API网关的CloudWatch审计日志。请注意,您需要创建一个IAM角色,该角色在CloudWatch侧具有适当的读写权限:

签名的请求

通过启用IAM授权,所有API请求都需要使用AWS Access键签名,因此AWS可以识别呼叫者。有多个版本的签名过程,V4是最新(和推荐)一个。各种AWS SDK提供了处理此过程的低级细节的辅助功能。

下面是一个使用AWS SDK的例子:

在我们的用例中,CLI客户端自动包装输入,使用用户的AWS凭据对请求进行签名,并将请求发送到我们的API网关,使用户使用起来非常容易。

例如,我们公开了以下命令来检查EMR集群的状态。CLI Client将命令和标志映射到API中的请求路径和主体:

部署

在使用API Gateway REST API时要记住的一件事是,它不支持自动部署(HTTP API支持)。因此,如果对API资源或阶段进行了更改,则需要手动触发部署。

起程拓殖的例子

这个例子演示了如何使用Terraform 0.11触发部署。触发器散列可以是包含与API网关关联的资源的Terraform文件的散列。如果这些文件中有任何更改,散列将更改,从而触发部署。

请注意,TerraForm 0.12支持显式触发器参数,允许您在后者内部提供触发器散列,而不是通过部署变量执行此操作。

结论

我们一直在使用这个基于API-Gateway的设置了几个月,并且它对数据湖泊的工具用例工作非常好。在此设置变得可用之前,工具操作仅由我们的工程团队执行以解决客户的问题。manbetx客户端应用下载部署解决方案后,我们向我们的支持团队开辟了工具服务,从而减少了对工程团队的依赖性和运营成本。

这是我们第一次使用API Gateway产品,所以我们不得不花一些时间来想出各种解决方案和变通方法(例如与ALB集成,使用Terraform触发部署等),但总体来说,一旦我们解决了这些问题,我们有一个愉快的体验。

API Gateway还有许多其他特性没有用于我们的工具,因此在这篇博文中没有讨论,但可能仍然对您的用例有帮助。例如,API Gateway允许您设置节流限制和设置缓存。这些特性将有助于防止您的系统被大量的请求所淹没。通过使用不同的后端集成配置API,您还可以使用API Gateway同时管理和运行API的多个版本。

...

蒂姆法国人2021年4月29日

告别长长的客户支持等待时间和延长分部角色和Twilio Flex。...

列夫Dreizler2021年3月2日

与开发团队合作构建面向客户的安全特性可以帮助您更好地为客户服务,解锁额外收入,并在团队之间双向传递知识——这是DevSecOps的核心概念。manbetx客户端应用下载...

Udit梅塔2021年1月20日

了解我们如何使用AWS步骤函数进行大规模数据编排...

雪莉,Caitlyn Sullivan.2021年3月31日

是时候向下一个数字广告时代打招呼了,由一方数据提供支持。...

Sudheendra Chilappagari2021年2月18日

学习如何使用分段和Twilio可编程消息发送个性化短信活动。...

吉姆年轻2021年2月17日

一个成功的客户体验计划最重要的要素是什么?

根据数以百计的商业领袖在全球范围内,答案是良好的数据。

随着去年数字采用的爆炸,数据质量成为寻求适应的公司的首要任务。不幸的是,许多企业缺乏合适的技术来管理客户数据的数量增加和复杂性。万博官方购彩

与此同时,manbetxapp下载 发现有效管理客户数据是一项挑战,但获得了万博官方购彩丰厚的回报。因此,精明的商业领袖转向客户数据平台,确保整个组织的所有团队都可以万博官方购彩使用干净、可靠的数据。

因为客户数据平台可以万博官方购彩为业务中的多个不同团队提供支持,所以我们经常被问到:“投资CDP的具体投资回报率是多少?”

为了解决这个问题,我们最近进行了一项调查与阿伯丁领先的行业研究公司准确地调查CDP对你的底线有多少好处。

让我们潜入。

ROI基准来证明你的客户数据平台投资是合理的万博官方购彩

说明客户数据平台的累积ROI的最简单方法之一是衡量业务的性能万博官方购彩使用CDP对那些不是。在几个KPI类别中,使用CDP的企业将其从公园敲门出来。

值得注意的是,9.1倍的年增长率在客户满意度和收入同比增长2.9倍代表令人印象深刻的回报投资以客户为本的企业。

到2022年,这一数字将接近这一数字90%的企业将在他们的组织中实施CDP。

有了客户数万博官方购彩据平台,这些公司能够更好地跨渠道连接和统一第一方数据,确保数据准确,并根据每个人的喜好个性化每一个客户交互。

资料来源:阿伯丁,2020年9月

重要的是要记住这些基准只代表CDP对业务结果的平均影响。有些企业将获得更大的回报,有些则会获得更小的回报。

这就是为什么你必须模仿那些已经成功部署CDP的企业。为了帮助您最大化CDP的投资回报率,请遵循以下三个步骤。

如何从您的CDP投资中最大化ROI

1)利用数据了解买家行为

无缝集成所有相关来源数据的能力对于寻求建立对客户行为的全面了解的企业至关重要。

简而言之,CDP有助于将数据标准化在组织中。这使您的面向客户的团队通过根据以前的各种标准进行分割客户来更好地提供相关的,个性化的体验,例如以前的花费,忠诚度或人口统计学。manbetx客户端应用下载

反过来,您可以发现影响客户行为的趋势和相关性,而这些在其他情况下是对非cdp用户隐藏的。

标准化数据还可以通过识别流失客户过程中的共同元素,帮助企业减少流失,并通过锁定高利润客户或拥有最佳产品的客户来提高收入。manbetx客户端应用下载

SpotHero这是一个很好的例子,公司使用Segment来标准化他们的客户数据,并推动转换万博官方购彩新万博app2.0下载解锁用户购买行为的见解。

资料来源:阿伯丁,2020年9月

因此,您已经建立了客户数据的单一视图—现在该怎么办?万博官方购彩

2)使用数据到超个性化客户交互

下一步是超越跨企业系统的数据集成,并激活客户洞察,以提供高度个性化的体验。

研究显示,使用CDP的公司能够更好地通过多种渠道向客户传递一致的信息(89%对82%)。manbetx客户端应用下载除了一致性之外,你还可以根据每个买家的独特需求,使用实时洞察来调整互动的内容和时间。

这种能力能够显著提高客户满意度、留存率和LTV。换句话说,使用一致的数据来超个性化你的客户互动将直接影响你的底线。

对于寻求最大化CDP投资回报率的公司,个性化是游戏的名称。

资料来源:阿伯丁,2020年9月

3)利用数据持续改善市场业绩

我们可以从Aberdeen的研究申请的最后一个洞察力涉及良好数据对员工性能的影响。

一致、可靠的数据为企业领导人提供了一个评估员工活动和确定低效领域或培训需求的参考框架,从而推动更好的绩效。

尽管CDP可以赋予组织中的每个团队权力,但最具影响力的利益通常是由营销部门享有的。更具体地说,准确地规划客户旅程的每一步或锁定最有利可图的客户的能力可以极大地提高你的营销活动的投资回报率。manbetx客户端应用下载

部分角色例如,是一个强大的工具包,用于协调客户旅程,允许营销人员使用段的客户数据平台:万博官方购彩

  • 构建定制的观众

  • 实时同步广告、电子邮件、a/b测试、聊天和其他工具

  • 获得客户所有数字属性的单一视图他们使用的工具

资料来源:阿伯丁,2020年9月


去年客户数据的速度之快,让许多企万博官方购彩业争相加快它们的数字化转型路线图。在COVID - 19之前,个性化的客户体验是许多企业梦寐追求的项目。现在,它势在必行。

但是,事实的事实是近80%的企业努力克服在客户体验中使用数据的挑战。糟糕的数据质量、分散的客户洞察和过时的技术都给非数字原生公司带来了巨大的障碍。

幸运的是,客户数据平台的快速扩展帮助许多企业克服了这些挑战,提高了它们利万博官方购彩用和激活客户数据的能力。

在这一点上,安本的研究是明确的——CDP投资正在获得回报。拥有CDP的公司在年收入增长、客户满意度和员工敬业度等kpi指标上都优于非用户。

但是,新技术的实施是不够的。遵循最佳实践至关重要。

使用良好的数据来理解买家行为,提高营销绩效,并提供高度个性化的客户互动是你今天可以采取的三个步骤,以确保你从CDP投资中获得最大的投资回报率。

...

成为一名数据专家。订阅我们的时事通讯。

约瑟芬,雪莉黄2021年6月9日

我们的最新特性,旅程,授权团队统一跨端到端客户旅程的接触点。...

卡特里娜王2021年3月31日

通过细分,品牌可以利用他们的第一方客户数据来建立更深层次的客户关系。万博官方购彩...

锡安马丁,劳伦·里德2021年3月31日

Segment的数据驻留解决方案可以帮助公司通过本地数据摄入和本地数据存储轻松地将事件路由到区域基础设施,两者都在全球公开测试。...

外祖母马伦2020年8月17日

您的业务增长依赖于为每个团队提供良好的数据。介绍分部数据委员会,一系列与经验丰富的客户数据专家的访谈,他们知道如何在组织之间建立桥梁和授权团队。万博官方购彩...

外祖母马伦2020年8月17日

想象一下,如果您的PMS概述了支持票证,计费问题,销售交互和用户的点击流 - 全部统一和可通过自助服务。这将是数据管理的圣杯。在这个数据理事会发作中听取更多。...

外祖母马伦2020年8月17日

简单地说,数据治理导致更好的自动化。来听一听数据委员会的这一集,听听阿琼·格拉玛是如何利用客户数据争论技术来改变IBM的产品线,以及如何提高安海斯-布希英博(Anheuser万博官方购彩-Busch InBev)的kpi增长标准的。...

外祖母马伦2020年8月17日

数据驱动的业务情况如何在组织中激发利益相关者?在Anheuser-Busch Inbev的全球客户产品总监Kurt Williams的内幕观点达到这一数据委员会的一集。...

成为一名数据专家。

获取所有有关数据、产品和增长的最新文章,直接发送到您的收件箱。