0

嗨,我正在为我的员工建立一个新的发展环境。

我如何限制对特定 AWS EC2 实例的 Github 存储库/代码库的访问,我的员工将使用这些实例作为远程开发环境,而不是在他们的本地机器上开发。

就像 Facebook 中的 Nuclide 一样,您可以通过远程 SSH 连接到您的虚拟机并在本地工作,但使用 Github 您可以通过 gitub.com 导出代码或简单地克隆到另一台 PC?我需要某种限制。

我准备更改为私人 git 提供程序,但不确定哪个支持这些功能。

提前谢谢了

4

2 回答 2

1

如果您受到合规限制,您应该就合适的实施方法咨询您的法律团队、开发团队和审计师。完全防止可以访问您的源代码的开发人员泄露数据是很困难的,虽然这是一个非常好的问题,但不适合堆栈溢出。

归根结底,这是关于两个不同的问题:

  1. 控制开发人员可以使用源代码做什么,以及
  2. 托管安全的 Git 服务器。

请注意,从检测到阻止操作有一系列选项。

开发者限制

TLDR可以访问具有 Git 源代码的计算机的用户很可能可以访问 SSH 密钥或密码,从而允许他们连接 GitHub 并在本地计算机和远程环境之间移动数据。关于防止数据泄露的好读物

  • 您是否有围绕每个开发人员加密笔记本电脑、使用经批准的软件/工具以及正确处理数据的责任的内部政策。
  • 能否在开发环境(VM)中识别和限制网络协议以防止复制文件
  • 您能否使用自动化流程在机器之间移动代码(ChatOps)
  • 您能否使用持续部署 (CI/CD) 自动配置用于测试的环境,以限制需要访问源代码的开发人员数量?
  • 您是否准备好自定义开发环境以限制命令并配置监控工具以识别不良行为。
  • 考虑创建一个气隙网络环境以及物理安全控制。这可以防止任何数据离开您的网络,代价是阻止访问互联网。

Github 存储库控件

  • 使用GPG 签名来验证谁在提交代码。
  • 使用github.com 上的 SAML 或SAML 、LDAP、CAS(如果将 GitHub Enterprise 运行到板载/板外用户)。
  • Github.com 是否足以保护您的源代码。如果没有,您可以安装 Github Enterprise(或类似的 Git 解决方案)
    • 您需要 VPN 的本地网络
    • 如您所描述的私有AWS网络。
  • 使用GitHub Enteprise 的审核日志日志转发来检测行为而不是阻止它。

安全和法律

  • 是否有其他限制性较小的补偿性控制措施可以满足贵公司的规定?
  • 公司法规是在内部(通过安全性)还是通过合规性在外部实施?他们灵活吗?
  • 您能否修改公司规定或限制哪些开发商/项目受这些限制?

请咨询您的内部法律/安全团队以定义流程和限制。您还可以联系 Git 提供商,他们通常可以提供合规性和 SDLC 方面的最佳实践。

于 2017-07-30T15:20:58.033 回答
0

Github Enterprise 通过 SSH 密钥提供 IP 限制

每当您通过管理控制台向 GitHub Enterprise 添加 SSH 密钥时,您还可以指定允许或拒绝来自哪些 IP 地址的连接。

我会为您需要的实例(开发人员)的数量分配一组弹性 IP,然后只允许从该组 IP 访问每个开发人员密钥。例如,如果您有 4 个开发人员,则分配 4 个 EIP,例如52.44.1.1,52.44.1.2,52.44.1.3,52.44.1.4. 然后在 Github 管理控制台中,from将如下所示:

from="52.44.1.1,52.44.1.2,52.44.1.3,52.44.1.4" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYk7k1RM49DPq8UrWhO8bIgheqAZfjqXczCjRSHshq2/qt8tWBHeiLpgAUVYFoY5Hv3+JXvMkuFE4h7HZYUWp+xXVg63L0wosrq+cVo1od2ddwiyYsnUypguSqjNxRPQ4PGQoWCTGfTLLPh2Su1nHmAf/Z0fdZo3ojunLb42ErbvJ2cIWbM/PMzdEDpUMZyLrG1JL4tGVnSRweWoaFgK6EkfE+gkyytKPuOIZREVNrO4+awTXpLDqdC0h/FFmkQCrwEFqdsm6JPARfJKVnHm7RgedLN1cpFi9Jo7ZFu5dJPTbYBKnpwsmTQkJSahNVGGDO4fQUBdC9tcKUW0gvNkRR== GitHub Enterprise Admin User

通过这种方式,给定的实例可以通过已知的 IP# 启动,并且开发人员密钥将适用于任何给定的实例。

于 2017-07-29T16:17:17.763 回答