2020 年美国大选技术平台架构( 三 )


捐款者审核
2020 年美国大选技术平台架构】正如前面提到的 , 竞选活动一开始就承诺拒绝某些组织和个人的捐款 。 要大规模做到这一点 , 唯一的办法是让一群人定期梳理捐款 , 通常是每季度梳理一次 , 并标出可能匹配筛选条件的捐款者 。
这个过程很困难 , 很耗时 , 而且容易出错 。 如果是手工操作 , 通常需要为个人捐赠的金额设定一个门槛 , 然后研究捐赠者是否符合我们标记的有问题的类别 。
为了提高效率 , 我们构建了一个高度可伸缩的自动化流程 , 将捐赠的细节与我们想标记的一组标准相关联 。 我们每天都会启动一次流程 。 它将NGPVAN(这是所有捐款信息的真实数据来源)中的捐款数据导出到CSV文件 , 并转储到S3中 。 将CSV文件存储到S3将会触发一个SNS通知 , 该通知反过来将激活一系列LambdaFunction 。 这些LambdaFunction将文件分割成更小的块 , 将它们重新导入到S3 , 并启动捐款者审查流程 。 在这个工作流执行时 , 我们可以看到有大规模的Lambda , 多达1000个并行执行的捐款者审查代码 。
例如 , 我们承诺不接受来自天然气和石油行业的说客和高管的捐款 。 这个过程只需要几分钟 , 就可以完成对捐赠者的全面审查 , 并将其与说客、外国代理以及油气公司高管的黑名单进行核对 。
在这个流程完成之后 , 标记的条目将被整理成单个CSV文件 , 然后将该文件重新导到S3 , 供下载使用 。 随后 , SES将向开发人员Danielle发送一封电子邮件 , 表明标志已准备好 , 可以进行进一步的验证 。 验证之后 , 结果被转发给合规团队 , 他们将采取适当的行动 , 可能是进行退款或做进一步的调查 。
2020 年美国大选技术平台架构
文章图片
图2:自动化捐款者审核流程
如果只是说这个过程为竞选节省了大量的时间 , 那也太轻描淡写了 。 捐款者审查管道很快成为技术平台的核心组件和竞选活动的重要组成部分 。
Tattletale
在一开始 , 我们的团队规模还很小 , 但我们有很多供应商和云服务 , 没有足够的时间和人手来检查这些服务的安全状态 。 我们需要一种简单的方法来制定规则 , 针对关键的面向用户的系统 , 确保我们总是遵循网络安全最佳实践 。
Tattletale正是为此而开发的一个框架 。 Tattletale是我们在竞选活动中构建的最重要的技术之一 。
我们设定了一组任务 , 利用供应商系统API来确保开启了双因子身份验证之类的功能 , 或者如果用户帐户在系统中是活跃的 , 但该用户有一段时间没有登录 , 我们就会收到通知 。 休眠帐户存在安全风险 , 因此我们希望确保所有配置都是面向最低权限的 。
此外 , Tattletale中的规则可以检查负载均衡器是否无意中暴露在互联网上、IAM权限的范围是否太广 , 等等 。 在审计规则集之后 , 如果Tattletale发现了违规行为 , 它会通过Slack频道发送通知 , 让相关人员进行进一步的调查 。 它还可以通过电子邮件通知用户有违规行为发生 , 这样用户就可以自行采取纠正措施 。 如果超出了某个阈值 , Tattletale会在Grafana中记录一个指标 , 触发PagerDuty升级策略 , 并立即通知待命的技术人员 。
2020 年美国大选技术平台架构
文章图片
图3:Tattletale架构
当我们没有时间或资源查看安全问题时 , Tattletale就成了我们的网络安全之眼 。 它还确保了我们遵循一套公共的网络安全标准 , 并尽可能保持最高标准 。
Conductor和Turbotots
当我们的内部工具达到一定的复杂性和广度时 , 我们需要更好地管理这些API 。 为了管理那些系统 , 我们需要合并我们所构建的UI 。 我们还需要标准化安全模型 , 这样就不会到处都是自定义身份认证和授权 。