goi*_*ing 4 php security google-cloud-platform google-cloud-iam
我正在尝试以安全的方式使用 Google 云服务。我目前通过 putenv('GOOGLE_APPLICATION_CREDENTIALS= path to JSON file ');提供我的凭据 请参阅 https://cloud.google.com/docs/authentication/Production
我想通过将我的代码放在共享主机/虚拟 Linux 服务器上来进行公开测试。但是,如果我将 JSON 文件的权限设置为安全,则无法访问它们。如果我公开,我需要包含的 JSON 文件有一个纯文本形式的私钥。
我已经进行了一个小时的搜索,但找不到我应该如何安全地提供凭据。
你的问题没有简单的答案。
\n\n第 1 部分 - 您的主机不在 Google Cloud 上
\n\n您的主机安全吗?如果是,则可以将服务帐户 JSON 密钥放置在面向公众的应用程序无法访问的目录中。这里我的意思是不要将文件放在与网络服务器相同的目录中。使用诸如此类的位置/config
,然后加强该目录的安全性,以便只有授权用户和您的应用程序才能读取该文件。
确定凭据文件的安全文件位置后,请直接在代码中指定该服务帐户。不要使用环境变量或命令行开关。不使用GOOGLE_APPLICATION_CREDENTIALS
。有些评论是使用KMS。使用 KMS 是一个好主意,但你会遇到先有鸡还是先有蛋的情况。您需要凭据才能使用 KMS 解密。如果不良行为者可以访问您的加密凭据,他们还可以访问您的源代码,或对应用程序进行逆向工程,以查看解密方法和用于解密的服务帐户。
注意:为凭证文件指定静态位置并不是 DevOps 的最佳实践。您的问题是关于安全性而不是 CI/CD。您使用的是共享服务器,这可能意味着很多事情,并且 DevOps 可能没有集成到您的部署或系统设计中。
\n\n如果您的主机不安全,那么您就没有可行的选择。你所做的任何事情都无法阻止“熟练”工程师扭转你的“模糊”方法。
\n\n第 2 部分 - 您的主机位于 Google Cloud 上(Compute Engine、Cloud Run、App Engine 等)
\n\n注意:以下技术处于测试阶段。这是 Google Cloud 授权的未来,它是基于身份的访问控制,以补充基于角色的访问控制,并在某些情况下取代它。
\n\n您可以为主机分配一个具有零权限的服务帐户。请注意“分配”一词,而不是“创建”。不涉及任何文件。然后您可以使用基于身份的访问控制(服务账户的 IAM 成员账户 ID)来访问资源。我为 Google Cloud Run 写了两篇文章,该文章适用于其他 Google 服务(计算引擎、云功能、KMS、云存储、云调度程序等):
\n\n\n 归档时间: |
|
查看次数: |
11147 次 |
最近记录: |