Slack在AWS GovCloud上支持高度监管工作负载的经验教训

Slack团队在构建GovSlack中的经验分享

Slack的Staff软件工程师Archie Gunasekara和Andrew Martin最近分享了他们在构建GovSlack过程中的经验。GovSlack是运行在AWS GovCloud区域上的Slack实例。他们分享了在适应不支持的服务、账户创建和账户隔离方面的挑战。

AWS GovCloud的背景

AWS GovCloud(美国)区域是一个隔离的AWS区域,专门用于托管敏感数据和受监管的工作负载。该区域符合FedRAMP High要求,因此只有美国公民可以访问生产环境,并且只有美国公民可以管理和访问根账户密钥。

GovSlack的账户设置

为了简化设置,Slack团队创建了“GovDev”和“GovProd”两个账户。“GovProd”账户仅限美国公民访问,而“GovDev”账户则较为宽松,因为它不包含任何终端用户数据。这允许开发团队在GovCloud环境中部署和测试应用程序,然后再将其移交给GovSlack团队部署到更严格的“GovProd”账户中。

账户隔离

Slack团队采用了“完全共享无物”的范式,使环境能够在完全不同的AWS组织中运行。他们在GovCloud中创建了两个不同的AWS组织,并为每个开发和生产环境创建了一组相同的子账户。

服务差异

AWS GovCloud并不具备与AWS商业区域相同的服务集,特别是缺少Route 53公共区域。为了解决这个问题,Slack团队在商业AWS账户中托管了公共的GovSlack DNS记录,该账户也仅由美国人员访问。

ARN差异

AWS ARN在商业账户和GovCloud账户之间有所不同。商业账户的前缀为arn:aws,而GovCloud的前缀为arn:aws-us-gov。为了在商业和GovCloud账户中使用相同的Terraform模块,团队构建了一个Terraform模块,以编程方式构建ARN并检测所在的AWS分区。

AWS分区架构

AWS GovCloud在逻辑和物理上与标准区域隔离,凭证访问也各不相同。AWS建议处理或托管美国出口控制数据的工作负载应托管在AWS GovCloud(美国)分区中,包括需要FedRAMP High P-ATO或DOD IL4和5 PA服务的工作负载。

资源与指南

AWS提供了一些资源,帮助理解在GovCloud中设计工作负载的最佳实践,包括实施指南和用户指南。更多关于Slack使用GovCloud的经验可以在他们的博客中找到。

阅读 24
0 条评论